2008-12-01 19:02:27 +00:00
/**
* $ Id $
*
* * * * * * 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 .
2008-12-01 19:02:27 +00:00
*
2009-03-28 10:52:51 +00:00
* Contributor ( s ) : Blender Foundation ( 2008 ) , Juho Veps <EFBFBD> l <EFBFBD> inen
2008-12-01 19:02:27 +00:00
*
* * * * * * END GPL LICENSE BLOCK * * * * *
*/
# include <stdlib.h>
# include "RNA_define.h"
# include "rna_internal.h"
# include "DNA_curve_types.h"
2010-08-12 06:28:46 +00:00
# include "DNA_key_types.h"
2009-03-28 10:52:51 +00:00
# include "DNA_material_types.h"
2009-06-20 11:44:56 +00:00
# include "DNA_scene_types.h"
2008-12-01 19:02:27 +00:00
2009-08-03 15:06:56 +00:00
# include "BKE_font.h"
2009-09-08 07:35:07 +00:00
# include "WM_types.h"
2010-07-25 11:57:36 +00:00
# include "BKE_curve.h"
# include "ED_curve.h"
2009-05-08 10:50:32 +00:00
EnumPropertyItem beztriple_handle_type_items [ ] = {
2009-06-16 00:52:21 +00:00
{ HD_FREE , " FREE " , 0 , " Free " , " " } ,
{ HD_AUTO , " AUTO " , 0 , " Auto " , " " } ,
{ HD_VECT , " VECTOR " , 0 , " Vector " , " " } ,
{ HD_ALIGN , " ALIGNED " , 0 , " Aligned " , " " } ,
{ 0 , NULL , 0 , NULL , NULL } } ;
2009-06-07 13:09:18 +00:00
2009-05-08 10:50:32 +00:00
EnumPropertyItem beztriple_interpolation_mode_items [ ] = {
2009-06-16 00:52:21 +00:00
{ BEZT_IPO_CONST , " CONSTANT " , 0 , " Constant " , " " } ,
{ BEZT_IPO_LIN , " LINEAR " , 0 , " Linear " , " " } ,
{ BEZT_IPO_BEZ , " BEZIER " , 0 , " Bezier " , " " } ,
{ 0 , NULL , 0 , NULL , NULL } } ;
2009-05-08 10:50:32 +00:00
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
EnumPropertyItem curve_type_items [ ] = {
{ CU_POLY , " POLY " , 0 , " Poly " , " " } ,
{ CU_BEZIER , " BEZIER " , 0 , " Bezier " , " " } ,
{ CU_BSPLINE , " BSPLINE " , 0 , " BSpline " , " " } ,
{ CU_CARDINAL , " CARDINAL " , 0 , " Cardinal " , " " } ,
{ CU_NURBS , " NURBS " , 0 , " Ease " , " " } ,
{ 0 , NULL , 0 , NULL , NULL } } ;
2008-12-01 19:02:27 +00:00
# ifdef RNA_RUNTIME
2010-04-12 05:04:49 +00:00
# include "BLI_math.h"
2009-06-07 13:09:18 +00:00
# include "DNA_object_types.h"
# include "BKE_curve.h"
2009-08-03 15:06:56 +00:00
# include "BKE_depsgraph.h"
2009-08-10 21:10:09 +00:00
# include "BKE_main.h"
2009-08-03 15:06:56 +00:00
# include "WM_api.h"
2009-06-07 13:09:18 +00:00
2009-11-12 14:40:09 +00:00
# include "MEM_guardedalloc.h"
2010-07-25 11:57:36 +00:00
# include "ED_curve.h" /* for BKE_curve_nurbs */
2010-11-17 03:15:08 +00:00
/* highly irritating but from RNA we cant know this */
static Nurb * curve_nurb_from_point ( Curve * cu , const void * point , int * nu_index , int * pt_index )
{
ListBase * nurbs = BKE_curve_nurbs ( cu ) ;
Nurb * nu ;
int i = 0 ;
for ( nu = nurbs - > first ; nu ; nu = nu - > next , i + + ) {
if ( nu - > type = = CU_BEZIER ) {
if ( point > = ( void * ) nu - > bezt & & point < ( void * ) ( nu - > bezt + nu - > pntsu ) ) {
break ;
}
}
else {
if ( point > = ( void * ) nu - > bp & & point < ( void * ) ( nu - > bp + ( nu - > pntsu * nu - > pntsv ) ) ) {
break ;
}
}
}
2010-11-17 12:52:56 +00:00
if ( nu ) {
if ( nu_index ) {
* nu_index = i ;
}
if ( pt_index ) {
if ( nu - > type = = CU_BEZIER ) * pt_index = ( int ) ( ( BezTriple * ) point - nu - > bezt ) ;
else * pt_index = ( int ) ( ( BPoint * ) point - nu - > bp ) ;
}
2010-11-17 03:15:08 +00:00
}
return nu ;
}
2009-09-14 16:52:06 +00:00
static StructRNA * rna_Curve_refine ( PointerRNA * ptr )
2009-06-07 13:09:18 +00:00
{
Curve * cu = ( Curve * ) ptr - > data ;
short obtype = curve_type ( cu ) ;
2010-01-11 05:10:57 +00:00
2009-06-07 13:09:18 +00:00
if ( obtype = = OB_FONT ) return & RNA_TextCurve ;
else if ( obtype = = OB_SURF ) return & RNA_SurfaceCurve ;
else return & RNA_Curve ;
}
2009-02-02 19:57:57 +00:00
static void rna_BezTriple_handle1_get ( PointerRNA * ptr , float * values )
2009-02-02 11:51:10 +00:00
{
BezTriple * bt = ( BezTriple * ) ptr - > data ;
2009-02-02 19:57:57 +00:00
values [ 0 ] = bt - > vec [ 0 ] [ 0 ] ;
values [ 1 ] = bt - > vec [ 0 ] [ 1 ] ;
values [ 2 ] = bt - > vec [ 0 ] [ 2 ] ;
2009-02-02 11:51:10 +00:00
}
2009-02-02 19:57:57 +00:00
static void rna_BezTriple_handle1_set ( PointerRNA * ptr , const float * values )
2009-02-02 11:51:10 +00:00
{
BezTriple * bt = ( BezTriple * ) ptr - > data ;
2009-02-02 19:57:57 +00:00
bt - > vec [ 0 ] [ 0 ] = values [ 0 ] ;
bt - > vec [ 0 ] [ 1 ] = values [ 1 ] ;
bt - > vec [ 0 ] [ 2 ] = values [ 2 ] ;
2009-02-02 11:51:10 +00:00
}
2009-02-02 19:57:57 +00:00
static void rna_BezTriple_handle2_get ( PointerRNA * ptr , float * values )
2009-02-02 11:51:10 +00:00
{
BezTriple * bt = ( BezTriple * ) ptr - > data ;
2009-02-02 19:57:57 +00:00
values [ 0 ] = bt - > vec [ 2 ] [ 0 ] ;
values [ 1 ] = bt - > vec [ 2 ] [ 1 ] ;
values [ 2 ] = bt - > vec [ 2 ] [ 2 ] ;
2009-02-02 11:51:10 +00:00
}
2009-02-02 19:57:57 +00:00
static void rna_BezTriple_handle2_set ( PointerRNA * ptr , const float * values )
2009-02-02 11:51:10 +00:00
{
BezTriple * bt = ( BezTriple * ) ptr - > data ;
2009-02-02 19:57:57 +00:00
bt - > vec [ 2 ] [ 0 ] = values [ 0 ] ;
bt - > vec [ 2 ] [ 1 ] = values [ 1 ] ;
bt - > vec [ 2 ] [ 2 ] = values [ 2 ] ;
2009-02-02 11:51:10 +00:00
}
2009-02-02 19:57:57 +00:00
static void rna_BezTriple_ctrlpoint_get ( PointerRNA * ptr , float * values )
2009-02-02 11:51:10 +00:00
{
BezTriple * bt = ( BezTriple * ) ptr - > data ;
2009-02-02 19:57:57 +00:00
values [ 0 ] = bt - > vec [ 1 ] [ 0 ] ;
values [ 1 ] = bt - > vec [ 1 ] [ 1 ] ;
values [ 2 ] = bt - > vec [ 1 ] [ 2 ] ;
2009-02-02 11:51:10 +00:00
}
2009-02-02 19:57:57 +00:00
static void rna_BezTriple_ctrlpoint_set ( PointerRNA * ptr , const float * values )
2009-02-02 11:51:10 +00:00
{
BezTriple * bt = ( BezTriple * ) ptr - > data ;
2009-02-02 19:57:57 +00:00
bt - > vec [ 1 ] [ 0 ] = values [ 0 ] ;
bt - > vec [ 1 ] [ 1 ] = values [ 1 ] ;
bt - > vec [ 1 ] [ 2 ] = values [ 2 ] ;
2009-02-02 11:51:10 +00:00
}
2011-01-06 11:16:35 +00:00
static void rna_Curve_texspace_set ( Main * bmain , Scene * scene , PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > data ;
if ( cu - > texflag & CU_AUTOSPACE )
tex_space_curve ( cu ) ;
}
2008-12-02 23:45:11 +00:00
static int rna_Curve_texspace_editable ( PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > data ;
2009-03-23 13:24:48 +00:00
return ( cu - > texflag & CU_AUTOSPACE ) ? 0 : PROP_EDITABLE ;
2008-12-02 23:45:11 +00:00
}
2010-04-12 05:04:49 +00:00
static void rna_Curve_texspace_loc_get ( PointerRNA * ptr , float * values )
{
Curve * cu = ( Curve * ) ptr - > data ;
if ( ! cu - > bb )
tex_space_curve ( cu ) ;
copy_v3_v3 ( values , cu - > loc ) ;
}
static void rna_Curve_texspace_loc_set ( PointerRNA * ptr , const float * values )
{
Curve * cu = ( Curve * ) ptr - > data ;
copy_v3_v3 ( cu - > loc , values ) ;
}
static void rna_Curve_texspace_size_get ( PointerRNA * ptr , float * values )
{
Curve * cu = ( Curve * ) ptr - > data ;
if ( ! cu - > bb )
tex_space_curve ( cu ) ;
copy_v3_v3 ( values , cu - > size ) ;
}
static void rna_Curve_texspace_size_set ( PointerRNA * ptr , const float * values )
{
Curve * cu = ( Curve * ) ptr - > data ;
copy_v3_v3 ( cu - > size , values ) ;
}
2009-03-28 10:52:51 +00:00
static void rna_Curve_material_index_range ( PointerRNA * ptr , int * min , int * max )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
* min = 0 ;
* max = cu - > totcol - 1 ;
}
2009-09-09 00:10:12 +00:00
static void rna_Curve_active_textbox_index_range ( PointerRNA * ptr , int * min , int * max )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
* min = 0 ;
* max = cu - > totbox - 1 ;
}
2009-09-13 17:38:43 +00:00
static void rna_Curve_dimension_set ( PointerRNA * ptr , int value )
2009-03-28 10:52:51 +00:00
{
2009-09-08 00:23:33 +00:00
Curve * cu = ( Curve * ) ptr - > id . data ;
2010-07-25 11:57:36 +00:00
ListBase * nurbs = BKE_curve_nurbs ( cu ) ;
Nurb * nu = nurbs - > first ;
2009-09-08 00:23:33 +00:00
2009-09-13 17:38:43 +00:00
if ( value = = CU_3D ) {
cu - > flag | = CU_3D ;
for ( ; nu ; nu = nu - > next ) {
nu - > flag & = ~ CU_2D ;
}
}
else {
2009-09-08 00:23:33 +00:00
cu - > flag & = ~ CU_3D ;
2009-09-08 07:35:07 +00:00
for ( ; nu ; nu = nu - > next ) {
2009-09-08 00:23:33 +00:00
nu - > flag | = CU_2D ;
test2DNurb ( nu ) ;
2009-09-08 07:35:07 +00:00
/* since the handles are moved they need to be auto-located again */
if ( nu - > type = = CU_BEZIER )
calchandlesNurb ( nu ) ;
2009-09-08 00:23:33 +00:00
}
}
2009-03-28 10:52:51 +00:00
}
2009-09-08 00:23:33 +00:00
static int rna_Nurb_length ( PointerRNA * ptr )
2009-09-07 15:02:43 +00:00
{
Nurb * nu = ( Nurb * ) ptr - > data ;
2010-06-10 22:11:41 +00:00
if ( nu - > type = = CU_BEZIER ) return 0 ;
2009-09-08 00:23:33 +00:00
return nu - > pntsv > 0 ? nu - > pntsu * nu - > pntsv : nu - > pntsu ;
2009-09-07 15:02:43 +00:00
}
static void rna_Nurb_type_set ( PointerRNA * ptr , int value )
{
Nurb * nu = ( Nurb * ) ptr - > data ;
2009-09-08 00:23:33 +00:00
nu - > type = value ;
// XXX - TODO change datatypes
2009-09-07 15:02:43 +00:00
}
2009-03-28 10:52:51 +00:00
static void rna_BPoint_array_begin ( CollectionPropertyIterator * iter , PointerRNA * ptr )
{
Nurb * nu = ( Nurb * ) ptr - > data ;
2009-11-29 16:42:51 +00:00
rna_iterator_array_begin ( iter , ( void * ) nu - > bp , sizeof ( BPoint ) , nu - > pntsv > 0 ? nu - > pntsu * nu - > pntsv : nu - > pntsu , 0 , NULL ) ;
2009-03-28 10:52:51 +00:00
}
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
static void rna_Curve_update_data_id ( Main * bmain , Scene * scene , ID * id )
2009-08-03 15:06:56 +00:00
{
2011-01-03 12:41:16 +00:00
DAG_id_tag_update ( id , 0 ) ;
2009-12-08 17:23:48 +00:00
WM_main_add_notifier ( NC_GEOM | ND_DATA , id ) ;
2009-08-03 15:06:56 +00:00
}
2009-09-08 07:35:07 +00:00
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
static void rna_Curve_update_data ( Main * bmain , Scene * scene , PointerRNA * ptr )
{
rna_Curve_update_data_id ( bmain , scene , ptr - > id . data ) ;
}
2009-12-08 17:23:48 +00:00
static void rna_Curve_update_deps ( Main * bmain , Scene * scene , PointerRNA * ptr )
2009-11-05 19:32:10 +00:00
{
2010-08-01 12:47:49 +00:00
DAG_scene_sort ( bmain , scene ) ;
2009-12-08 17:23:48 +00:00
rna_Curve_update_data ( bmain , scene , ptr ) ;
2009-11-05 19:32:10 +00:00
}
2010-11-17 03:15:08 +00:00
static void rna_Curve_update_points ( Main * bmain , Scene * scene , PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
Nurb * nu = curve_nurb_from_point ( cu , ptr - > data , NULL , NULL ) ;
if ( nu )
calchandlesNurb ( nu ) ;
rna_Curve_update_data ( bmain , scene , ptr ) ;
}
2010-04-01 08:49:11 +00:00
static PointerRNA rna_Curve_bevelObject_get ( PointerRNA * ptr )
2010-03-30 14:33:05 +00:00
{
Curve * cu = ( Curve * ) ptr - > id . data ;
2010-04-01 08:49:11 +00:00
Object * ob = cu - > bevobj ;
if ( ob )
return rna_pointer_inherit_refine ( ptr , & RNA_Object , ob ) ;
return rna_pointer_inherit_refine ( ptr , NULL , NULL ) ;
}
static void rna_Curve_bevelObject_set ( PointerRNA * ptr , PointerRNA value )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
Object * ob = ( Object * ) value . data ;
2010-03-30 14:33:05 +00:00
2010-03-30 18:10:05 +00:00
if ( ob ) {
2010-04-01 08:49:11 +00:00
/* if bevel object has got the save curve, as object, for which it's */
/* set as bevobj, there could be infinity loop in displist calculation */
if ( ob - > type = = OB_CURVE & & ob - > data ! = cu ) {
cu - > bevobj = ob ;
2010-03-30 18:10:05 +00:00
}
2010-04-01 08:49:11 +00:00
} else {
cu - > bevobj = NULL ;
2010-03-30 14:33:05 +00:00
}
2010-04-01 08:49:11 +00:00
}
2010-03-30 14:33:05 +00:00
2010-08-03 06:51:36 +00:00
static int rna_Curve_otherObject_poll ( PointerRNA * ptr , PointerRNA value )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
Object * ob = ( Object * ) value . data ;
if ( ob ) {
if ( ob - > type = = OB_CURVE & & ob - > data ! = cu ) {
return 1 ;
}
}
return 0 ;
}
2010-04-01 08:49:11 +00:00
static PointerRNA rna_Curve_taperObject_get ( PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
Object * ob = cu - > taperobj ;
if ( ob )
return rna_pointer_inherit_refine ( ptr , & RNA_Object , ob ) ;
return rna_pointer_inherit_refine ( ptr , NULL , NULL ) ;
2010-03-30 14:33:05 +00:00
}
2010-04-01 08:49:11 +00:00
static void rna_Curve_taperObject_set ( PointerRNA * ptr , PointerRNA value )
2010-03-30 14:33:05 +00:00
{
Curve * cu = ( Curve * ) ptr - > id . data ;
2010-04-01 08:49:11 +00:00
Object * ob = ( Object * ) value . data ;
2010-03-30 14:33:05 +00:00
2010-03-30 18:10:05 +00:00
if ( ob ) {
2010-04-01 08:49:11 +00:00
/* if taper object has got the save curve, as object, for which it's */
2010-03-30 18:10:05 +00:00
/* set as bevobj, there could be infinity loop in displist calculation */
2010-04-01 08:49:11 +00:00
if ( ob - > type = = OB_CURVE & & ob - > data ! = cu ) {
cu - > taperobj = ob ;
2010-03-30 18:10:05 +00:00
}
2010-04-01 08:49:11 +00:00
} else {
cu - > taperobj = NULL ;
2010-03-30 14:33:05 +00:00
}
}
2009-12-08 17:23:48 +00:00
static void rna_Curve_resolution_u_update_data ( Main * bmain , Scene * scene , PointerRNA * ptr )
2009-12-04 01:38:36 +00:00
{
Curve * cu = ( Curve * ) ptr - > id . data ;
2010-07-25 11:57:36 +00:00
ListBase * nurbs = BKE_curve_nurbs ( cu ) ;
Nurb * nu = nurbs - > first ;
2009-12-04 01:38:36 +00:00
while ( nu ) {
nu - > resolu = cu - > resolu ;
nu = nu - > next ;
}
2009-12-08 17:23:48 +00:00
rna_Curve_update_data ( bmain , scene , ptr ) ;
2009-12-04 01:38:36 +00:00
}
2009-12-08 17:23:48 +00:00
static void rna_Curve_resolution_v_update_data ( Main * bmain , Scene * scene , PointerRNA * ptr )
2009-12-04 01:38:36 +00:00
{
Curve * cu = ( Curve * ) ptr - > id . data ;
2010-07-25 11:57:36 +00:00
ListBase * nurbs = BKE_curve_nurbs ( cu ) ;
Nurb * nu = nurbs - > first ;
2009-12-04 01:38:36 +00:00
while ( nu ) {
nu - > resolv = cu - > resolv ;
nu = nu - > next ;
}
2010-07-25 11:57:36 +00:00
2009-12-08 17:23:48 +00:00
rna_Curve_update_data ( bmain , scene , ptr ) ;
2009-12-04 01:38:36 +00:00
}
2010-09-02 07:00:34 +00:00
static float rna_Curve_offset_get ( PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
return cu - > width - 1.0f ;
}
static void rna_Curve_offset_set ( PointerRNA * ptr , float value )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
cu - > width = 1.0f + value ;
}
2009-11-12 14:40:09 +00:00
/* name functions that ignore the first two ID characters */
void rna_Curve_body_get ( PointerRNA * ptr , char * value )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
2010-07-17 17:50:20 +00:00
BLI_strncpy ( value , cu - > str , cu - > len + 1 ) ;
2009-11-12 14:40:09 +00:00
}
int rna_Curve_body_length ( PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
2010-07-17 17:50:20 +00:00
return cu - > len ;
2009-11-12 14:40:09 +00:00
}
/* TODO - check UTF & python play nice */
void rna_Curve_body_set ( PointerRNA * ptr , const char * value )
{
int len = strlen ( value ) ;
Curve * cu = ( Curve * ) ptr - > id . data ;
2010-07-17 17:50:20 +00:00
cu - > len = cu - > pos = len ;
2009-11-12 14:40:09 +00:00
if ( cu - > str ) MEM_freeN ( cu - > str ) ;
if ( cu - > strinfo ) MEM_freeN ( cu - > strinfo ) ;
cu - > str = MEM_callocN ( len + sizeof ( wchar_t ) , " str " ) ;
cu - > strinfo = MEM_callocN ( ( len + 4 ) * sizeof ( CharInfo ) , " strinfo " ) ; /* don't know why this is +4, just duplicating load_editText() */
//wcs2utf8s(cu->str, value); // value is not wchar_t
BLI_strncpy ( cu - > str , value , len + 1 ) ;
}
2010-10-04 10:06:18 +00:00
static void rna_Nurb_update_cyclic_u ( Main * bmain , Scene * scene , PointerRNA * ptr )
2009-09-08 07:35:07 +00:00
{
Nurb * nu = ( Nurb * ) ptr - > data ;
2010-10-04 10:06:18 +00:00
if ( nu - > type = = CU_BEZIER ) {
2009-09-08 07:35:07 +00:00
calchandlesNurb ( nu ) ;
2010-10-04 10:06:18 +00:00
} else {
nurbs_knot_calc_u ( nu ) ;
}
rna_Curve_update_data ( bmain , scene , ptr ) ;
}
static void rna_Nurb_update_cyclic_v ( Main * bmain , Scene * scene , PointerRNA * ptr )
{
Nurb * nu = ( Nurb * ) ptr - > data ;
nurbs_knot_calc_v ( nu ) ;
2009-09-08 07:35:07 +00:00
2009-12-08 17:23:48 +00:00
rna_Curve_update_data ( bmain , scene , ptr ) ;
2009-09-08 07:35:07 +00:00
}
2009-12-08 17:23:48 +00:00
static void rna_Nurb_update_knot_u ( Main * bmain , Scene * scene , PointerRNA * ptr )
2009-09-08 07:35:07 +00:00
{
Nurb * nu = ( Nurb * ) ptr - > data ;
clamp_nurb_order_u ( nu ) ;
2010-09-30 06:51:32 +00:00
nurbs_knot_calc_u ( nu ) ;
2009-09-08 07:35:07 +00:00
2009-12-08 17:23:48 +00:00
rna_Curve_update_data ( bmain , scene , ptr ) ;
2009-09-08 07:35:07 +00:00
}
2009-12-08 17:23:48 +00:00
static void rna_Nurb_update_knot_v ( Main * bmain , Scene * scene , PointerRNA * ptr )
2009-09-08 07:35:07 +00:00
{
Nurb * nu = ( Nurb * ) ptr - > data ;
clamp_nurb_order_v ( nu ) ;
2010-09-30 06:51:32 +00:00
nurbs_knot_calc_v ( nu ) ;
2009-09-08 07:35:07 +00:00
2009-12-08 17:23:48 +00:00
rna_Curve_update_data ( bmain , scene , ptr ) ;
2009-09-08 07:35:07 +00:00
}
2010-04-06 01:28:39 +00:00
static void rna_Curve_spline_points_add ( ID * id , Nurb * nu , ReportList * reports , int number )
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
{
if ( nu - > type = = CU_BEZIER ) {
BKE_report ( reports , RPT_ERROR , " Bezier spline can't have points added " ) ;
}
else if ( number = = 0 ) {
// do nothing
} else {
addNurbPoints ( nu , number ) ;
/* update */
2010-09-30 06:51:32 +00:00
nurbs_knot_calc_u ( nu ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
2010-04-06 01:28:39 +00:00
rna_Curve_update_data_id ( NULL , NULL , id ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
}
}
2010-04-06 01:28:39 +00:00
static void rna_Curve_spline_bezpoints_add ( ID * id , Nurb * nu , ReportList * reports , int number )
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
{
if ( nu - > type ! = CU_BEZIER ) {
BKE_report ( reports , RPT_ERROR , " Only bezier splines can be added " ) ;
}
else if ( number = = 0 ) {
// do nothing
} else {
addNurbPointsBezier ( nu , number ) ;
/* update */
2010-09-30 06:51:32 +00:00
nurbs_knot_calc_u ( nu ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
2010-04-06 01:28:39 +00:00
rna_Curve_update_data_id ( NULL , NULL , id ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
}
}
static Nurb * rna_Curve_spline_new ( Curve * cu , int type )
{
Nurb * nu = ( Nurb * ) MEM_callocN ( sizeof ( Nurb ) , " spline.new " ) ;
if ( type = = CU_BEZIER ) {
BezTriple * bezt = ( BezTriple * ) MEM_callocN ( sizeof ( BezTriple ) , " spline.new.bezt " ) ;
bezt - > radius = 1.0 ;
nu - > bezt = bezt ;
}
else {
BPoint * bp = ( BPoint * ) MEM_callocN ( sizeof ( BPoint ) , " spline.new.bp " ) ;
bp - > radius = 1.0f ;
nu - > bp = bp ;
}
nu - > type = type ;
nu - > pntsu = 1 ;
nu - > pntsv = 1 ;
nu - > orderu = nu - > orderv = 4 ;
nu - > resolu = nu - > resolv = 12 ;
nu - > flag = CU_SMOOTH ;
2010-11-20 17:28:05 +00:00
BLI_addtail ( BKE_curve_nurbs ( cu ) , nu ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
return nu ;
}
static void rna_Curve_spline_remove ( Curve * cu , ReportList * reports , Nurb * nu )
{
int found = 0 ;
2010-07-25 11:57:36 +00:00
ListBase * nurbs = BKE_curve_nurbs ( cu ) ;
found = BLI_remlink_safe ( nurbs , nu ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
if ( ! found ) {
BKE_reportf ( reports , RPT_ERROR , " Curve \" %s \" does not contain spline given " , cu - > id . name + 2 ) ;
return ;
}
freeNurb ( nu ) ;
/* invalidate pointer!, no can do */
}
static PointerRNA rna_Curve_active_spline_get ( PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > data ;
Nurb * nu ;
2010-07-25 11:57:36 +00:00
ListBase * nurbs = BKE_curve_nurbs ( cu ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
2010-07-25 11:57:36 +00:00
// for curve outside editmode will set to -1, should be changed to be allowed outside of editmode.
nu = BLI_findlink ( nurbs , cu - > actnu ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
if ( nu )
return rna_pointer_inherit_refine ( ptr , & RNA_Spline , nu ) ;
return rna_pointer_inherit_refine ( ptr , NULL , NULL ) ;
}
static void rna_Curve_active_spline_set ( PointerRNA * ptr , PointerRNA value )
{
Curve * cu = ( Curve * ) ptr - > data ;
Nurb * nu = value . data ;
2010-07-25 11:57:36 +00:00
ListBase * nubase = BKE_curve_nurbs ( cu ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
/* -1 is ok for an unset index */
if ( nu = = NULL )
cu - > actnu = - 1 ;
else
2010-07-25 11:57:36 +00:00
cu - > actnu = BLI_findindex ( nubase , nu ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
}
2010-11-17 03:15:08 +00:00
static char * rna_Curve_spline_path ( PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
ListBase * nubase = BKE_curve_nurbs ( cu ) ;
Nurb * nu = ptr - > data ;
int index = BLI_findindex ( nubase , nu ) ;
if ( index > = 0 )
return BLI_sprintfN ( " splines[%d] " , index ) ;
else
return BLI_strdup ( " " ) ;
}
/* use for both bezier and nurbs */
static char * rna_Curve_spline_point_path ( PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
Nurb * nu ;
void * point = ptr - > data ;
int nu_index , pt_index ;
nu = curve_nurb_from_point ( cu , point , & nu_index , & pt_index ) ;
if ( nu ) {
if ( nu - > type = = CU_BEZIER ) {
return BLI_sprintfN ( " splines[%d].bezier_points[%d] " , nu_index , pt_index ) ;
}
else {
return BLI_sprintfN ( " splines[%d].points[%d] " , nu_index , pt_index ) ;
}
}
else {
return BLI_strdup ( " " ) ;
}
}
2010-07-30 06:48:18 +00:00
static char * rna_TextBox_path ( PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
TextBox * tb = ptr - > data ;
int index = ( int ) ( tb - cu - > tb ) ;
if ( index > = 0 & & index < cu - > totbox )
return BLI_sprintfN ( " textboxes[%d] " , index ) ;
else
return BLI_strdup ( " " ) ;
}
2010-11-20 17:28:05 +00:00
static void rna_Curve_splines_begin ( CollectionPropertyIterator * iter , PointerRNA * ptr )
{
Curve * cu = ( Curve * ) ptr - > id . data ;
rna_iterator_listbase_begin ( iter , BKE_curve_nurbs ( cu ) , NULL ) ;
}
2008-12-01 19:02:27 +00:00
# else
2009-02-02 19:57:57 +00:00
static void rna_def_bpoint ( BlenderRNA * brna )
2009-02-02 11:51:10 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
2009-11-29 16:42:51 +00:00
srna = RNA_def_struct ( brna , " SplinePoint " , NULL ) ;
2009-02-02 11:51:10 +00:00
RNA_def_struct_sdna ( srna , " BPoint " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " SplinePoint " , " Spline point without handles " ) ;
2009-02-02 11:51:10 +00:00
/* Boolean values */
2010-07-15 16:56:04 +00:00
prop = RNA_def_property ( srna , " select " , PROP_BOOLEAN , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " f1 " , 0 ) ;
2010-07-15 16:56:04 +00:00
RNA_def_property_ui_text ( prop , " Select " , " Selection status " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
2010-07-15 16:56:04 +00:00
prop = RNA_def_property ( srna , " hide " , PROP_BOOLEAN , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " hide " , 0 ) ;
2010-07-15 16:56:04 +00:00
RNA_def_property_ui_text ( prop , " Hide " , " Visibility status " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
/* Vector value */
2009-11-29 16:42:51 +00:00
prop = RNA_def_property ( srna , " co " , PROP_FLOAT , PROP_TRANSLATION ) ;
RNA_def_property_array ( prop , 3 ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_float_sdna ( prop , NULL , " vec " ) ;
RNA_def_property_ui_text ( prop , " Point " , " Point coordinates " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
2009-11-29 16:42:51 +00:00
prop = RNA_def_property ( srna , " weight " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " vec[3] " ) ;
RNA_def_property_ui_text ( prop , " Weight " , " Nurbs weight " ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
/* Number values */
prop = RNA_def_property ( srna , " tilt " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " alfa " ) ;
/*RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);*/
2010-02-09 17:50:56 +00:00
RNA_def_property_ui_text ( prop , " Tilt " , " Tilt in 3D View " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
2009-11-29 16:42:51 +00:00
prop = RNA_def_property ( srna , " weight_softbody " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " weight " ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_range ( prop , 0.01f , 100.0f ) ;
RNA_def_property_ui_text ( prop , " Weight " , " Softbody goal weight " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
2009-09-07 15:02:43 +00:00
prop = RNA_def_property ( srna , " radius " , PROP_FLOAT , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_float_sdna ( prop , NULL , " radius " ) ;
2010-11-17 12:59:59 +00:00
RNA_def_property_range ( prop , 0.0f , FLT_MAX ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_ui_text ( prop , " Bevel Radius " , " Radius for bevelling " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-11-17 03:15:08 +00:00
RNA_def_struct_path_func ( srna , " rna_Curve_spline_point_path " ) ;
2009-02-02 11:51:10 +00:00
}
2009-02-02 19:57:57 +00:00
static void rna_def_beztriple ( BlenderRNA * brna )
2009-02-02 11:51:10 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
2009-11-29 16:42:51 +00:00
srna = RNA_def_struct ( brna , " BezierSplinePoint " , NULL ) ;
2009-02-02 11:51:10 +00:00
RNA_def_struct_sdna ( srna , " BezTriple " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Bezier Curve Point " , " Bezier curve point with two handles " ) ;
2009-02-02 11:51:10 +00:00
/* Boolean values */
2010-07-15 16:56:04 +00:00
prop = RNA_def_property ( srna , " select_left_handle " , PROP_BOOLEAN , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " f1 " , 0 ) ;
RNA_def_property_ui_text ( prop , " Handle 1 selected " , " Handle 1 selection status " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
2010-07-15 16:56:04 +00:00
prop = RNA_def_property ( srna , " select_right_handle " , PROP_BOOLEAN , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " f3 " , 0 ) ;
RNA_def_property_ui_text ( prop , " Handle 2 selected " , " Handle 2 selection status " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
2010-07-15 16:56:04 +00:00
prop = RNA_def_property ( srna , " select_control_point " , PROP_BOOLEAN , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " f2 " , 0 ) ;
RNA_def_property_ui_text ( prop , " Control Point selected " , " Control point selection status " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
2010-07-15 16:56:04 +00:00
prop = RNA_def_property ( srna , " hide " , PROP_BOOLEAN , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " hide " , 0 ) ;
2010-07-15 16:56:04 +00:00
RNA_def_property_ui_text ( prop , " Hide " , " Visibility status " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
/* Enums */
2010-08-18 08:26:18 +00:00
prop = RNA_def_property ( srna , " handle_left_type " , PROP_ENUM , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_enum_sdna ( prop , NULL , " h1 " ) ;
2009-05-08 10:50:32 +00:00
RNA_def_property_enum_items ( prop , beztriple_handle_type_items ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_ui_text ( prop , " Handle 1 Type " , " Handle types " ) ;
2010-11-17 03:15:08 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_points " ) ;
2009-02-02 11:51:10 +00:00
2010-08-18 08:26:18 +00:00
prop = RNA_def_property ( srna , " handle_right_type " , PROP_ENUM , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_enum_sdna ( prop , NULL , " h2 " ) ;
2009-05-08 10:50:32 +00:00
RNA_def_property_enum_items ( prop , beztriple_handle_type_items ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_ui_text ( prop , " Handle 2 Type " , " Handle types " ) ;
2010-11-17 03:15:08 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_points " ) ;
2009-02-02 11:51:10 +00:00
/* Vector values */
2010-08-18 08:26:18 +00:00
prop = RNA_def_property ( srna , " handle_left " , PROP_FLOAT , PROP_TRANSLATION ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_array ( prop , 3 ) ;
RNA_def_property_float_funcs ( prop , " rna_BezTriple_handle1_get " , " rna_BezTriple_handle1_set " , NULL ) ;
RNA_def_property_ui_text ( prop , " Handle 1 " , " Coordinates of the first handle " ) ;
2010-11-17 03:15:08 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_points " ) ;
2009-02-02 11:51:10 +00:00
2009-11-29 16:42:51 +00:00
prop = RNA_def_property ( srna , " co " , PROP_FLOAT , PROP_TRANSLATION ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_array ( prop , 3 ) ;
RNA_def_property_float_funcs ( prop , " rna_BezTriple_ctrlpoint_get " , " rna_BezTriple_ctrlpoint_set " , NULL ) ;
RNA_def_property_ui_text ( prop , " Control Point " , " Coordinates of the control point " ) ;
2010-11-17 03:15:08 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_points " ) ;
2009-02-02 11:51:10 +00:00
2010-08-18 08:26:18 +00:00
prop = RNA_def_property ( srna , " handle_right " , PROP_FLOAT , PROP_TRANSLATION ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_array ( prop , 3 ) ;
RNA_def_property_float_funcs ( prop , " rna_BezTriple_handle2_get " , " rna_BezTriple_handle2_set " , NULL ) ;
RNA_def_property_ui_text ( prop , " Handle 2 " , " Coordinates of the second handle " ) ;
2010-11-17 03:15:08 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_points " ) ;
2009-02-02 11:51:10 +00:00
/* Number values */
prop = RNA_def_property ( srna , " tilt " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " alfa " ) ;
/*RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);*/
2010-02-09 17:50:56 +00:00
RNA_def_property_ui_text ( prop , " Tilt " , " Tilt in 3D View " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
prop = RNA_def_property ( srna , " weight " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_range ( prop , 0.01f , 100.0f ) ;
RNA_def_property_ui_text ( prop , " Weight " , " Softbody goal weight " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-02-02 11:51:10 +00:00
2009-09-07 15:02:43 +00:00
prop = RNA_def_property ( srna , " radius " , PROP_FLOAT , PROP_NONE ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_float_sdna ( prop , NULL , " radius " ) ;
2010-11-17 12:59:59 +00:00
RNA_def_property_range ( prop , 0.0f , FLT_MAX ) ;
2009-02-02 11:51:10 +00:00
RNA_def_property_ui_text ( prop , " Bevel Radius " , " Radius for bevelling " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-11-17 03:15:08 +00:00
RNA_def_struct_path_func ( srna , " rna_Curve_spline_point_path " ) ;
2009-02-02 11:51:10 +00:00
}
2008-12-01 21:19:36 +00:00
static void rna_def_path ( BlenderRNA * brna , StructRNA * srna )
2008-12-01 19:02:27 +00:00
{
PropertyRNA * prop ;
/* number values */
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " path_duration " , PROP_INT , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_int_sdna ( prop , NULL , " pathlen " ) ;
2010-02-03 06:30:16 +00:00
RNA_def_property_range ( prop , 1 , MAXFRAME ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Path Length " , " The number of frames that are needed to traverse the path, defining the maximum value for the 'Evaluation Time' setting " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
/* flags */
2009-09-07 15:02:43 +00:00
prop = RNA_def_property ( srna , " use_path " , PROP_BOOLEAN , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_PATH ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Path " , " Enable the curve to become a translation path " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2009-09-07 15:02:43 +00:00
prop = RNA_def_property ( srna , " use_path_follow " , PROP_BOOLEAN , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_FOLLOW ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Follow " , " Make curve path children to rotate along the path " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2009-09-07 15:02:43 +00:00
prop = RNA_def_property ( srna , " use_stretch " , PROP_BOOLEAN , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_STRETCH ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Stretch " , " Option for curve-deform: makes deformed child to stretch along entire path " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-08-06 08:27:07 +00:00
prop = RNA_def_property ( srna , " use_deform_bounds " , PROP_BOOLEAN , PROP_NONE ) ;
RNA_def_property_boolean_negative_sdna ( prop , NULL , " flag " , CU_DEFORM_BOUNDS_OFF ) ;
RNA_def_property_ui_text ( prop , " Bounds Clamp " , " Use the mesh bounds to clamp the deformation " ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-09-07 15:02:43 +00:00
prop = RNA_def_property ( srna , " use_time_offset " , PROP_BOOLEAN , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_OFFS_PATHDIST ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Offset Path Distance " , " Children will use TimeOffs value as path distance offset " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-09-12 16:25:49 +00:00
prop = RNA_def_property ( srna , " use_radius " , PROP_BOOLEAN , PROP_NONE ) ;
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_PATH_RADIUS ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Radius " , " Option for paths: apply the curve radius with path following it and deforming " ) ;
2009-09-12 16:25:49 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
}
2008-12-01 21:19:36 +00:00
static void rna_def_nurbs ( BlenderRNA * brna , StructRNA * srna )
2008-12-01 19:02:27 +00:00
{
PropertyRNA * prop ;
/* flags */
2010-11-16 12:10:57 +00:00
prop = RNA_def_property ( srna , " use_uv_as_generated " , PROP_BOOLEAN , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_UV_ORCO ) ;
2010-11-16 12:10:57 +00:00
RNA_def_property_ui_text ( prop , " Use UV for Mapping " , " Uses the UV values as Generated textured coordinates " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
}
2008-12-01 21:19:36 +00:00
static void rna_def_font ( BlenderRNA * brna , StructRNA * srna )
2008-12-01 19:02:27 +00:00
{
PropertyRNA * prop ;
2009-05-11 11:31:10 +00:00
static EnumPropertyItem prop_align_items [ ] = {
2009-06-16 00:52:21 +00:00
{ CU_LEFT , " LEFT " , 0 , " Left " , " Align text to the left " } ,
2010-12-11 11:11:32 +00:00
{ CU_MIDDLE , " CENTER " , 0 , " Center " , " Center text " } ,
2009-06-16 00:52:21 +00:00
{ CU_RIGHT , " RIGHT " , 0 , " Right " , " Align text to the right " } ,
{ CU_JUSTIFY , " JUSTIFY " , 0 , " Justify " , " Align to the left and the right " } ,
{ CU_FLUSH , " FLUSH " , 0 , " Flush " , " Align to the left and the right, with equal character spacing " } ,
{ 0 , NULL , 0 , NULL , NULL } } ;
2009-05-11 11:31:10 +00:00
/* Enums */
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " align " , PROP_ENUM , PROP_NONE ) ;
RNA_def_property_enum_sdna ( prop , NULL , " spacemode " ) ;
2009-05-11 11:31:10 +00:00
RNA_def_property_enum_items ( prop , prop_align_items ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Text Align " , " Text align from the object center " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-05-11 11:31:10 +00:00
2008-12-01 19:02:27 +00:00
/* number values */
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " size " , PROP_FLOAT , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_float_sdna ( prop , NULL , " fsize " ) ;
2009-10-10 16:17:33 +00:00
RNA_def_property_range ( prop , 0.0001f , 10000.0f ) ;
2010-08-22 16:44:48 +00:00
RNA_def_property_ui_range ( prop , 0.01 , 10 , 1 , 3 ) ;
2008-12-19 06:05:00 +00:00
RNA_def_property_ui_text ( prop , " Font size " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2010-07-13 22:21:59 +00:00
prop = RNA_def_property ( srna , " small_caps_scale " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " smallcaps_scale " ) ;
2010-08-22 16:44:48 +00:00
RNA_def_property_ui_range ( prop , 0 , 1.0 , 1 , 2 ) ;
2010-07-13 22:21:59 +00:00
RNA_def_property_ui_text ( prop , " Small Caps " , " Scale of small capitals " ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " space_line " , PROP_FLOAT , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_float_sdna ( prop , NULL , " linedist " ) ;
RNA_def_property_range ( prop , 0.0f , 10.0f ) ;
2008-12-19 06:05:00 +00:00
RNA_def_property_ui_text ( prop , " Distance between lines of text " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " space_word " , PROP_FLOAT , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_float_sdna ( prop , NULL , " wordspace " ) ;
RNA_def_property_range ( prop , 0.0f , 10.0f ) ;
2008-12-19 06:05:00 +00:00
RNA_def_property_ui_text ( prop , " Spacing between words " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " space_character " , PROP_FLOAT , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_float_sdna ( prop , NULL , " spacing " ) ;
RNA_def_property_range ( prop , 0.0f , 10.0f ) ;
2008-12-19 06:05:00 +00:00
RNA_def_property_ui_text ( prop , " Global spacing between characters " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
prop = RNA_def_property ( srna , " shear " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " shear " ) ;
RNA_def_property_range ( prop , - 1.0f , 1.0f ) ;
2008-12-19 06:05:00 +00:00
RNA_def_property_ui_text ( prop , " Shear " , " Italic angle of the characters " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2009-08-28 15:03:49 +00:00
prop = RNA_def_property ( srna , " offset_x " , PROP_FLOAT , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_float_sdna ( prop , NULL , " xof " ) ;
RNA_def_property_range ( prop , - 50.0f , 50.0f ) ;
2009-11-30 14:40:45 +00:00
RNA_def_property_ui_text ( prop , " X Offset " , " Horizontal offset from the object origin " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2009-08-28 15:03:49 +00:00
prop = RNA_def_property ( srna , " offset_y " , PROP_FLOAT , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_float_sdna ( prop , NULL , " yof " ) ;
RNA_def_property_range ( prop , - 50.0f , 50.0f ) ;
2009-11-30 14:40:45 +00:00
RNA_def_property_ui_text ( prop , " Y Offset " , " Vertical offset from the object origin " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " underline_position " , PROP_FLOAT , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_float_sdna ( prop , NULL , " ulpos " ) ;
RNA_def_property_range ( prop , - 0.2f , 0.8f ) ;
2009-09-08 11:31:15 +00:00
RNA_def_property_ui_text ( prop , " Underline Position " , " Vertical position of underline " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " underline_height " , PROP_FLOAT , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_float_sdna ( prop , NULL , " ulheight " ) ;
RNA_def_property_range ( prop , - 0.2f , 0.8f ) ;
2009-09-08 11:31:15 +00:00
RNA_def_property_ui_text ( prop , " Underline Thickness " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2010-08-18 08:26:18 +00:00
prop = RNA_def_property ( srna , " text_boxes " , PROP_COLLECTION , PROP_NONE ) ;
2009-09-09 00:10:12 +00:00
RNA_def_property_collection_sdna ( prop , NULL , " tb " , " totbox " ) ;
RNA_def_property_struct_type ( prop , " TextBox " ) ;
RNA_def_property_ui_text ( prop , " Textboxes " , " " ) ;
2008-12-01 19:02:27 +00:00
prop = RNA_def_property ( srna , " active_textbox " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " actbox " ) ;
2008-12-19 06:05:00 +00:00
RNA_def_property_ui_text ( prop , " The active text box " , " " ) ;
2009-09-09 00:10:12 +00:00
RNA_def_property_int_funcs ( prop , NULL , NULL , " rna_Curve_active_textbox_index_range " ) ;
2008-12-01 19:02:27 +00:00
/* strings */
prop = RNA_def_property ( srna , " family " , PROP_STRING , PROP_NONE ) ;
2010-11-05 07:35:21 +00:00
RNA_def_property_string_maxlength ( prop , ( sizeof ( ( ID * ) NULL ) - > name ) - 2 ) ;
2009-09-08 11:31:15 +00:00
RNA_def_property_ui_text ( prop , " Object Font " , " Use Blender Objects as font characters. Give font objects a common name followed by the character it represents, eg. familya, familyb etc, and turn on Verts Duplication " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2009-11-12 14:40:09 +00:00
prop = RNA_def_property ( srna , " body " , PROP_STRING , PROP_NONE ) ;
2008-12-02 23:45:11 +00:00
RNA_def_property_string_sdna ( prop , NULL , " str " ) ;
2010-05-04 05:15:53 +00:00
RNA_def_property_ui_text ( prop , " Body Text " , " contents of this text object " ) ;
2009-11-12 14:40:09 +00:00
RNA_def_property_string_funcs ( prop , " rna_Curve_body_get " , " rna_Curve_body_length " , " rna_Curve_body_set " ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_string_maxlength ( prop , 8192 ) ; /* note that originally str did not have a limit! */
2009-11-12 14:40:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-07-17 17:50:20 +00:00
prop = RNA_def_property ( srna , " body_format " , PROP_COLLECTION , PROP_NONE ) ;
RNA_def_property_collection_sdna ( prop , NULL , " strinfo " , " len " ) ;
RNA_def_property_struct_type ( prop , " TextCharacterFormat " ) ;
RNA_def_property_ui_text ( prop , " Character Info " , " Stores the style of each character " ) ;
2008-12-01 19:02:27 +00:00
/* pointers */
2010-08-18 08:26:18 +00:00
prop = RNA_def_property ( srna , " follow_curve " , PROP_POINTER , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_pointer_sdna ( prop , NULL , " textoncurve " ) ;
2010-08-03 06:51:36 +00:00
RNA_def_property_pointer_funcs ( prop , NULL , NULL , NULL , " rna_Curve_otherObject_poll " ) ;
2009-05-28 23:23:47 +00:00
RNA_def_property_flag ( prop , PROP_EDITABLE ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Text on Curve " , " Curve deforming text object " ) ;
2009-11-05 19:32:10 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_deps " ) ;
2008-12-01 19:02:27 +00:00
prop = RNA_def_property ( srna , " font " , PROP_POINTER , PROP_NONE ) ;
RNA_def_property_pointer_sdna ( prop , NULL , " vfont " ) ;
RNA_def_property_ui_text ( prop , " Font " , " " ) ;
2010-01-11 05:10:57 +00:00
RNA_def_property_flag ( prop , PROP_EDITABLE ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-09-09 00:10:12 +00:00
2010-12-06 04:05:34 +00:00
prop = RNA_def_property ( srna , " font_bold " , PROP_POINTER , PROP_NONE ) ;
RNA_def_property_pointer_sdna ( prop , NULL , " vfontb " ) ;
RNA_def_property_ui_text ( prop , " Font " , " " ) ;
RNA_def_property_flag ( prop , PROP_EDITABLE ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
prop = RNA_def_property ( srna , " font_italic " , PROP_POINTER , PROP_NONE ) ;
RNA_def_property_pointer_sdna ( prop , NULL , " vfonti " ) ;
RNA_def_property_ui_text ( prop , " Font " , " " ) ;
RNA_def_property_flag ( prop , PROP_EDITABLE ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
prop = RNA_def_property ( srna , " font_bold_italic " , PROP_POINTER , PROP_NONE ) ;
RNA_def_property_pointer_sdna ( prop , NULL , " vfontbi " ) ;
RNA_def_property_ui_text ( prop , " Font " , " " ) ;
RNA_def_property_flag ( prop , PROP_EDITABLE ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-01-10 22:57:33 +00:00
prop = RNA_def_property ( srna , " edit_format " , PROP_POINTER , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_pointer_sdna ( prop , NULL , " curinfo " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Edit Format " , " Editing settings character formatting " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-12-06 04:05:34 +00:00
2008-12-01 19:02:27 +00:00
/* flags */
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_fast_edit " , PROP_BOOLEAN , PROP_NONE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_FAST ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Fast " , " Don't fill polygons while editing " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
}
2009-06-07 13:09:18 +00:00
static void rna_def_textbox ( BlenderRNA * brna )
2008-12-01 19:02:27 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
2008-12-19 04:06:24 +00:00
srna = RNA_def_struct ( brna , " TextBox " , NULL ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Text Box " , " Text bounding box for layout " ) ;
2008-12-01 19:02:27 +00:00
/* number values */
prop = RNA_def_property ( srna , " x " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " x " ) ;
RNA_def_property_range ( prop , - 50.0f , 50.0f ) ;
RNA_def_property_ui_text ( prop , " Textbox X Offset " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
prop = RNA_def_property ( srna , " y " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " y " ) ;
RNA_def_property_range ( prop , - 50.0f , 50.0f ) ;
RNA_def_property_ui_text ( prop , " Textbox Y Offset " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
prop = RNA_def_property ( srna , " width " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " w " ) ;
RNA_def_property_range ( prop , 0.0f , 50.0f ) ;
RNA_def_property_ui_text ( prop , " Textbox Width " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
prop = RNA_def_property ( srna , " height " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " h " ) ;
RNA_def_property_range ( prop , 0.0f , 50.0f ) ;
RNA_def_property_ui_text ( prop , " Textbox Height " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-07-30 06:48:18 +00:00
RNA_def_struct_path_func ( srna , " rna_TextBox_path " ) ;
2008-12-01 19:02:27 +00:00
}
2009-06-07 13:09:18 +00:00
static void rna_def_charinfo ( BlenderRNA * brna )
2008-12-01 19:02:27 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
2009-01-10 22:57:33 +00:00
srna = RNA_def_struct ( brna , " TextCharacterFormat " , NULL ) ;
RNA_def_struct_sdna ( srna , " CharInfo " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Text Character Format " , " Text character formatting settings " ) ;
2008-12-01 19:02:27 +00:00
/* flags */
2010-08-20 06:09:58 +00:00
prop = RNA_def_property ( srna , " use_bold " , PROP_BOOLEAN , PROP_NONE ) ;
2010-07-13 23:51:21 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_CHINFO_BOLD ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_ui_text ( prop , " Bold " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2010-08-20 06:09:58 +00:00
prop = RNA_def_property ( srna , " use_italic " , PROP_BOOLEAN , PROP_NONE ) ;
2010-07-13 23:51:21 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_CHINFO_ITALIC ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_ui_text ( prop , " Italic " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2010-08-20 06:09:58 +00:00
prop = RNA_def_property ( srna , " use_underline " , PROP_BOOLEAN , PROP_NONE ) ;
2010-07-13 23:51:21 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_CHINFO_UNDERLINE ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_ui_text ( prop , " Underline " , " " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
2010-07-13 23:51:21 +00:00
/* probably there is no reason to expose this */
/* prop= RNA_def_property(srna, "wrap", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_CHINFO_WRAP ) ;
2008-12-01 19:02:27 +00:00
RNA_def_property_ui_text ( prop , " Wrap " , " " ) ;
2010-07-13 23:51:21 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ; */
2010-07-13 22:21:59 +00:00
prop = RNA_def_property ( srna , " use_small_caps " , PROP_BOOLEAN , PROP_NONE ) ;
2010-07-13 23:51:21 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_CHINFO_SMALLCAPS ) ;
2010-07-13 22:21:59 +00:00
RNA_def_property_ui_text ( prop , " Small Caps " , " " ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2008-12-01 19:02:27 +00:00
}
2009-06-07 13:09:18 +00:00
static void rna_def_surface ( BlenderRNA * brna )
{
StructRNA * srna ;
srna = RNA_def_struct ( brna , " SurfaceCurve " , " Curve " ) ;
RNA_def_struct_sdna ( srna , " Curve " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Surface Curve " , " Curve datablock used for storing surfaces " ) ;
2009-06-07 13:09:18 +00:00
RNA_def_struct_ui_icon ( srna , ICON_SURFACE_DATA ) ;
rna_def_nurbs ( brna , srna ) ;
}
static void rna_def_text ( BlenderRNA * brna )
{
StructRNA * srna ;
srna = RNA_def_struct ( brna , " TextCurve " , " Curve " ) ;
RNA_def_struct_sdna ( srna , " Curve " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Text Curve " , " Curve datablock used for storing text " ) ;
2009-06-07 13:09:18 +00:00
RNA_def_struct_ui_icon ( srna , ICON_FONT_DATA ) ;
rna_def_font ( brna , srna ) ;
rna_def_nurbs ( brna , srna ) ;
}
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
/* curve.splines[0].points */
static void rna_def_curve_spline_points ( BlenderRNA * brna , PropertyRNA * cprop )
{
StructRNA * srna ;
//PropertyRNA *prop;
FunctionRNA * func ;
2011-01-10 03:58:07 +00:00
//PropertyRNA *parm;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
RNA_def_property_srna ( cprop , " SplinePoints " ) ;
srna = RNA_def_struct ( brna , " SplinePoints " , NULL ) ;
RNA_def_struct_sdna ( srna , " Nurb " ) ;
RNA_def_struct_ui_text ( srna , " Spline Points " , " Collection of spline points " ) ;
func = RNA_def_function ( srna , " add " , " rna_Curve_spline_points_add " ) ;
RNA_def_function_ui_description ( func , " Add a number of points to this spline. " ) ;
2010-04-06 01:28:39 +00:00
RNA_def_function_flag ( func , FUNC_USE_SELF_ID | FUNC_USE_REPORTS ) ;
2011-01-10 03:58:07 +00:00
RNA_def_int ( func , " number " , 1 , INT_MIN , INT_MAX , " Number " , " Number of points to add to the spline " , 0 , INT_MAX ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
/*
func = RNA_def_function ( srna , " remove " , " rna_Curve_spline_remove " ) ;
RNA_def_function_ui_description ( func , " Remove a spline from a curve. " ) ;
RNA_def_function_flag ( func , FUNC_USE_REPORTS ) ;
parm = RNA_def_pointer ( func , " spline " , " Spline " , " " , " The spline to remove. " ) ;
2010-08-24 06:40:28 +00:00
RNA_def_property_flag ( parm , PROP_REQUIRED | PROP_NEVER_NULL ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
*/
}
static void rna_def_curve_spline_bezpoints ( BlenderRNA * brna , PropertyRNA * cprop )
{
StructRNA * srna ;
//PropertyRNA *prop;
FunctionRNA * func ;
2011-01-13 05:05:10 +00:00
//PropertyRNA *parm;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
RNA_def_property_srna ( cprop , " SplineBezierPoints " ) ;
srna = RNA_def_struct ( brna , " SplineBezierPoints " , NULL ) ;
RNA_def_struct_sdna ( srna , " Nurb " ) ;
RNA_def_struct_ui_text ( srna , " Spline Bezier Points " , " Collection of spline bezirt points " ) ;
func = RNA_def_function ( srna , " add " , " rna_Curve_spline_bezpoints_add " ) ;
RNA_def_function_ui_description ( func , " Add a number of points to this spline. " ) ;
2010-04-06 01:28:39 +00:00
RNA_def_function_flag ( func , FUNC_USE_SELF_ID | FUNC_USE_REPORTS ) ;
2011-01-13 04:53:55 +00:00
RNA_def_int ( func , " number " , 1 , INT_MIN , INT_MAX , " Number " , " Number of points to add to the spline " , 0 , INT_MAX ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
/*
func = RNA_def_function ( srna , " remove " , " rna_Curve_spline_remove " ) ;
RNA_def_function_ui_description ( func , " Remove a spline from a curve. " ) ;
RNA_def_function_flag ( func , FUNC_USE_REPORTS ) ;
parm = RNA_def_pointer ( func , " spline " , " Spline " , " " , " The spline to remove. " ) ;
2010-08-24 06:40:28 +00:00
RNA_def_property_flag ( parm , PROP_REQUIRED | PROP_NEVER_NULL ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
*/
}
/* curve.splines */
static void rna_def_curve_splines ( BlenderRNA * brna , PropertyRNA * cprop )
{
StructRNA * srna ;
PropertyRNA * prop ;
FunctionRNA * func ;
PropertyRNA * parm ;
RNA_def_property_srna ( cprop , " CurveSplines " ) ;
srna = RNA_def_struct ( brna , " CurveSplines " , NULL ) ;
RNA_def_struct_sdna ( srna , " Curve " ) ;
RNA_def_struct_ui_text ( srna , " Curve Splines " , " Collection of curve splines " ) ;
func = RNA_def_function ( srna , " new " , " rna_Curve_spline_new " ) ;
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. " ) ;
RNA_def_property_flag ( parm , PROP_REQUIRED ) ;
parm = RNA_def_pointer ( func , " spline " , " Spline " , " " , " The newly created spline. " ) ;
RNA_def_function_return ( func , parm ) ;
func = RNA_def_function ( srna , " remove " , " rna_Curve_spline_remove " ) ;
RNA_def_function_ui_description ( func , " Remove a spline from a curve. " ) ;
RNA_def_function_flag ( func , FUNC_USE_REPORTS ) ;
parm = RNA_def_pointer ( func , " spline " , " Spline " , " " , " The spline to remove. " ) ;
2010-08-24 06:40:28 +00:00
RNA_def_property_flag ( parm , PROP_REQUIRED | PROP_NEVER_NULL ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
prop = RNA_def_property ( srna , " active " , PROP_POINTER , PROP_NONE ) ;
RNA_def_property_struct_type ( prop , " Object " ) ;
2010-08-03 05:14:59 +00:00
RNA_def_property_pointer_funcs ( prop , " rna_Curve_active_spline_get " , " rna_Curve_active_spline_set " , NULL , NULL ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
RNA_def_property_flag ( prop , PROP_EDITABLE ) ;
RNA_def_property_ui_text ( prop , " Active Spline " , " Active curve spline " ) ;
/* Could call: ED_base_object_activate(C, scene->basact);
* but would be a bad level call and it seems the notifier is enough */
RNA_def_property_update ( prop , NC_SCENE | ND_OB_ACTIVE , NULL ) ;
}
2009-06-07 13:09:18 +00:00
static void rna_def_curve ( BlenderRNA * brna )
2009-01-10 22:57:33 +00:00
{
StructRNA * srna ;
PropertyRNA * prop ;
2009-09-11 15:35:30 +00:00
static EnumPropertyItem curve_twist_mode_items [ ] = {
{ CU_TWIST_Z_UP , " Z_UP " , 0 , " Z-Up " , " Use Z-Up axis to calculate the curve twist at each point " } ,
{ CU_TWIST_MINIMUM , " MINIMUM " , 0 , " Minimum " , " Use the least twist over the entire curve " } ,
{ CU_TWIST_TANGENT , " TANGENT " , 0 , " Tangent " , " Use the tangent to calculate twist " } ,
{ 0 , NULL , 0 , NULL , NULL } } ;
2009-09-13 17:38:43 +00:00
static const EnumPropertyItem curve_axis_items [ ] = {
{ 0 , " 2D " , 0 , " 2D " , " Clamp the Z axis of of the curve " } ,
2010-02-11 01:11:52 +00:00
{ CU_3D , " 3D " , 0 , " 3D " , " Allow editing on the Z axis of this curve, also alows tilt and curve radius to be used " } ,
2009-09-13 17:38:43 +00:00
{ 0 , NULL , 0 , NULL , NULL } } ;
2009-01-10 22:57:33 +00:00
srna = RNA_def_struct ( brna , " Curve " , " ID " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Curve " , " Curve datablock storing curves, splines and NURBS " ) ;
2009-06-03 23:16:51 +00:00
RNA_def_struct_ui_icon ( srna , ICON_CURVE_DATA ) ;
2009-06-07 13:09:18 +00:00
RNA_def_struct_refine_func ( srna , " rna_Curve_refine " ) ;
2009-01-10 22:57:33 +00:00
2009-02-02 11:51:10 +00:00
rna_def_animdata_common ( srna ) ;
2009-01-10 22:57:33 +00:00
prop = RNA_def_property ( srna , " shape_keys " , PROP_POINTER , PROP_NONE ) ;
RNA_def_property_pointer_sdna ( prop , NULL , " key " ) ;
RNA_def_property_ui_text ( prop , " Shape Keys " , " " ) ;
2009-03-28 10:52:51 +00:00
2010-11-20 17:28:05 +00:00
2009-09-08 07:35:07 +00:00
prop = RNA_def_property ( srna , " splines " , PROP_COLLECTION , PROP_NONE ) ;
2010-11-20 17:28:05 +00:00
#if 0
2009-03-28 10:52:51 +00:00
RNA_def_property_collection_sdna ( prop , NULL , " nurb " , NULL ) ;
2010-11-20 17:28:05 +00:00
# else
/* this way we get editmode nurbs too, keyframe in editmode */
RNA_def_property_collection_funcs ( prop , " rna_Curve_splines_begin " , " rna_iterator_listbase_next " , " rna_iterator_listbase_end " , " rna_iterator_listbase_get " , 0 , 0 , 0 ) ;
# endif
2010-02-10 08:53:08 +00:00
RNA_def_property_struct_type ( prop , " Spline " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Splines " , " Collection of splines in this curve data object " ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
rna_def_curve_splines ( brna , prop ) ;
2009-09-08 07:35:07 +00:00
2010-08-17 17:03:52 +00:00
prop = RNA_def_property ( srna , " show_handles " , PROP_BOOLEAN , PROP_NONE ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_boolean_negative_sdna ( prop , NULL , " drawflag " , CU_HIDE_HANDLES ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Draw Handles " , " Display bezier handles in editmode " ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_update ( prop , NC_GEOM | ND_DATA , NULL ) ;
2010-08-17 17:03:52 +00:00
prop = RNA_def_property ( srna , " show_normal_face " , PROP_BOOLEAN , PROP_NONE ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_boolean_negative_sdna ( prop , NULL , " drawflag " , CU_HIDE_NORMALS ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Draw Normals " , " Display 3D curve normals in editmode " ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_update ( prop , NC_GEOM | ND_DATA , NULL ) ;
2009-03-28 10:52:51 +00:00
2009-01-10 22:57:33 +00:00
rna_def_path ( brna , srna ) ;
/* Number values */
prop = RNA_def_property ( srna , " bevel_resolution " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " bevresol " ) ;
RNA_def_property_range ( prop , 0 , 32 ) ;
2009-05-21 07:40:43 +00:00
RNA_def_property_ui_range ( prop , 0 , 32 , 1.0 , 0 ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Bevel Resolution " , " Bevel resolution when depth is non-zero and no specific bevel object has been defined " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-01-10 22:57:33 +00:00
2010-08-20 06:09:58 +00:00
prop = RNA_def_property ( srna , " offset " , PROP_FLOAT , PROP_NONE ) ;
2009-01-10 22:57:33 +00:00
RNA_def_property_float_sdna ( prop , NULL , " width " ) ;
2010-09-02 07:00:34 +00:00
RNA_def_property_ui_range ( prop , - 1.0 , 1.0 , 0.1 , 3 ) ;
RNA_def_property_float_funcs ( prop , " rna_Curve_offset_get " , " rna_Curve_offset_set " , NULL ) ;
RNA_def_property_ui_text ( prop , " Offset " , " Offset the curve to adjust the width of a text " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-01-10 22:57:33 +00:00
prop = RNA_def_property ( srna , " extrude " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " ext1 " ) ;
2010-08-22 16:44:48 +00:00
RNA_def_property_ui_range ( prop , 0 , 100.0 , 0.1 , 3 ) ;
2010-01-22 01:30:06 +00:00
RNA_def_property_range ( prop , 0.0 , FLT_MAX ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Extrude " , " Amount of curve extrusion when not using a bevel object " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-01-10 22:57:33 +00:00
prop = RNA_def_property ( srna , " bevel_depth " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " ext2 " ) ;
2010-08-22 16:44:48 +00:00
RNA_def_property_ui_range ( prop , 0 , 100.0 , 0.1 , 3 ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Bevel Depth " , " Bevel depth when not using a bevel object " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-01-10 22:57:33 +00:00
prop = RNA_def_property ( srna , " resolution_u " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " resolu " ) ;
2010-11-21 03:45:35 +00:00
RNA_def_property_range ( prop , 1 , SHRT_MAX ) ;
2010-02-23 19:59:07 +00:00
RNA_def_property_ui_range ( prop , 1 , 64 , 1 , 0 ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Resolution U " , " Surface resolution in U direction " ) ;
2009-12-04 01:38:36 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_resolution_u_update_data " ) ;
2009-01-10 22:57:33 +00:00
prop = RNA_def_property ( srna , " resolution_v " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " resolv " ) ;
2010-02-23 19:59:07 +00:00
RNA_def_property_ui_range ( prop , 1 , 64 , 1 , 0 ) ;
2010-11-21 03:45:35 +00:00
RNA_def_property_range ( prop , 1 , SHRT_MAX ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Resolution V " , " Surface resolution in V direction " ) ;
2009-12-04 01:38:36 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_resolution_v_update_data " ) ;
2009-01-10 22:57:33 +00:00
prop = RNA_def_property ( srna , " render_resolution_u " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " resolu_ren " ) ;
2010-11-21 03:45:35 +00:00
RNA_def_property_range ( prop , 0 , SHRT_MAX ) ;
2010-03-25 18:59:50 +00:00
RNA_def_property_ui_range ( prop , 0 , 64 , 1 , 0 ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Render Resolution U " , " Surface resolution in U direction used while rendering. Zero skips this property " ) ;
2009-01-10 22:57:33 +00:00
prop = RNA_def_property ( srna , " render_resolution_v " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " resolv_ren " ) ;
2010-03-25 18:59:50 +00:00
RNA_def_property_ui_range ( prop , 0 , 64 , 1 , 0 ) ;
2010-11-21 03:45:35 +00:00
RNA_def_property_range ( prop , 0 , SHRT_MAX ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Render Resolution V " , " Surface resolution in V direction used while rendering. Zero skips this property " ) ;
2009-01-10 22:57:33 +00:00
2009-06-20 11:44:56 +00:00
2010-02-03 06:30:16 +00:00
prop = RNA_def_property ( srna , " eval_time " , PROP_FLOAT , PROP_NONE ) ;
2009-06-20 11:44:56 +00:00
RNA_def_property_float_sdna ( prop , NULL , " ctime " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Evaluation Time " , " Parametric position along the length of the curve that Objects 'following' it should be at. Position is evaluated by dividing by the 'Path Length' value " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-06-20 11:44:56 +00:00
2009-01-10 22:57:33 +00:00
/* pointers */
prop = RNA_def_property ( srna , " bevel_object " , PROP_POINTER , PROP_NONE ) ;
2010-04-01 08:49:11 +00:00
RNA_def_property_struct_type ( prop , " Object " ) ;
2009-01-10 22:57:33 +00:00
RNA_def_property_pointer_sdna ( prop , NULL , " bevobj " ) ;
2009-05-28 23:23:47 +00:00
RNA_def_property_flag ( prop , PROP_EDITABLE ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Bevel Object " , " Curve object name that defines the bevel shape " ) ;
2010-04-01 08:49:11 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_deps " ) ;
2010-08-03 06:51:36 +00:00
RNA_def_property_pointer_funcs ( prop , " rna_Curve_bevelObject_get " , " rna_Curve_bevelObject_set " , NULL , " rna_Curve_otherObject_poll " ) ;
2010-04-01 08:49:11 +00:00
2009-01-10 22:57:33 +00:00
prop = RNA_def_property ( srna , " taper_object " , PROP_POINTER , PROP_NONE ) ;
2010-04-01 08:49:11 +00:00
RNA_def_property_struct_type ( prop , " Object " ) ;
2009-01-10 22:57:33 +00:00
RNA_def_property_pointer_sdna ( prop , NULL , " taperobj " ) ;
2009-05-28 23:23:47 +00:00
RNA_def_property_flag ( prop , PROP_EDITABLE ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Taper Object " , " Curve object name that defines the taper (width) " ) ;
2010-04-01 08:49:11 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_deps " ) ;
2010-08-03 06:51:36 +00:00
RNA_def_property_pointer_funcs ( prop , " rna_Curve_taperObject_get " , " rna_Curve_taperObject_set " , NULL , " rna_Curve_otherObject_poll " ) ;
2010-04-01 08:49:11 +00:00
2009-01-10 22:57:33 +00:00
/* Flags */
2009-09-13 17:38:43 +00:00
prop = RNA_def_property ( srna , " dimensions " , PROP_ENUM , PROP_NONE ) ; /* as an enum */
RNA_def_property_enum_bitflag_sdna ( prop , NULL , " flag " ) ;
RNA_def_property_enum_items ( prop , curve_axis_items ) ;
RNA_def_property_enum_funcs ( prop , NULL , " rna_Curve_dimension_set " , NULL ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Dimensions " , " Select 2D or 3D curve type " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-01-10 22:57:33 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_fill_front " , PROP_BOOLEAN , PROP_NONE ) ;
2009-01-10 22:57:33 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_FRONT ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Front " , " Draw filled front for extruded/beveled curves " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-01-10 22:57:33 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_fill_back " , PROP_BOOLEAN , PROP_NONE ) ;
2009-01-10 22:57:33 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_BACK ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Back " , " Draw filled back for extruded/beveled curves " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-09-11 15:35:30 +00:00
prop = RNA_def_property ( srna , " twist_mode " , PROP_ENUM , PROP_NONE ) ;
RNA_def_property_enum_sdna ( prop , NULL , " twist_mode " ) ;
RNA_def_property_enum_items ( prop , curve_twist_mode_items ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Twist Method " , " The type of tilt calculation for 3D Curves " ) ;
2009-09-11 15:35:30 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
// XXX - would be nice to have a better way to do this, only add for testing.
prop = RNA_def_property ( srna , " twist_smooth " , PROP_FLOAT , PROP_NONE ) ;
RNA_def_property_float_sdna ( prop , NULL , " twist_smooth " ) ;
RNA_def_property_ui_range ( prop , 0 , 100.0 , 0.1 , 0 ) ;
RNA_def_property_ui_text ( prop , " Twist Smooth " , " Smoothing iteration for tangents " ) ;
2009-09-07 15:02:43 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_fill_deform " , PROP_BOOLEAN , PROP_NONE ) ;
2010-03-16 21:09:53 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_DEFORM_FILL ) ;
2010-11-16 13:25:21 +00:00
RNA_def_property_ui_text ( prop , " Fill deformed " , " Fill curve after applying shape keys and all modifiers " ) ;
2010-03-16 21:09:53 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-04-12 05:04:49 +00:00
/* texture space */
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_auto_texspace " , PROP_BOOLEAN , PROP_NONE ) ;
2010-04-12 05:04:49 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " texflag " , CU_AUTOSPACE ) ;
RNA_def_property_ui_text ( prop , " Auto Texture Space " , " Adjusts active object's texture space automatically when transforming object " ) ;
2011-01-06 11:16:35 +00:00
RNA_def_property_update ( prop , NC_OBJECT | ND_DRAW , " rna_Curve_texspace_set " ) ;
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " texspace_location " , PROP_FLOAT , PROP_TRANSLATION ) ;
2010-04-12 05:04:49 +00:00
RNA_def_property_array ( prop , 3 ) ;
2010-05-04 05:15:53 +00:00
RNA_def_property_ui_text ( prop , " Texture Space Location " , " Texture space location " ) ;
2010-04-12 05:04:49 +00:00
RNA_def_property_editable_func ( prop , " rna_Curve_texspace_editable " ) ;
RNA_def_property_float_funcs ( prop , " rna_Curve_texspace_loc_get " , " rna_Curve_texspace_loc_set " , NULL ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
prop = RNA_def_property ( srna , " texspace_size " , PROP_FLOAT , PROP_XYZ ) ;
RNA_def_property_array ( prop , 3 ) ;
RNA_def_property_ui_text ( prop , " Texture Space Size " , " Texture space size " ) ;
RNA_def_property_editable_func ( prop , " rna_Curve_texspace_editable " ) ;
RNA_def_property_float_funcs ( prop , " rna_Curve_texspace_size_get " , " rna_Curve_texspace_size_set " , NULL ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
/* not supported yet
prop = RNA_def_property ( srna , " texspace_rot " , PROP_FLOAT , PROP_EULER ) ;
RNA_def_property_float ( prop , NULL , " rot " ) ;
RNA_def_property_ui_text ( prop , " Texture Space Rotation " , " Texture space rotation " ) ;
RNA_def_property_editable_func ( prop , texspace_editable ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ; */
2010-11-16 12:10:57 +00:00
prop = RNA_def_property ( srna , " use_uv_as_generated " , PROP_BOOLEAN , PROP_NONE ) ;
2010-06-14 07:43:45 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_UV_ORCO ) ;
2010-11-16 12:10:57 +00:00
RNA_def_property_ui_text ( prop , " Use UV for mapping " , " Uses the UV values as Generated textured coordinates " ) ;
2010-06-14 07:43:45 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-04-12 05:04:49 +00:00
/* materials */
prop = RNA_def_property ( srna , " materials " , PROP_COLLECTION , PROP_NONE ) ;
RNA_def_property_collection_sdna ( prop , NULL , " mat " , " totcol " ) ;
RNA_def_property_struct_type ( prop , " Material " ) ;
RNA_def_property_ui_text ( prop , " Materials " , " " ) ;
2010-09-03 07:25:37 +00:00
RNA_def_property_srna ( prop , " IDMaterials " ) ; /* see rna_ID.c */
2009-01-10 22:57:33 +00:00
}
2009-06-07 13:09:18 +00:00
static void rna_def_curve_nurb ( BlenderRNA * brna )
2009-03-28 10:52:51 +00:00
{
static EnumPropertyItem spline_interpolation_items [ ] = {
2010-08-12 06:28:46 +00:00
{ KEY_LINEAR , " LINEAR " , 0 , " Linear " , " " } ,
{ KEY_CARDINAL , " CARDINAL " , 0 , " Cardinal " , " " } ,
{ KEY_BSPLINE , " BSPLINE " , 0 , " BSpline " , " " } ,
{ KEY_CU_EASE , " EASE " , 0 , " Ease " , " " } , /* todo, define somewhere, not one of BEZT_IPO_* */
2009-06-16 00:52:21 +00:00
{ 0 , NULL , 0 , NULL , NULL } } ;
2009-03-28 10:52:51 +00:00
StructRNA * srna ;
PropertyRNA * prop ;
2010-02-10 08:53:08 +00:00
srna = RNA_def_struct ( brna , " Spline " , NULL ) ;
2010-03-22 09:30:00 +00:00
RNA_def_struct_sdna ( srna , " Nurb " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_struct_ui_text ( srna , " Spline " , " Element of a curve, either Nurbs, Bezier or Polyline or a character with text objects " ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " points " , PROP_COLLECTION , PROP_NONE ) ;
RNA_def_property_collection_sdna ( prop , NULL , " bp " , NULL ) ;
2009-11-29 16:42:51 +00:00
RNA_def_property_struct_type ( prop , " SplinePoint " ) ;
2009-11-13 16:08:03 +00:00
RNA_def_property_collection_funcs ( prop , " rna_BPoint_array_begin " , " rna_iterator_array_next " , " rna_iterator_array_end " , " rna_iterator_array_get " , " rna_Nurb_length " , 0 , 0 ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Points " , " Collection of points that make up this poly or nurbs spline " ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
rna_def_curve_spline_points ( brna , prop ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " bezier_points " , PROP_COLLECTION , PROP_NONE ) ;
2009-11-29 16:42:51 +00:00
RNA_def_property_struct_type ( prop , " BezierSplinePoint " ) ;
2009-03-28 10:52:51 +00:00
RNA_def_property_collection_sdna ( prop , NULL , " bezt " , " pntsu " ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Bezier Points " , " Collection of points for bezier curves only " ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
rna_def_curve_spline_bezpoints ( brna , prop ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " tilt_interpolation " , PROP_ENUM , PROP_NONE ) ;
RNA_def_property_enum_sdna ( prop , NULL , " tilt_interp " ) ;
RNA_def_property_enum_items ( prop , spline_interpolation_items ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Tilt Interpolation " , " The type of tilt interpolation for 3D, Bezier curves " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " radius_interpolation " , PROP_ENUM , PROP_NONE ) ;
RNA_def_property_enum_sdna ( prop , NULL , " radius_interp " ) ;
RNA_def_property_enum_items ( prop , spline_interpolation_items ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Radius Interpolation " , " The type of radius interpolation for Bezier curves " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
2009-09-07 15:02:43 +00:00
// XXX - switching type probably needs comprehensive recalc of data like in 2.4x
prop = RNA_def_property ( srna , " type " , PROP_ENUM , PROP_NONE ) ;
RNA_def_property_enum_items ( prop , curve_type_items ) ;
2009-09-08 00:23:33 +00:00
RNA_def_property_enum_funcs ( prop , NULL , " rna_Nurb_type_set " , NULL ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Type " , " The interpolation type for this curve element " ) ;
2009-09-07 15:02:43 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
2010-05-20 08:51:03 +00:00
prop = RNA_def_property ( srna , " point_count_u " , PROP_INT , PROP_UNSIGNED ) ;
2009-03-28 10:52:51 +00:00
RNA_def_property_clear_flag ( prop , PROP_EDITABLE ) ; /* editing this needs knot recalc*/
RNA_def_property_int_sdna ( prop , NULL , " pntsu " ) ;
RNA_def_property_ui_text ( prop , " Points U " , " Total number points for the curve or surface in the U direction " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
2010-05-20 08:51:03 +00:00
prop = RNA_def_property ( srna , " point_count_v " , PROP_INT , PROP_UNSIGNED ) ;
2009-03-28 10:52:51 +00:00
RNA_def_property_clear_flag ( prop , PROP_EDITABLE ) ; /* editing this needs knot recalc*/
RNA_def_property_int_sdna ( prop , NULL , " pntsv " ) ;
RNA_def_property_ui_text ( prop , " Points V " , " Total number points for the surface on the V direction " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " order_u " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " orderu " ) ;
RNA_def_property_range ( prop , 2 , 6 ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_ui_text ( prop , " Order U " , " Nurbs order in the U direction (For splines and surfaces), Higher values let points influence a greater area " ) ;
RNA_def_property_update ( prop , 0 , " rna_Nurb_update_knot_u " ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " order_v " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " orderv " ) ;
RNA_def_property_range ( prop , 2 , 6 ) ;
RNA_def_property_ui_text ( prop , " Order V " , " Nurbs order in the V direction (For surfaces only), Higher values let points influence a greater area " ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_update ( prop , 0 , " rna_Nurb_update_knot_v " ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " resolution_u " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " resolu " ) ;
2010-11-21 09:06:27 +00:00
RNA_def_property_range ( prop , 1 , SHRT_MAX ) ;
2010-02-23 19:59:07 +00:00
RNA_def_property_ui_range ( prop , 1 , 64 , 1 , 0 ) ;
2009-03-28 10:52:51 +00:00
RNA_def_property_ui_text ( prop , " Resolution U " , " Curve or Surface subdivisions per segment " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " resolution_v " , PROP_INT , PROP_NONE ) ;
RNA_def_property_int_sdna ( prop , NULL , " resolv " ) ;
2010-11-21 09:06:27 +00:00
RNA_def_property_range ( prop , 1 , SHRT_MAX ) ;
2010-02-23 19:59:07 +00:00
RNA_def_property_ui_range ( prop , 1 , 64 , 1 , 0 ) ;
2009-03-28 10:52:51 +00:00
RNA_def_property_ui_text ( prop , " Resolution V " , " Surface subdivisions per segment " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_cyclic_u " , PROP_BOOLEAN , PROP_NONE ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flagu " , CU_NURB_CYCLIC ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Cyclic U " , " Make this curve or surface a closed loop in the U direction " ) ;
2010-10-04 10:06:18 +00:00
RNA_def_property_update ( prop , 0 , " rna_Nurb_update_cyclic_u " ) ;
2009-03-28 10:52:51 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_cyclic_v " , PROP_BOOLEAN , PROP_NONE ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flagv " , CU_NURB_CYCLIC ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Cyclic V " , " Make this surface a closed loop in the V direction " ) ;
2010-10-05 07:22:44 +00:00
RNA_def_property_update ( prop , 0 , " rna_Nurb_update_cyclic_v " ) ;
2009-03-28 10:52:51 +00:00
/* Note, endpoint and bezier flags should never be on at the same time! */
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_endpoint_u " , PROP_BOOLEAN , PROP_NONE ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flagu " , CU_NURB_ENDPOINT ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Endpoint U " , " Make this nurbs curve or surface meet the endpoints in the U direction (Cyclic U must be disabled) " ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_update ( prop , 0 , " rna_Nurb_update_knot_u " ) ;
2009-03-28 10:52:51 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_endpoint_v " , PROP_BOOLEAN , PROP_NONE ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flagv " , CU_NURB_ENDPOINT ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Endpoint V " , " Make this nurbs surface meet the endpoints in the V direction (Cyclic V must be disabled) " ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_update ( prop , 0 , " rna_Nurb_update_knot_v " ) ;
2009-03-28 10:52:51 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_bezier_u " , PROP_BOOLEAN , PROP_NONE ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flagu " , CU_NURB_BEZIER ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Bezier U " , " Make this nurbs curve or surface act like a bezier spline in the U direction (Order U must be 3 or 4, Cyclic U must be disabled) " ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_update ( prop , 0 , " rna_Nurb_update_knot_u " ) ;
2009-03-28 10:52:51 +00:00
2010-08-19 17:31:10 +00:00
prop = RNA_def_property ( srna , " use_bezier_v " , PROP_BOOLEAN , PROP_NONE ) ;
merge own commits into render branch into trunk since 27560
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-20 16:41:01 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flagv " , CU_NURB_BEZIER ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Bezier V " , " Make this nurbs surface act like a bezier spline in the V direction (Order V must be 3 or 4, Cyclic V must be disabled) " ) ;
2009-09-08 07:35:07 +00:00
RNA_def_property_update ( prop , 0 , " rna_Nurb_update_knot_v " ) ;
2009-03-28 10:52:51 +00:00
2010-08-18 07:14:10 +00:00
prop = RNA_def_property ( srna , " use_smooth " , PROP_BOOLEAN , PROP_NONE ) ;
2009-03-28 10:52:51 +00:00
RNA_def_property_boolean_sdna ( prop , NULL , " flag " , CU_SMOOTH ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Smooth " , " Smooth the normals of the surface or beveled curve " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " hide " , PROP_BOOLEAN , PROP_NONE ) ;
RNA_def_property_boolean_sdna ( prop , NULL , " hide " , 1 ) ;
2010-02-10 21:15:44 +00:00
RNA_def_property_ui_text ( prop , " Hide " , " Hide this curve in editmode " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " material_index " , PROP_INT , PROP_UNSIGNED ) ;
RNA_def_property_int_sdna ( prop , NULL , " mat_nr " ) ;
RNA_def_property_ui_text ( prop , " Material Index " , " " ) ;
RNA_def_property_int_funcs ( prop , NULL , NULL , " rna_Curve_material_index_range " ) ;
2009-08-10 21:10:09 +00:00
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2009-03-28 10:52:51 +00:00
prop = RNA_def_property ( srna , " character_index " , PROP_INT , PROP_UNSIGNED ) ;
RNA_def_property_int_sdna ( prop , NULL , " charidx " ) ;
RNA_def_property_clear_flag ( prop , PROP_EDITABLE ) ; /* editing this needs knot recalc*/
2009-08-10 21:10:09 +00:00
RNA_def_property_ui_text ( prop , " Character Index " , " Location of this character in the text data (only for text curves) " ) ;
RNA_def_property_update ( prop , 0 , " rna_Curve_update_data " ) ;
2010-11-17 03:15:08 +00:00
RNA_def_struct_path_func ( srna , " rna_Curve_spline_path " ) ;
2009-03-28 10:52:51 +00:00
}
2008-12-01 19:02:27 +00:00
void RNA_def_curve ( BlenderRNA * brna )
{
rna_def_curve ( brna ) ;
2009-06-07 13:09:18 +00:00
rna_def_surface ( brna ) ;
rna_def_text ( brna ) ;
2008-12-01 19:02:27 +00:00
rna_def_textbox ( brna ) ;
rna_def_charinfo ( brna ) ;
2009-02-02 11:51:10 +00:00
rna_def_bpoint ( brna ) ;
rna_def_beztriple ( brna ) ;
2009-03-28 10:52:51 +00:00
rna_def_curve_nurb ( brna ) ;
2008-12-01 19:02:27 +00:00
}
# endif
2009-01-10 22:57:33 +00:00