forked from bartvdbraak/blender
Python API
---------- Access to empty shapes by object.emptyShape attribute, contributed by Domino Marama (thanks!)
This commit is contained in:
parent
e912ca9331
commit
7e0c880c2e
@ -204,6 +204,7 @@ enum obj_consts {
|
|||||||
EXPP_OBJ_ATTR_SB_INSPRING,
|
EXPP_OBJ_ATTR_SB_INSPRING,
|
||||||
EXPP_OBJ_ATTR_SB_INFRICT,
|
EXPP_OBJ_ATTR_SB_INFRICT,
|
||||||
|
|
||||||
|
EXPP_OBJ_ATTR_EMPTY_DRAWTYPE
|
||||||
};
|
};
|
||||||
|
|
||||||
#define EXPP_OBJECT_DRAWSIZEMIN 0.01f
|
#define EXPP_OBJECT_DRAWSIZEMIN 0.01f
|
||||||
@ -2431,6 +2432,12 @@ static int Object_setDrawType( BPy_Object * self, PyObject * value )
|
|||||||
OB_BOUNDBOX, OB_TEXTURE, 'b' );
|
OB_BOUNDBOX, OB_TEXTURE, 'b' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int Object_setEmptyShape( BPy_Object * self, PyObject * value )
|
||||||
|
{
|
||||||
|
return EXPP_setIValueRange( value, &self->object->empty_drawtype,
|
||||||
|
OB_ARROWS, OB_EMPTY_CONE, 'b' );
|
||||||
|
}
|
||||||
|
|
||||||
static int Object_setEuler( BPy_Object * self, PyObject * args )
|
static int Object_setEuler( BPy_Object * self, PyObject * args )
|
||||||
{
|
{
|
||||||
float rot1, rot2, rot3;
|
float rot1, rot2, rot3;
|
||||||
@ -3758,6 +3765,9 @@ static PyObject *getIntAttr( BPy_Object *self, void *type )
|
|||||||
case EXPP_OBJ_ATTR_DRAWTYPE:
|
case EXPP_OBJ_ATTR_DRAWTYPE:
|
||||||
param = object->dt;
|
param = object->dt;
|
||||||
break;
|
break;
|
||||||
|
case EXPP_OBJ_ATTR_EMPTY_DRAWTYPE:
|
||||||
|
param = object->empty_drawtype;
|
||||||
|
break;
|
||||||
case EXPP_OBJ_ATTR_PARENT_TYPE:
|
case EXPP_OBJ_ATTR_PARENT_TYPE:
|
||||||
param = object->partype;
|
param = object->partype;
|
||||||
break;
|
break;
|
||||||
@ -4938,6 +4948,10 @@ static PyGetSetDef BPy_Object_getseters[] = {
|
|||||||
(getter)getIntAttr, (setter)Object_setDrawType,
|
(getter)getIntAttr, (setter)Object_setDrawType,
|
||||||
"The object's drawing type",
|
"The object's drawing type",
|
||||||
(void *)EXPP_OBJ_ATTR_DRAWTYPE},
|
(void *)EXPP_OBJ_ATTR_DRAWTYPE},
|
||||||
|
{"emptyShape",
|
||||||
|
(getter)getIntAttr, (setter)Object_setEmptyShape,
|
||||||
|
"The empty's drawing shape",
|
||||||
|
(void *)EXPP_OBJ_ATTR_EMPTY_DRAWTYPE},
|
||||||
{"parentType",
|
{"parentType",
|
||||||
(getter)getIntAttr, (setter)NULL,
|
(getter)getIntAttr, (setter)NULL,
|
||||||
"The object's parent type",
|
"The object's parent type",
|
||||||
@ -5538,6 +5552,24 @@ static PyObject *M_Object_IpoKeyTypesDict( void )
|
|||||||
return M;
|
return M;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *M_Object_EmptyShapesDict( void )
|
||||||
|
{
|
||||||
|
PyObject *M = PyConstant_New( );
|
||||||
|
|
||||||
|
if( M ) {
|
||||||
|
BPy_constant *d = ( BPy_constant * ) M;
|
||||||
|
PyConstant_Insert( d, "ARROWS", PyInt_FromLong( OB_ARROWS ) );
|
||||||
|
PyConstant_Insert( d, "AXES", PyInt_FromLong( OB_PLAINAXES ) );
|
||||||
|
PyConstant_Insert( d, "CIRCLE", PyInt_FromLong( OB_CIRCLE ) );
|
||||||
|
PyConstant_Insert( d, "ARROW", PyInt_FromLong( OB_SINGLE_ARROW ) );
|
||||||
|
PyConstant_Insert( d, "CUBE", PyInt_FromLong( OB_CUBE ) );
|
||||||
|
PyConstant_Insert( d, "SPHERE", PyInt_FromLong( OB_EMPTY_SPHERE ) );
|
||||||
|
PyConstant_Insert( d, "CONE", PyInt_FromLong( OB_EMPTY_CONE ) );
|
||||||
|
}
|
||||||
|
return M;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* Function: initObject */
|
/* Function: initObject */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
@ -5552,6 +5584,7 @@ PyObject *Object_Init( void )
|
|||||||
PyObject *RBFlagsDict = M_Object_RBFlagsDict( );
|
PyObject *RBFlagsDict = M_Object_RBFlagsDict( );
|
||||||
PyObject *RBShapesDict = M_Object_RBShapeBoundDict( );
|
PyObject *RBShapesDict = M_Object_RBShapeBoundDict( );
|
||||||
PyObject *IpoKeyTypesDict = M_Object_IpoKeyTypesDict( );
|
PyObject *IpoKeyTypesDict = M_Object_IpoKeyTypesDict( );
|
||||||
|
PyObject *EmptyShapesDict = M_Object_EmptyShapesDict( );
|
||||||
|
|
||||||
PyType_Ready( &Object_Type ) ;
|
PyType_Ready( &Object_Type ) ;
|
||||||
|
|
||||||
@ -5596,7 +5629,9 @@ PyObject *Object_Init( void )
|
|||||||
if( RBShapesDict )
|
if( RBShapesDict )
|
||||||
PyModule_AddObject( module, "RBShapes", RBShapesDict );
|
PyModule_AddObject( module, "RBShapes", RBShapesDict );
|
||||||
if( IpoKeyTypesDict )
|
if( IpoKeyTypesDict )
|
||||||
PyModule_AddObject( module, "IpoKeyTypes", IpoKeyTypesDict );
|
PyModule_AddObject( module, "IpoKeyTypes", IpoKeyTypesDict );
|
||||||
|
if( EmptyShapesDict )
|
||||||
|
PyModule_AddObject( module, "EmptyShapes", EmptyShapesDict );
|
||||||
|
|
||||||
/*Add SUBMODULES to the module*/
|
/*Add SUBMODULES to the module*/
|
||||||
dict = PyModule_GetDict( module ); /*borrowed*/
|
dict = PyModule_GetDict( module ); /*borrowed*/
|
||||||
|
@ -117,6 +117,10 @@ Example::
|
|||||||
attribute. Only one type can be selected at a time. Values are
|
attribute. Only one type can be selected at a time. Values are
|
||||||
BOX, SPHERE, CYLINDER, CONE, and POLYHEDERON
|
BOX, SPHERE, CYLINDER, CONE, and POLYHEDERON
|
||||||
|
|
||||||
|
@type EmptyShapes: readonly dictionary
|
||||||
|
@var EmptyShapes: Constant dict used for with L{Object.emptyShape} attribute.
|
||||||
|
Only one type can be selected at a time. Values are
|
||||||
|
ARROW, ARROWS, AXES, CIRCLE, CONE, CUBE AND SPHERE
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def New (type, name='type'):
|
def New (type, name='type'):
|
||||||
@ -347,7 +351,7 @@ class Object:
|
|||||||
ob.layers = [] # object won't be visible
|
ob.layers = [] # object won't be visible
|
||||||
ob.layers = [1, 4] # object visible only in layers 1 and 4
|
ob.layers = [1, 4] # object visible only in layers 1 and 4
|
||||||
ls = o.layers
|
ls = o.layers
|
||||||
ls.append([10])
|
ls.append(10)
|
||||||
o.layers = ls
|
o.layers = ls
|
||||||
print ob.layers # will print: [1, 4, 10]
|
print ob.layers # will print: [1, 4, 10]
|
||||||
B{Note}: changes will only be visible after the screen (at least
|
B{Note}: changes will only be visible after the screen (at least
|
||||||
@ -525,6 +529,8 @@ class Object:
|
|||||||
@ivar drawType: The object's drawing type.
|
@ivar drawType: The object's drawing type.
|
||||||
See L{DrawTypes} constant dict for values.
|
See L{DrawTypes} constant dict for values.
|
||||||
@type drawType: int
|
@type drawType: int
|
||||||
|
@ivar emptyShape: The empty drawing shape.
|
||||||
|
See L{EmptyShapes} constant dict for values.
|
||||||
@ivar parentType: The object's parent type. Read-only.
|
@ivar parentType: The object's parent type. Read-only.
|
||||||
See L{ParentTypes} constant dict for values.
|
See L{ParentTypes} constant dict for values.
|
||||||
@type parentType: int
|
@type parentType: int
|
||||||
|
Loading…
Reference in New Issue
Block a user