2011-02-23 10:52:22 +00:00
/*
2009-08-27 06:03:41 +00:00
* * * * * * BEGIN GPL LICENSE BLOCK * * * * *
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version 2
* of the License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software Foundation ,
2010-02-12 13:34:04 +00:00
* Inc . , 51 Franklin Street , Fifth Floor , Boston , MA 02110 - 1301 , USA .
2009-08-27 06:03:41 +00:00
*
* Contributor ( s ) : Blender Foundation ( 2009 ) , Joshua Leung
*
* * * * * * END GPL LICENSE BLOCK * * * * *
*/
2011-02-27 20:20:01 +00:00
/** \file blender/makesrna/intern/rna_gpencil.c
* \ ingroup RNA
*/
2009-08-27 06:03:41 +00:00
# include <stdlib.h>
# include "RNA_define.h"
# include "rna_internal.h"
# include "DNA_gpencil_types.h"
# include "DNA_scene_types.h"
# include "MEM_guardedalloc.h"
2010-01-27 11:56:14 +00:00
# include "WM_types.h"
2009-08-27 06:03:41 +00:00
# ifdef RNA_RUNTIME
static int rna_GPencilLayer_active_frame_editable ( PointerRNA * ptr )
{
bGPDlayer * gpl = ( bGPDlayer * ) ptr - > data ;
2011-04-02 11:06:41 +00:00
2009-08-27 06:03:41 +00:00
/* surely there must be other criteria too... */
if ( gpl - > flag & GP_LAYER_LOCKED )
return 0 ;
else
return 1 ;
}
2011-04-02 11:06:41 +00:00
static PointerRNA rna_GPencil_active_layer_get ( PointerRNA * ptr )
2009-08-27 06:03:41 +00:00
{
bGPdata * gpd = ptr - > id . data ;
2011-04-02 11:06:41 +00:00
if ( GS ( gpd - > id . name ) = = ID_GD ) { /* why would this ever be not GD */
2009-08-27 06:03:41 +00:00
bGPDlayer * gl ;
2011-04-02 11:06:41 +00:00
for ( gl = gpd - > layers . first ; gl ; gl = gl - > next ) {
if ( gl - > flag & GP_LAYER_ACTIVE ) {
break ;
}
}
if ( gl ) {
return rna_pointer_inherit_refine ( ptr , & RNA_GPencilLayer , gl ) ;
}
}
return rna_pointer_inherit_refine ( ptr , NULL , NULL ) ;
}
static void rna_GPencil_active_layer_set ( PointerRNA * ptr , PointerRNA value )
{
bGPdata * gpd = ptr - > id . data ;
if ( GS ( gpd - > id . name ) = = ID_GD ) { /* why would this ever be not GD */
bGPDlayer * gl ;
for ( gl = gpd - > layers . first ; gl ; gl = gl - > next ) {
if ( gl = = value . data ) {
gl - > flag | = GP_LAYER_ACTIVE ;
}
else {
gl - > flag & = ~ GP_LAYER_ACTIVE ;
}
}
}
2009-08-27 06:03:41 +00:00
}
2011-10-13 04:06:32 +00:00
void rna_GPencilLayer_info_set ( PointerRNA * ptr , const char * value )
{
bGPdata * gpd = ptr - > id . data ;
bGPDlayer * gpl = ptr - > data ;
/* copy the new name into the name slot */
BLI_strncpy_utf8 ( gpl - > info , value , sizeof ( gpl - > info ) ) ;
BLI_uniquename ( & gpd - > layers , gpl , " GP_Layer " , ' . ' , offsetof ( bGPDlayer , info ) , sizeof ( gpl - > info ) ) ;
}
2009-08-27 06:03:41 +00:00
# else
2009-09-14 16:52:06 +00:00
static void rna_def_gpencil_stroke_point ( BlenderRNA * brna )
2009-08-27 06:03:41 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
srna = RNA_def_struct ( brna , " GPencilStrokePoint " , NULL ) ;
RNA_def_struct_sdna ( srna , " bGPDspoint " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Grease Pencil Stroke Point " , " Data point for freehand stroke curve " ) ;
2009-08-27 06:03:41 +00:00
2009-11-30 10:21:42 +00:00
prop = RNA_def_property ( srna , " co " , PROP_FLOAT , PROP_XYZ ) ;
2009-08-27 06:03:41 +00:00
RNA_def_property_float_sdna ( prop , NULL , " x " ) ;
RNA_def_property_array ( prop , 3 ) ;
RNA_def_property_ui_text ( prop , " Coordinates " , " " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
prop = RNA_def_property ( srna , " pressure " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " pressure " ) ;
RNA_def_property_range ( prop , 0.0f , 1.0f ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Pressure " , " Pressure of tablet at point when drawing it " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
}
2009-09-14 16:52:06 +00:00
static void rna_def_gpencil_stroke ( BlenderRNA * brna )
2009-08-27 06:03:41 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
srna = RNA_def_struct ( brna , " GPencilStroke " , NULL ) ;
RNA_def_struct_sdna ( srna , " bGPDstroke " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Grease Pencil Stroke " , " Freehand curve defining part of a sketch " ) ;
2009-08-27 06:03:41 +00:00
/* Points */
prop = RNA_def_property ( srna , " points " , PROP_COLLECTION , PROP_NONE ) ;
RNA_def_property_collection_sdna ( prop , NULL , " points " , " totpoints " ) ;
RNA_def_property_struct_type ( prop , " GPencilStrokePoint " ) ;
RNA_def_property_ui_text ( prop , " Stroke Points " , " Stroke data points " ) ;
/* Flags - Readonly type-info really... */
// TODO...
}
2009-09-14 16:52:06 +00:00
static void rna_def_gpencil_frame ( BlenderRNA * brna )
2009-08-27 06:03:41 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
srna = RNA_def_struct ( brna , " GPencilFrame " , NULL ) ;
RNA_def_struct_sdna ( srna , " bGPDframe " ) ;
RNA_def_struct_ui_text ( srna , " Grease Pencil Frame " , " Collection of related sketches on a particular frame " ) ;
/* Strokes */
prop = RNA_def_property ( srna , " strokes " , PROP_COLLECTION , PROP_NONE ) ;
RNA_def_property_collection_sdna ( prop , NULL , " strokes " , NULL ) ;
RNA_def_property_struct_type ( prop , " GPencilStroke " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Strokes " , " Freehand curves defining the sketch on this frame " ) ;
2009-08-27 06:03:41 +00:00
/* Frame Number */
prop = RNA_def_property ( srna , " frame_number " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " framenum " ) ;
RNA_def_property_range ( prop , MINFRAME , MAXFRAME ) ; // XXX note: this cannot occur on the same frame as another sketch
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Frame Number " , " The frame on which this sketch appears " ) ;
2009-08-27 06:03:41 +00:00
/* Flags */
2010-08-18 07:14:10 +00:00
prop = RNA_def_property ( srna , " is_edited " , PROP_BOOLEAN , PROP_NONE ) ;
2009-08-27 06:03:41 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_FRAME_PAINT ) ; // XXX should it be editable?
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Paint Lock " , " Frame is being edited (painted on) " ) ;
2009-08-27 06:03:41 +00:00
2010-07-15 16:56:04 +00:00
prop = RNA_def_property ( srna , " select " , PROP_BOOLEAN , PROP_NONE ) ;
2009-08-27 06:03:41 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_FRAME_SELECT ) ;
2010-07-15 16:56:04 +00:00
RNA_def_property_ui_text ( prop , " Select " , " Frame is selected for editing in the DopeSheet " ) ;
2009-08-27 06:03:41 +00:00
}
2009-09-14 16:52:06 +00:00
static void rna_def_gpencil_layer ( BlenderRNA * brna )
2009-08-27 06:03:41 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
srna = RNA_def_struct ( brna , " GPencilLayer " , NULL ) ;
RNA_def_struct_sdna ( srna , " bGPDlayer " ) ;
RNA_def_struct_ui_text ( srna , " Grease Pencil Layer " , " Collection of related sketches " ) ;
/* Name */
prop = RNA_def_property ( srna , " info " , PROP_STRING , PROP_NONE ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Info " , " Layer name " ) ;
2011-10-13 04:06:32 +00:00
RNA_def_property_string_funcs ( prop , NULL , NULL , " rna_GPencilLayer_info_set " ) ;
2009-08-27 06:03:41 +00:00
RNA_def_struct_name_property ( srna , prop ) ;
/* Frames */
prop = RNA_def_property ( srna , " frames " , PROP_COLLECTION , PROP_NONE ) ;
RNA_def_property_collection_sdna ( prop , NULL , " frames " , NULL ) ;
RNA_def_property_struct_type ( prop , " GPencilFrame " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Frames " , " Sketches for this layer on different frames " ) ;
2009-08-27 06:03:41 +00:00
/* Active Frame */
prop = RNA_def_property ( srna , " active_frame " , PROP_POINTER , PROP_NONE ) ;
RNA_def_property_pointer_sdna ( prop , NULL , " actframe " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Active Frame " , " Frame currently being displayed for this layer " ) ;
2009-08-27 06:03:41 +00:00
RNA_def_property_editable_func ( prop , " rna_GPencilLayer_active_frame_editable " ) ;
/* Drawing Color */
prop = RNA_def_property ( srna , " color " , PROP_FLOAT , PROP_COLOR ) ;
RNA_def_property_array ( prop , 3 ) ;
2010-12-14 16:33:04 +00:00
RNA_def_property_range ( prop , 0.0f , 1.0f ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Color " , " Color for all strokes in this layer " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
2010-08-18 07:14:10 +00:00
prop = RNA_def_property ( srna , " alpha " , PROP_FLOAT , PROP_NONE ) ;
2009-08-27 06:03:41 +00:00
RNA_def_property_float_sdna ( prop , NULL , " color[3] " ) ;
RNA_def_property_range ( prop , 0.3 , 1.0f ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Opacity " , " Layer Opacity " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
/* Line Thickness */
2010-08-18 07:14:10 +00:00
prop = RNA_def_property ( srna , " line_width " , PROP_INT , PROP_NONE ) ;
2009-08-27 06:03:41 +00:00
RNA_def_property_int_sdna ( prop , NULL , " thickness " ) ;
RNA_def_property_range ( prop , 1 , 10 ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Thickness " , " Thickness of strokes (in pixels) " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
/* Onion-Skinning */
prop = RNA_def_property ( srna , " use_onion_skinning " , PROP_BOOLEAN , PROP_NONE ) ;
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_LAYER_ONIONSKIN ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Use Onion Skinning " , " Ghost frames on either side of frame " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
2010-08-18 07:14:10 +00:00
prop = RNA_def_property ( srna , " ghost_range_max " , PROP_INT , PROP_NONE ) ;
2009-08-27 06:03:41 +00:00
RNA_def_property_int_sdna ( prop , NULL , " gstep " ) ;
RNA_def_property_range ( prop , 0 , 120 ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Max Ghost Range " , " Maximum number of frames on either side of the active frame to show (0 = show the 'first' available sketch on either side) " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
/* Flags */
prop = RNA_def_property ( srna , " hide " , PROP_BOOLEAN , PROP_NONE ) ;
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_LAYER_HIDE ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Hide " , " Set layer Visibility " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
2010-07-15 16:56:04 +00:00
prop = RNA_def_property ( srna , " lock " , PROP_BOOLEAN , PROP_NONE ) ;
2009-08-27 06:03:41 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_LAYER_LOCKED ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Locked " , " Protect layer from further editing and/or frame changes " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
2010-08-18 07:14:10 +00:00
prop = RNA_def_property ( srna , " lock_frame " , PROP_BOOLEAN , PROP_NONE ) ;
2010-01-08 01:39:41 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_LAYER_FRAMELOCK ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Frame Locked " , " Lock current frame displayed by layer " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2011-04-02 11:06:41 +00:00
/* expose as layers.active */
/*
2009-08-27 06:03:41 +00:00
prop = RNA_def_property ( srna , " active " , PROP_BOOLEAN , PROP_NONE ) ;
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_LAYER_ACTIVE ) ;
RNA_def_property_boolean_funcs ( prop , NULL , " rna_GPencilLayer_active_set " ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Active " , " Set active layer for editing " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2011-04-02 11:06:41 +00:00
*/
2010-07-15 16:56:04 +00:00
prop = RNA_def_property ( srna , " select " , PROP_BOOLEAN , PROP_NONE ) ;
2009-08-27 06:03:41 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_LAYER_SELECT ) ;
2010-07-15 16:56:04 +00:00
RNA_def_property_ui_text ( prop , " Select " , " Layer is selected for editing in the DopeSheet " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
2009-08-30 11:37:29 +00:00
// XXX keep this option?
2009-08-30 05:54:27 +00:00
prop = RNA_def_property ( srna , " show_points " , PROP_BOOLEAN , PROP_NONE ) ;
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_LAYER_DRAWDEBUG ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Show Points " , " Draw the points which make up the strokes (for debugging purposes) " ) ;
2010-01-27 11:56:14 +00:00
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2011-04-01 11:55:21 +00:00
/* X-Ray */
prop = RNA_def_property ( srna , " show_x_ray " , PROP_BOOLEAN , PROP_NONE ) ;
RNA_def_property_boolean_negative_sdna ( prop , NULL , " flag " , GP_LAYER_NO_XRAY ) ;
RNA_def_property_ui_text ( prop , " X Ray " , " " ) ;
RNA_def_property_update ( prop , NC_SCREEN | ND_GPENCIL , NULL ) ;
2009-08-27 06:03:41 +00:00
}
2011-04-02 11:06:41 +00:00
static void rna_def_gpencil_layers ( BlenderRNA * brna , PropertyRNA * cprop )
{
StructRNA * srna ;
PropertyRNA * prop ;
2011-04-03 10:04:16 +00:00
// FunctionRNA *func;
// PropertyRNA *parm;
2011-04-02 11:06:41 +00:00
RNA_def_property_srna ( cprop , " GreasePencilLayers " ) ;
srna = RNA_def_struct ( brna , " GreasePencilLayers " , NULL ) ;
RNA_def_struct_sdna ( srna , " bGPdata " ) ;
RNA_def_struct_ui_text ( srna , " Grease Pencil Layers " , " Collection of grease pencil layers " ) ;
#if 0
func = RNA_def_function ( srna , " new " , " rna_GPencil_layer_new " ) ;
2011-09-19 13:23:58 +00:00
RNA_def_function_ui_description ( func , " Add a new spline to the curve " ) ;
parm = RNA_def_enum ( func , " type " , curve_type_items , CU_POLY , " " , " type for the new spline " ) ;
2011-04-02 11:06:41 +00:00
RNA_def_property_flag ( parm , PROP_REQUIRED ) ;
2011-09-19 13:23:58 +00:00
parm = RNA_def_pointer ( func , " spline " , " Spline " , " " , " The newly created spline " ) ;
2011-04-02 11:06:41 +00:00
RNA_def_function_return ( func , parm ) ;
func = RNA_def_function ( srna , " remove " , " rna_GPencil_layer_remove " ) ;
2011-09-19 13:23:58 +00:00
RNA_def_function_ui_description ( func , " Remove a spline from a curve " ) ;
2011-04-02 11:06:41 +00:00
RNA_def_function_flag ( func , FUNC_USE_REPORTS ) ;
2011-09-19 13:23:58 +00:00
parm = RNA_def_pointer ( func , " spline " , " Spline " , " " , " The spline to remove " ) ;
2011-04-02 11:06:41 +00:00
RNA_def_property_flag ( parm , PROP_REQUIRED | PROP_NEVER_NULL ) ;
# endif
prop = RNA_def_property ( srna , " active " , PROP_POINTER , PROP_NONE ) ;
RNA_def_property_struct_type ( prop , " GreasePencil " ) ;
RNA_def_property_pointer_funcs ( prop , " rna_GPencil_active_layer_get " , " rna_GPencil_active_layer_set " , NULL , NULL ) ;
RNA_def_property_flag ( prop , PROP_EDITABLE ) ;
RNA_def_property_ui_text ( prop , " Active Layer " , " Active grease pencil layer " ) ;
}
2009-09-14 16:52:06 +00:00
static void rna_def_gpencil_data ( BlenderRNA * brna )
2009-08-27 06:03:41 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
2010-01-01 15:05:31 +00:00
static EnumPropertyItem draw_mode_items [ ] = {
2010-04-26 08:05:04 +00:00
{ GP_DATA_VIEWALIGN , " CURSOR " , 0 , " Cursor " , " Draw stroke at the 3D cursor " } ,
2011-04-19 13:02:49 +00:00
{ 0 , " VIEW " , 0 , " View " , " Stick stroke to the view " } , /* weird, GP_DATA_VIEWALIGN is inverted */
2010-04-26 08:05:04 +00:00
{ GP_DATA_VIEWALIGN | GP_DATA_DEPTH_VIEW , " SURFACE " , 0 , " Surface " , " Stick stroke to surfaces " } ,
{ GP_DATA_VIEWALIGN | GP_DATA_DEPTH_STROKE , " STROKE " , 0 , " Stroke " , " Stick stroke to other strokes " } ,
2010-01-01 15:05:31 +00:00
{ 0 , NULL , 0 , NULL , NULL } } ;
2009-08-27 06:03:41 +00:00
srna = RNA_def_struct ( brna , " GreasePencil " , " ID " ) ;
RNA_def_struct_sdna ( srna , " bGPdata " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Grease Pencil " , " Freehand annotation sketchbook " ) ;
2009-09-07 09:43:04 +00:00
RNA_def_struct_ui_icon ( srna , ICON_GREASEPENCIL ) ;
2009-08-27 06:03:41 +00:00
/* Layers */
prop = RNA_def_property ( srna , " layers " , PROP_COLLECTION , PROP_NONE ) ;
RNA_def_property_collection_sdna ( prop , NULL , " layers " , NULL ) ;
RNA_def_property_struct_type ( prop , " GPencilLayer " ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Layers " , " " ) ;
2011-04-02 11:06:41 +00:00
rna_def_gpencil_layers ( brna , prop ) ;
2009-08-30 11:37:29 +00:00
/* Flags */
2010-01-01 15:05:31 +00:00
prop = RNA_def_property ( srna , " draw_mode " , PROP_ENUM , PROP_NONE ) ;
RNA_def_property_enum_bitflag_sdna ( prop , NULL , " flag " ) ;
RNA_def_property_enum_items ( prop , draw_mode_items ) ;
RNA_def_property_ui_text ( prop , " Draw Mode " , " " ) ;
2010-01-01 17:48:48 +00:00
prop = RNA_def_property ( srna , " use_stroke_endpoints " , PROP_BOOLEAN , PROP_NONE ) ;
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , GP_DATA_DEPTH_STROKE_ENDPOINTS ) ;
2010-04-26 08:05:04 +00:00
RNA_def_property_ui_text ( prop , " Only Endpoints " , " Only use the first and last parts of the stroke for snapping " ) ;
2010-01-01 17:48:48 +00:00
2009-08-27 06:03:41 +00:00
}
/* --- */
void RNA_def_gpencil ( BlenderRNA * brna )
{
rna_def_gpencil_data ( brna ) ;
2011-04-02 11:06:41 +00:00
2009-08-27 06:03:41 +00:00
rna_def_gpencil_layer ( brna ) ;
rna_def_gpencil_frame ( brna ) ;
rna_def_gpencil_stroke ( brna ) ;
rna_def_gpencil_stroke_point ( brna ) ;
}
# endif