Python API - read access to Track and Up axis attributes for Object.

Part of Patch 8557.  Contributed by Cedric Paille.  Thanks!

Still waiting for API doc for new attributes.  Finger is poised
over Revert button...
This commit is contained in:
Stephen Swaney 2008-04-05 21:33:06 +00:00
parent 83906a614b
commit 6e5984ce39

@ -459,6 +459,8 @@ static PyObject *Object_insertShapeKey(BPy_Object * self);
static PyObject *Object_copyNLA( BPy_Object * self, PyObject * args ); static PyObject *Object_copyNLA( BPy_Object * self, PyObject * args );
static PyObject *Object_convertActionToStrip( BPy_Object * self ); static PyObject *Object_convertActionToStrip( BPy_Object * self );
static PyObject *Object_copy(BPy_Object * self); /* __copy__ */ static PyObject *Object_copy(BPy_Object * self); /* __copy__ */
static PyObject *Object_trackAxis(BPy_Object * self);
static PyObject *Object_upAxis(BPy_Object * self);
/*****************************************************************************/ /*****************************************************************************/
/* Python BPy_Object methods table: */ /* Python BPy_Object methods table: */
@ -1471,7 +1473,6 @@ static PyObject *Object_getType( BPy_Object * self )
static PyObject *Object_getBoundBox( BPy_Object * self ) static PyObject *Object_getBoundBox( BPy_Object * self )
{ {
int i;
float *vec = NULL; float *vec = NULL;
PyObject *vector, *bbox; PyObject *vector, *bbox;
@ -5060,7 +5061,14 @@ static PyGetSetDef BPy_Object_getseters[] = {
(getter)Object_getRBHalfExtents, (setter)NULL, (getter)Object_getRBHalfExtents, (setter)NULL,
"Rigid body physics bounds object type", "Rigid body physics bounds object type",
NULL}, NULL},
{"trackAxis",
(getter)Object_trackAxis, (setter)NULL,
"track axis 'x' | 'y' | 'z' | '-x' | '-y' | '-z' (string. readonly)",
NULL},
{"upAxis",
(getter)Object_upAxis, (setter)NULL,
"up axis 'x' | 'y' | 'z' (string. readonly)",
NULL},
{"restrictDisplay", {"restrictDisplay",
(getter)Object_getRestricted, (setter)Object_setRestricted, (getter)Object_getRestricted, (setter)Object_setRestricted,
"Toggle object restrictions", "Toggle object restrictions",
@ -5172,6 +5180,7 @@ PyTypeObject Object_Type = {
NULL NULL
}; };
static PyObject *M_Object_DrawModesDict( void ) static PyObject *M_Object_DrawModesDict( void )
{ {
PyObject *M = PyConstant_New( ); PyObject *M = PyConstant_New( );
@ -5948,3 +5957,65 @@ static PyObject *Object_SetSBStiffQuads( BPy_Object * self, PyObject * args )
return EXPP_setterWrapper( (void *)self, args, return EXPP_setterWrapper( (void *)self, args,
(setter)Object_setSBStiffQuads ); (setter)Object_setSBStiffQuads );
} }
static PyObject *Object_trackAxis( BPy_Object * self )
{
Object* ob;
char ctr[3];
memset( ctr, 0, sizeof(ctr));
ob = self->object;
switch(ob->trackflag){
case(0):
ctr[0] = 'X';
break;
case(1):
ctr[0] = 'Y';
break;
case(2):
ctr[0] = 'Z';
break;
case(3):
ctr[0] = '-';
ctr[1] = 'X';
break;
case(4):
ctr[0] = '-';
ctr[1] = 'Y';
break;
case(5):
ctr[0] = '-';
ctr[1] = 'Y';
break;
default:
break;
}
return PyString_FromString(ctr);
}
static PyObject *Object_upAxis( BPy_Object * self )
{
Object* ob;
char cup[2];
memset( cup, 0, sizeof(cup));
ob = self->object;
switch(ob->upflag){
case(0):
cup[0] = 'X';
break;
case(1):
cup[0] = 'Y';
break;
case(2):
cup[0] = 'Z';
break;
default:
break;
}
return PyString_FromString(cup);
}