forked from bartvdbraak/blender
New methods for Curve module: getBevOb() and setBevOb()
Adds ability to set, clear and get bevel object for a Curve. Contributed by Gergely Erdelyi (dyce). Thanks!
This commit is contained in:
parent
fa5d910f93
commit
127abda43d
@ -46,6 +46,7 @@
|
|||||||
|
|
||||||
#include "CurNurb.h"
|
#include "CurNurb.h"
|
||||||
#include "Material.h"
|
#include "Material.h"
|
||||||
|
#include "Object.h"
|
||||||
#include "gen_utils.h"
|
#include "gen_utils.h"
|
||||||
|
|
||||||
|
|
||||||
@ -115,6 +116,9 @@ static PyObject *Curve_appendNurb( BPy_Curve * self, PyObject * args );
|
|||||||
|
|
||||||
static PyObject *Curve_getMaterials( BPy_Curve * self );
|
static PyObject *Curve_getMaterials( BPy_Curve * self );
|
||||||
|
|
||||||
|
static PyObject *Curve_getBevOb( BPy_Curve * self );
|
||||||
|
static PyObject *Curve_setBevOb( BPy_Curve * self, PyObject * args );
|
||||||
|
|
||||||
static PyObject *Curve_getIter( BPy_Curve * self );
|
static PyObject *Curve_getIter( BPy_Curve * self );
|
||||||
static PyObject *Curve_iterNext( BPy_Curve * self );
|
static PyObject *Curve_iterNext( BPy_Curve * self );
|
||||||
static PyObject *Curve_update( BPy_Curve * self );
|
static PyObject *Curve_update( BPy_Curve * self );
|
||||||
@ -218,6 +222,10 @@ Sets a control point "},
|
|||||||
"( ) - updates display lists after changes to Curve"},
|
"( ) - updates display lists after changes to Curve"},
|
||||||
{"getMaterials", ( PyCFunction ) Curve_getMaterials, METH_NOARGS,
|
{"getMaterials", ( PyCFunction ) Curve_getMaterials, METH_NOARGS,
|
||||||
"() - returns list of materials assigned to this Curve"},
|
"() - returns list of materials assigned to this Curve"},
|
||||||
|
{"getBevOb", ( PyCFunction ) Curve_getBevOb, METH_NOARGS,
|
||||||
|
"() - returns Bevel Object assigned to this Curve"},
|
||||||
|
{"setBevOb", ( PyCFunction ) Curve_setBevOb, METH_VARARGS,
|
||||||
|
"() - assign a Bevel Object to this Curve"},
|
||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1253,7 +1261,50 @@ static PyObject *Curve_getMaterials( BPy_Curve * self )
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/* Function: Curve_getBevOb */
|
||||||
|
/* Description: Get the bevel object assign to the curve. */
|
||||||
|
/*****************************************************************************/
|
||||||
|
static PyObject *Curve_getBevOb( BPy_Curve * self)
|
||||||
|
{
|
||||||
|
if( self->curve->bevobj ) {
|
||||||
|
return Object_CreatePyObject( self->curve->bevobj );
|
||||||
|
}
|
||||||
|
|
||||||
|
return EXPP_incr_ret( Py_None );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/* Function: Curve_setBevOb */
|
||||||
|
/* Description: Assign a bevel object to the curve. */
|
||||||
|
/*****************************************************************************/
|
||||||
|
PyObject *Curve_setBevOb( BPy_Curve * self, PyObject * args )
|
||||||
|
{
|
||||||
|
BPy_Object *pybevobj;
|
||||||
|
|
||||||
|
/* Parse and check input args */
|
||||||
|
if( !PyArg_ParseTuple( args, "O", &pybevobj) ) {
|
||||||
|
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
|
||||||
|
"expected object or None argument" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Accept None */
|
||||||
|
if( (PyObject *)pybevobj == Py_None ) {
|
||||||
|
self->curve->bevobj = (Object *)NULL;
|
||||||
|
} else {
|
||||||
|
/* Accept Object with type 'Curve' */
|
||||||
|
if( Object_CheckPyObject( ( PyObject * ) pybevobj ) &&
|
||||||
|
pybevobj->object->type == OB_CURVE) {
|
||||||
|
self->curve->bevobj =
|
||||||
|
Object_FromPyObject( ( PyObject * ) pybevobj );
|
||||||
|
} else {
|
||||||
|
return ( EXPP_ReturnPyObjError( PyExc_TypeError,
|
||||||
|
"expected Curve object type or None argument" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return EXPP_incr_ret( Py_None );
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Curve_getIter
|
* Curve_getIter
|
||||||
@ -1404,6 +1455,8 @@ static PyObject *CurveGetAttr( BPy_Curve * self, char *name )
|
|||||||
return Curve_getRot( self );
|
return Curve_getRot( self );
|
||||||
if( strcmp( name, "size" ) == 0 )
|
if( strcmp( name, "size" ) == 0 )
|
||||||
return Curve_getSize( self );
|
return Curve_getSize( self );
|
||||||
|
if( strcmp( name, "bevob" ) == 0 )
|
||||||
|
return Curve_getBevOb( self );
|
||||||
#if 0
|
#if 0
|
||||||
if( strcmp( name, "numpts" ) == 0 )
|
if( strcmp( name, "numpts" ) == 0 )
|
||||||
return Curve_getNumPoints( self );
|
return Curve_getNumPoints( self );
|
||||||
@ -1456,6 +1509,8 @@ static int CurveSetAttr( BPy_Curve * self, char *name, PyObject * value )
|
|||||||
error = Curve_setRot( self, valtuple );
|
error = Curve_setRot( self, valtuple );
|
||||||
else if( strcmp( name, "size" ) == 0 )
|
else if( strcmp( name, "size" ) == 0 )
|
||||||
error = Curve_setSize( self, valtuple );
|
error = Curve_setSize( self, valtuple );
|
||||||
|
else if( strcmp( name, "bevob" ) == 0 )
|
||||||
|
error = Curve_setBevOb( self, valtuple );
|
||||||
|
|
||||||
else { /* Error */
|
else { /* Error */
|
||||||
Py_DECREF( valtuple );
|
Py_DECREF( valtuple );
|
||||||
|
@ -73,6 +73,7 @@ class Curve:
|
|||||||
@cvar loc: The Curve Data location(from the center).
|
@cvar loc: The Curve Data location(from the center).
|
||||||
@cvar rot: The Curve Data rotation(from the center).
|
@cvar rot: The Curve Data rotation(from the center).
|
||||||
@cvar size: The Curve Data size(from the center).
|
@cvar size: The Curve Data size(from the center).
|
||||||
|
@cvar bevob: The Curve Bevel Object
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def getName():
|
def getName():
|
||||||
@ -319,6 +320,23 @@ class Curve:
|
|||||||
@return: list of Material Objects assigned to the Curve.
|
@return: list of Material Objects assigned to the Curve.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def getBevOb():
|
||||||
|
"""
|
||||||
|
Returns the Bevel Object (BevOb) assigned to the Curve.
|
||||||
|
@rtype: Blender Object or PyNone
|
||||||
|
@return: Bevel Object (BevOb) assigned to the Curve.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def setBevOb( object ):
|
||||||
|
"""
|
||||||
|
Assign a Bevel Object (BevOb) to the Curve. Passing None as the object parameter removes the bevel.
|
||||||
|
@rtype: PyNone
|
||||||
|
@return: PyNone
|
||||||
|
@type object: Curve type Blender Object
|
||||||
|
@param object: Blender Object to assign as Bevel Object (BevOb)
|
||||||
|
@raise TypeError: throws exception if the parameter is not a Curve type Blender Object or PyNone
|
||||||
|
"""
|
||||||
|
|
||||||
def update():
|
def update():
|
||||||
"""
|
"""
|
||||||
Updates display list for a Curve.
|
Updates display list for a Curve.
|
||||||
|
Loading…
Reference in New Issue
Block a user