forked from bartvdbraak/blender
Modification of the function getCurvecurval suggested by Jiba. This function can take an integer argument (the position of the curve) or a string (the name of the curve)
Updated documentation in doc/Ipo.py
This commit is contained in:
parent
ed67092601
commit
4b813c5c81
@ -344,7 +344,7 @@ static PyObject *Ipo_addCurve(BPy_Ipo *self, PyObject *args)
|
|||||||
IpoCurve *ptr;
|
IpoCurve *ptr;
|
||||||
int typenumber = -1;
|
int typenumber = -1;
|
||||||
char*type = 0;
|
char*type = 0;
|
||||||
static char *name="mmm";
|
static char *name="mmmppp";
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "s",&type))
|
if (!PyArg_ParseTuple(args, "s",&type))
|
||||||
return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected string argument"));
|
return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected string argument"));
|
||||||
@ -549,20 +549,32 @@ static PyObject *Ipo_EvaluateCurveOn(BPy_Ipo *self, PyObject *args)
|
|||||||
|
|
||||||
static PyObject *Ipo_getCurvecurval(BPy_Ipo *self, PyObject *args)
|
static PyObject *Ipo_getCurvecurval(BPy_Ipo *self, PyObject *args)
|
||||||
{
|
{
|
||||||
int num = 0,i;
|
int numcurve = 0,i;
|
||||||
IpoCurve *icu;
|
IpoCurve *icu;
|
||||||
|
char*stringname = 0;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "i",&num))
|
if (!PyArg_ParseTuple(args, "i",&numcurve))
|
||||||
return (EXPP_ReturnPyObjError (PyExc_TypeError,"expected int argument"));
|
if (!PyArg_ParseTuple(args, "s",&stringname))
|
||||||
icu =self->ipo->curve.first;
|
return (EXPP_ReturnPyObjError (PyExc_TypeError,"expected int or string argument"));
|
||||||
if(!icu) return (EXPP_ReturnPyObjError (PyExc_TypeError,"No IPO curve"));
|
icu =self->ipo->curve.first;
|
||||||
for(i = 0;i<num;i++)
|
if(!icu) return (EXPP_ReturnPyObjError (PyExc_TypeError,"No IPO curve"));
|
||||||
{
|
if (!stringname)
|
||||||
if(!icu) return (EXPP_ReturnPyObjError (PyExc_TypeError,"Bad ipo number"));
|
for(i = 0;i<numcurve;i++)
|
||||||
icu=icu->next;
|
{
|
||||||
|
puts(type_from_num(icu->adrcode,icu->blocktype));
|
||||||
|
if(!icu) return (EXPP_ReturnPyObjError (PyExc_TypeError,"Bad ipo number"));
|
||||||
|
icu=icu->next;
|
||||||
|
|
||||||
}
|
}
|
||||||
return PyFloat_FromDouble(icu->curval);
|
else
|
||||||
|
while (icu){
|
||||||
|
if (!strcmp(type_from_num(icu->adrcode,icu->blocktype),stringname))break;
|
||||||
|
icu=icu->next;
|
||||||
|
}
|
||||||
|
if (icu) return PyFloat_FromDouble(icu->curval);
|
||||||
|
else { Py_INCREF(Py_None);
|
||||||
|
return Py_None;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -151,8 +151,8 @@ class Ipo:
|
|||||||
def getCurvecurval(curvepos):
|
def getCurvecurval(curvepos):
|
||||||
"""
|
"""
|
||||||
Gets the current value of a curve of the Ipo.
|
Gets the current value of a curve of the Ipo.
|
||||||
@type curvepos: int
|
@type curvepos: int or string
|
||||||
@param curvepos: the position of the curve in the ipo
|
@param curvepos: the position of the curve in the ipo or the name of the curve
|
||||||
@rtype: float
|
@rtype: float
|
||||||
@return: the current value of the selected curve of the Ipo.
|
@return: the current value of the selected curve of the Ipo.
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user