bug fixes in functions getLocation and similar.

added buildParts() methods, which forces the computation of the partivcle system.
This commit is contained in:
2003-07-25 19:52:51 +00:00
parent 65de07aeec
commit 7b324bef33

View File

@@ -82,6 +82,7 @@ struct PyMethodDef M_Object_methods[] = {
/*****************************************************************************/ /*****************************************************************************/
/* Python BPy_Object methods declarations: */ /* Python BPy_Object methods declarations: */
/*****************************************************************************/ /*****************************************************************************/
static PyObject *Object_buildParts (BPy_Object *self);
static PyObject *Object_clrParent (BPy_Object *self, PyObject *args); static PyObject *Object_clrParent (BPy_Object *self, PyObject *args);
static PyObject *Object_getData (BPy_Object *self); static PyObject *Object_getData (BPy_Object *self);
static PyObject *Object_getDeltaLocation (BPy_Object *self); static PyObject *Object_getDeltaLocation (BPy_Object *self);
@@ -113,7 +114,9 @@ static PyObject *Object_shareFrom (BPy_Object *self, PyObject *args);
/*****************************************************************************/ /*****************************************************************************/
static PyMethodDef BPy_Object_methods[] = { static PyMethodDef BPy_Object_methods[] = {
/* name, method, flags, doc */ /* name, method, flags, doc */
{"clrParent", (PyCFunction)Object_clrParent, METH_VARARGS, {"buildParts", (PyCFunction)Object_buildParts, METH_NOARGS,
"Recalcs particle system (if any) "},
{"clrParent", (PyCFunction)Object_clrParent, METH_VARARGS,
"Clears parent object. Optionally specify:\n\ "Clears parent object. Optionally specify:\n\
mode\n\t2: Keep object transform\nfast\n\t>0: Don't update scene \ mode\n\t2: Keep object transform\nfast\n\t>0: Don't update scene \
hierarchy (faster)"}, hierarchy (faster)"},
@@ -546,6 +549,17 @@ PyObject *Object_Init (void)
/*****************************************************************************/ /*****************************************************************************/
/* Python BPy_Object methods: */ /* Python BPy_Object methods: */
/*****************************************************************************/ /*****************************************************************************/
static PyObject *Object_buildParts (BPy_Object *self)
{
void build_particle_system(Object *ob);
struct Object *obj = self->object;
build_particle_system( obj);
Py_INCREF (Py_None);
return (Py_None);
}
static PyObject *Object_clrParent (BPy_Object *self, PyObject *args) static PyObject *Object_clrParent (BPy_Object *self, PyObject *args)
{ {
int mode=0; int mode=0;
@@ -974,15 +988,15 @@ static PyObject *Object_setDeltaLocation (BPy_Object *self, PyObject *args)
float dloc2; float dloc2;
float dloc3; float dloc3;
if (!PyArg_Parse (args, "fff", &dloc1, &dloc2, &dloc3)) if (!PyArg_ParseTuple (args, "fff", &dloc1, &dloc2, &dloc3))
{ {
return (PythonReturnErrorObject (PyExc_AttributeError, return (PythonReturnErrorObject (PyExc_AttributeError,
"expected three float arguments")); "expected three float arguments"));
} }
self->object->dloc[1] = dloc1; self->object->dloc[0] = dloc1;
self->object->dloc[2] = dloc2; self->object->dloc[1] = dloc2;
self->object->dloc[3] = dloc3; self->object->dloc[2] = dloc3;
Py_INCREF (Py_None); Py_INCREF (Py_None);
return (Py_None); return (Py_None);
@@ -1024,15 +1038,15 @@ static PyObject *Object_setEuler (BPy_Object *self, PyObject *args)
float drot2; float drot2;
float drot3; float drot3;
if (!PyArg_Parse (args, "fff", &drot1, &drot2, &drot3)) if (!PyArg_ParseTuple (args, "fff", &drot1, &drot2, &drot3))
{ {
return (PythonReturnErrorObject (PyExc_AttributeError, return (PythonReturnErrorObject (PyExc_AttributeError,
"expected three float arguments")); "expected three float arguments"));
} }
self->object->drot[1] = drot1; self->object->drot[0] = drot1;
self->object->drot[2] = drot2; self->object->drot[1] = drot2;
self->object->drot[3] = drot3; self->object->drot[2] = drot3;
Py_INCREF (Py_None); Py_INCREF (Py_None);
return (Py_None); return (Py_None);
@@ -1044,15 +1058,15 @@ static PyObject *Object_setLocation (BPy_Object *self, PyObject *args)
float loc2; float loc2;
float loc3; float loc3;
if (!PyArg_Parse (args, "fff", &loc1, &loc2, &loc3)) if (!PyArg_ParseTuple (args, "fff", &loc1, &loc2, &loc3))
{ {
return (PythonReturnErrorObject (PyExc_AttributeError, return (PythonReturnErrorObject (PyExc_AttributeError,
"expected three float arguments")); "expected three float arguments"));
} }
self->object->loc[1] = loc1; self->object->loc[0] = loc1;
self->object->loc[2] = loc2; self->object->loc[1] = loc2;
self->object->loc[3] = loc3; self->object->loc[2] = loc3;
Py_INCREF (Py_None); Py_INCREF (Py_None);
return (Py_None); return (Py_None);