added fakeUser and users to more pytypes
This commit is contained in:
@@ -607,6 +607,29 @@ AttributeError:
|
|||||||
return EXPP_ReturnIntError( PyExc_TypeError,
|
return EXPP_ReturnIntError( PyExc_TypeError,
|
||||||
"expected a list of integers" );
|
"expected a list of integers" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------------------------Armature.users (getter)
|
||||||
|
static PyObject *Armature_getUsers( BPy_Armature * self )
|
||||||
|
{
|
||||||
|
return PyInt_FromLong( self->armature->id.us );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------Armature.fakeUser (getter)
|
||||||
|
static PyObject *Armature_getFakeUser( BPy_Armature * self )
|
||||||
|
{
|
||||||
|
if (self->armature->id.flag & LIB_FAKEUSER)
|
||||||
|
Py_RETURN_TRUE;
|
||||||
|
else
|
||||||
|
Py_RETURN_FALSE;
|
||||||
|
}
|
||||||
|
//------------------------Armature.fakeUser (setter)
|
||||||
|
static int Armature_setFakeUser( BPy_Armature * self, PyObject * value )
|
||||||
|
{
|
||||||
|
return SetIdFakeUser(&self->armature->id, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//------------------------Armature.mirrorEdit (getter)
|
//------------------------Armature.mirrorEdit (getter)
|
||||||
static PyObject *Armature_getMirrorEdit(BPy_Armature *self, void *closure)
|
static PyObject *Armature_getMirrorEdit(BPy_Armature *self, void *closure)
|
||||||
{
|
{
|
||||||
@@ -1001,6 +1024,10 @@ static PyGetSetDef BPy_Armature_getset[] = {
|
|||||||
"Adds temporal IK chains while grabbing bones", NULL},
|
"Adds temporal IK chains while grabbing bones", NULL},
|
||||||
{"layers", (getter)Armature_getLayers, (setter)Armature_setLayers,
|
{"layers", (getter)Armature_getLayers, (setter)Armature_setLayers,
|
||||||
"List of layers for the armature", NULL},
|
"List of layers for the armature", NULL},
|
||||||
|
{"users", (getter)Armature_getUsers, (setter)NULL,
|
||||||
|
"The number of object users", NULL},
|
||||||
|
{"fakeUser", (getter)Armature_getFakeUser, (setter)Armature_setFakeUser,
|
||||||
|
"The fake user status of this object", NULL},
|
||||||
{NULL, NULL, NULL, NULL, NULL}
|
{NULL, NULL, NULL, NULL, NULL}
|
||||||
};
|
};
|
||||||
//------------------------tp_new
|
//------------------------tp_new
|
||||||
|
|||||||
@@ -250,13 +250,24 @@ static PyObject *Group_getName( BPy_Group * self, PyObject * args )
|
|||||||
|
|
||||||
static PyObject *Group_getUsers( BPy_Group * self )
|
static PyObject *Group_getUsers( BPy_Group * self )
|
||||||
{
|
{
|
||||||
|
GROUP_DEL_CHECK_PY(self);
|
||||||
return PyInt_FromLong( self->group->id.us );
|
return PyInt_FromLong( self->group->id.us );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *Group_getFakeUser( BPy_Group * self )
|
||||||
|
{
|
||||||
|
GROUP_DEL_CHECK_PY(self);
|
||||||
|
if (self->group->id.flag & LIB_FAKEUSER)
|
||||||
|
Py_RETURN_TRUE;
|
||||||
|
else
|
||||||
|
Py_RETURN_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int Group_setFakeUser( BPy_Group * self, PyObject * value )
|
||||||
|
{
|
||||||
|
GROUP_DEL_CHECK_PY(self);
|
||||||
|
return SetIdFakeUser(&self->group->id, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -302,6 +313,10 @@ static PyGetSetDef BPy_Group_getseters[] = {
|
|||||||
(getter)Group_getUsers, (setter)NULL,
|
(getter)Group_getUsers, (setter)NULL,
|
||||||
"Number of group users",
|
"Number of group users",
|
||||||
NULL},
|
NULL},
|
||||||
|
{"fakeUser",
|
||||||
|
(getter)Group_getFakeUser, (setter)Group_setFakeUser,
|
||||||
|
"Number of group users",
|
||||||
|
NULL},
|
||||||
{"layers",
|
{"layers",
|
||||||
(getter)Group_getLayers, (setter)Group_setLayers,
|
(getter)Group_getLayers, (setter)Group_setLayers,
|
||||||
"Number of group users",
|
"Number of group users",
|
||||||
|
|||||||
@@ -2869,26 +2869,7 @@ static PyObject *Material_getFakeUser( BPy_Material * self )
|
|||||||
|
|
||||||
static int Material_setFakeUser( BPy_Material * self, PyObject * value )
|
static int Material_setFakeUser( BPy_Material * self, PyObject * value )
|
||||||
{
|
{
|
||||||
int param;
|
return SetIdFakeUser(&self->material->id, value);
|
||||||
ID *id = &self->material->id;
|
|
||||||
param = PyObject_IsTrue( value );
|
|
||||||
|
|
||||||
if( param == -1 )
|
|
||||||
return EXPP_ReturnIntError( PyExc_TypeError,
|
|
||||||
"expected int argument in range [0,1]" );
|
|
||||||
|
|
||||||
if (param) {
|
|
||||||
if (!(id->flag & LIB_FAKEUSER)) {
|
|
||||||
id->flag |= LIB_FAKEUSER;
|
|
||||||
id_us_plus(id);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (id->flag & LIB_FAKEUSER) {
|
|
||||||
id->flag &= ~LIB_FAKEUSER;
|
|
||||||
id->us--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6954,26 +6954,7 @@ static PyObject *Mesh_getFakeUser( BPy_Mesh * self )
|
|||||||
|
|
||||||
static int Mesh_setFakeUser( BPy_Mesh * self, PyObject * value )
|
static int Mesh_setFakeUser( BPy_Mesh * self, PyObject * value )
|
||||||
{
|
{
|
||||||
int param;
|
return SetIdFakeUser(&self->mesh->id, value);
|
||||||
ID *id = &self->mesh->id;
|
|
||||||
param = PyObject_IsTrue( value );
|
|
||||||
|
|
||||||
if( param == -1 )
|
|
||||||
return EXPP_ReturnIntError( PyExc_TypeError,
|
|
||||||
"expected int argument in range [0,1]" );
|
|
||||||
|
|
||||||
if (param) {
|
|
||||||
if (!(id->flag & LIB_FAKEUSER)) {
|
|
||||||
id->flag |= LIB_FAKEUSER;
|
|
||||||
id_us_plus(id);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (id->flag & LIB_FAKEUSER) {
|
|
||||||
id->flag &= ~LIB_FAKEUSER;
|
|
||||||
id->us--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *Mesh_getFlag( BPy_Mesh * self, void *type )
|
static PyObject *Mesh_getFlag( BPy_Mesh * self, void *type )
|
||||||
|
|||||||
@@ -118,6 +118,8 @@ static PyObject *Metaball_getThresh( BPy_Metaball * self );
|
|||||||
static int Metaball_setThresh( BPy_Metaball * self, PyObject * args );
|
static int Metaball_setThresh( BPy_Metaball * self, PyObject * args );
|
||||||
static PyObject *Metaball_copy( BPy_Metaball * self );
|
static PyObject *Metaball_copy( BPy_Metaball * self );
|
||||||
static PyObject *Metaball_getUsers( BPy_Metaball * self );
|
static PyObject *Metaball_getUsers( BPy_Metaball * self );
|
||||||
|
static PyObject *Metaball_getFakeUser( BPy_Metaball * self );
|
||||||
|
static int Metaball_setFakeUser( BPy_Metaball * self, PyObject * value );
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* Python BPy_Metaball methods table: */
|
/* Python BPy_Metaball methods table: */
|
||||||
@@ -178,6 +180,10 @@ static PyGetSetDef BPy_Metaball_getseters[] = {
|
|||||||
(getter)Metaball_getUsers, (setter)NULL,
|
(getter)Metaball_getUsers, (setter)NULL,
|
||||||
"Number of metaball users",
|
"Number of metaball users",
|
||||||
NULL},
|
NULL},
|
||||||
|
{"fakeUser",
|
||||||
|
(getter)Metaball_getFakeUser, (setter)Metaball_setFakeUser,
|
||||||
|
"The fake user status of this object",
|
||||||
|
NULL},
|
||||||
{"materials",
|
{"materials",
|
||||||
(getter)Metaball_getMaterials, (setter)Metaball_setMaterials,
|
(getter)Metaball_getMaterials, (setter)Metaball_setMaterials,
|
||||||
"Number of metaball users",
|
"Number of metaball users",
|
||||||
@@ -698,6 +704,19 @@ static PyObject *Metaball_getUsers( BPy_Metaball * self )
|
|||||||
return PyInt_FromLong( self->metaball->id.us );
|
return PyInt_FromLong( self->metaball->id.us );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *Metaball_getFakeUser( BPy_Metaball * self )
|
||||||
|
{
|
||||||
|
if (self->metaball->id.flag & LIB_FAKEUSER)
|
||||||
|
Py_RETURN_TRUE;
|
||||||
|
else
|
||||||
|
Py_RETURN_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int Metaball_setFakeUser( BPy_Metaball * self, PyObject * value )
|
||||||
|
{
|
||||||
|
return SetIdFakeUser(&self->metaball->id, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static PyObject *Metaball_copy( BPy_Metaball * self )
|
static PyObject *Metaball_copy( BPy_Metaball * self )
|
||||||
|
|||||||
@@ -4456,26 +4456,7 @@ static PyObject *Object_getFakeUser( BPy_Object * self )
|
|||||||
|
|
||||||
static int Object_setFakeUser( BPy_Object * self, PyObject * value )
|
static int Object_setFakeUser( BPy_Object * self, PyObject * value )
|
||||||
{
|
{
|
||||||
int param;
|
return SetIdFakeUser(&self->object->id, value);
|
||||||
ID *id = &self->object->id;
|
|
||||||
param = PyObject_IsTrue( value );
|
|
||||||
|
|
||||||
if( param == -1 )
|
|
||||||
return EXPP_ReturnIntError( PyExc_TypeError,
|
|
||||||
"expected int argument in range [0,1]" );
|
|
||||||
|
|
||||||
if (param) {
|
|
||||||
if (!(id->flag & LIB_FAKEUSER)) {
|
|
||||||
id->flag |= LIB_FAKEUSER;
|
|
||||||
id_us_plus(id);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (id->flag & LIB_FAKEUSER) {
|
|
||||||
id->flag &= ~LIB_FAKEUSER;
|
|
||||||
id->us--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Localspace matrix */
|
/* Localspace matrix */
|
||||||
|
|||||||
@@ -161,6 +161,11 @@ class Armature:
|
|||||||
@type mirrorEdit: Bool
|
@type mirrorEdit: Bool
|
||||||
@ivar autoIK: Adds temporary IK chains while grabbing bones
|
@ivar autoIK: Adds temporary IK chains while grabbing bones
|
||||||
@type autoIK: Bool
|
@type autoIK: Bool
|
||||||
|
@ivar users: The number of users of the armature. Read-only.
|
||||||
|
@type users: int
|
||||||
|
@ivar fakeUser: The fake user status.
|
||||||
|
enabling this will keep it in the blend even if there are no users.
|
||||||
|
@type fakeUser: bool
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(name = 'myArmature'):
|
def __init__(name = 'myArmature'):
|
||||||
|
|||||||
@@ -88,11 +88,18 @@ class Group:
|
|||||||
================
|
================
|
||||||
This object gives access to Groups in Blender.
|
This object gives access to Groups in Blender.
|
||||||
@ivar name: The name of this Group object.
|
@ivar name: The name of this Group object.
|
||||||
|
@type name: string
|
||||||
@ivar users: Number of users this group has (read only)
|
@ivar users: Number of users this group has (read only)
|
||||||
@ivar layers: Layer mask for this group.
|
@type users: int
|
||||||
|
@ivar fakeUser: The fake user status.
|
||||||
|
enabling this will keep it in the blend even if there are no users.
|
||||||
|
@type fakeUser: bool
|
||||||
|
@ivar layers: Layer bitmask for this group.
|
||||||
|
@type layers: int
|
||||||
@ivar objects: Objects that this group uses.
|
@ivar objects: Objects that this group uses.
|
||||||
This is a sequence with-list like access so use list(grp.objects) if you need to use a list (where grp is a group).
|
This is a sequence with-list like access so use list(grp.objects) if you need to use a list (where grp is a group).
|
||||||
The groups objects can be set by assigning a list or iterator of objects to the groups objects.
|
The groups objects can be set by assigning a list or iterator of objects to the groups objects.
|
||||||
objects.link() and objects.unlink() also work with the the objects iterator just like with lists.
|
objects.link() and objects.unlink() also work with the the objects iterator just like with lists.
|
||||||
|
@type objects: custom object sequence
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|||||||
@@ -131,6 +131,9 @@ class Metaball:
|
|||||||
@type name: string
|
@type name: string
|
||||||
@ivar users: The user count (read only)
|
@ivar users: The user count (read only)
|
||||||
@type users: int
|
@type users: int
|
||||||
|
@ivar fakeUser: The fake user status.
|
||||||
|
enabling this will keep it in the blend even if there are no users.
|
||||||
|
@type fakeUser: bool
|
||||||
@ivar elements: Element iterator of MetaElemSeq type.
|
@ivar elements: Element iterator of MetaElemSeq type.
|
||||||
@type elements: MetaElemSeq
|
@type elements: MetaElemSeq
|
||||||
@ivar wiresize: display resolution.
|
@ivar wiresize: display resolution.
|
||||||
|
|||||||
@@ -158,6 +158,34 @@ ID *GetIdFromList( ListBase * list, char *name )
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/* Description: This function sets the fake user status of the ID */
|
||||||
|
/* returns an int error, so from getsetattrs */
|
||||||
|
/*****************************************************************************/
|
||||||
|
int SetIdFakeUser( ID * id, PyObject *value)
|
||||||
|
{
|
||||||
|
int param;
|
||||||
|
param = PyObject_IsTrue( value );
|
||||||
|
if( param == -1 )
|
||||||
|
return EXPP_ReturnIntError( PyExc_TypeError,
|
||||||
|
"expected int argument in range [0,1]" );
|
||||||
|
|
||||||
|
if (param) {
|
||||||
|
if (!(id->flag & LIB_FAKEUSER)) {
|
||||||
|
id->flag |= LIB_FAKEUSER;
|
||||||
|
id_us_plus(id);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (id->flag & LIB_FAKEUSER) {
|
||||||
|
id->flag &= ~LIB_FAKEUSER;
|
||||||
|
id->us--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* Description: These functions set an internal string with the given type */
|
/* Description: These functions set an internal string with the given type */
|
||||||
/* and error_msg arguments. */
|
/* and error_msg arguments. */
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ PyObject *EXPP_GetModuleConstant(char *module, char *constant);
|
|||||||
|
|
||||||
int StringEqual( const char *string1, const char *string2 );
|
int StringEqual( const char *string1, const char *string2 );
|
||||||
char *GetIdName( ID * id );
|
char *GetIdName( ID * id );
|
||||||
|
int SetIdFakeUser( ID * id, PyObject *value);
|
||||||
|
|
||||||
ID *GetIdFromList( ListBase * list, char *name );
|
ID *GetIdFromList( ListBase * list, char *name );
|
||||||
|
|
||||||
PyObject *PythonReturnErrorObject( PyObject * type, char *error_msg );
|
PyObject *PythonReturnErrorObject( PyObject * type, char *error_msg );
|
||||||
|
|||||||
Reference in New Issue
Block a user