Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/gameengine/Ketsji/KX_IpoActuator.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_IpoActuator.cpp135
1 files changed, 77 insertions, 58 deletions
diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp
index 623a939bf62..f04e3c79a8e 100644
--- a/source/gameengine/Ketsji/KX_IpoActuator.cpp
+++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp
@@ -84,7 +84,7 @@ KX_IpoActuator::KX_IpoActuator(SCA_IObject* gameobj,
m_ipo_as_force(ipo_as_force),
m_ipo_add(ipo_add),
m_ipo_local(ipo_local),
- m_type((IpoActType)acttype)
+ m_type(acttype)
{
m_starttime = -2.0*fabs(m_endframe - m_startframe) - 1.0;
m_bIpoPlaying = false;
@@ -190,7 +190,7 @@ bool KX_IpoActuator::Update(double curtime, bool frame)
}
}
- switch (m_type)
+ switch ((IpoActType)m_type)
{
case KX_ACT_IPO_PLAY:
@@ -383,7 +383,7 @@ bool KX_IpoActuator::Update(double curtime, bool frame)
return result;
}
-KX_IpoActuator::IpoActType KX_IpoActuator::string2mode(char* modename) {
+int KX_IpoActuator::string2mode(char* modename) {
IpoActType res = KX_ACT_IPO_NODEF;
if (modename == S_KX_ACT_IPO_PLAY_STRING) {
@@ -413,22 +413,22 @@ KX_IpoActuator::IpoActType KX_IpoActuator::string2mode(char* modename) {
/* Integration hooks ------------------------------------------------------- */
PyTypeObject KX_IpoActuator::Type = {
- PyObject_HEAD_INIT(&PyType_Type)
+ PyObject_HEAD_INIT(NULL)
0,
"KX_IpoActuator",
- sizeof(KX_IpoActuator),
+ sizeof(PyObjectPlus_Proxy),
0,
- PyDestructor,
+ py_base_dealloc,
0,
- __getattr,
- __setattr,
- 0, //&MyPyCompare,
- __repr,
- 0, //&cvalue_as_number,
0,
0,
0,
- 0
+ py_base_repr,
+ 0,0,0,0,0,0,
+ py_base_getattro,
+ py_base_setattro,
+ 0,0,0,0,0,0,0,0,0,
+ Methods
};
PyParentObject KX_IpoActuator::Parents[] = {
@@ -441,6 +441,8 @@ PyParentObject KX_IpoActuator::Parents[] = {
PyMethodDef KX_IpoActuator::Methods[] = {
{"set", (PyCFunction) KX_IpoActuator::sPySet, METH_VARARGS, (PY_METHODCHAR)Set_doc},
+
+ // deprecated
{"setProperty", (PyCFunction) KX_IpoActuator::sPySetProperty, METH_VARARGS, (PY_METHODCHAR)SetProperty_doc},
{"setStart", (PyCFunction) KX_IpoActuator::sPySetStart, METH_VARARGS, (PY_METHODCHAR)SetStart_doc},
{"getStart", (PyCFunction) KX_IpoActuator::sPyGetStart, METH_NOARGS, (PY_METHODCHAR)GetStart_doc},
@@ -450,22 +452,35 @@ PyMethodDef KX_IpoActuator::Methods[] = {
{"getIpoAsForce", (PyCFunction) KX_IpoActuator::sPyGetIpoAsForce, METH_NOARGS, (PY_METHODCHAR)GetIpoAsForce_doc},
{"setIpoAdd", (PyCFunction) KX_IpoActuator::sPySetIpoAdd, METH_VARARGS, (PY_METHODCHAR)SetIpoAdd_doc},
{"getIpoAdd", (PyCFunction) KX_IpoActuator::sPyGetIpoAdd, METH_NOARGS, (PY_METHODCHAR)GetIpoAdd_doc},
- {"setType", (PyCFunction) KX_IpoActuator::sPySetType, METH_VARARGS, (PY_METHODCHAR)SetType_doc},
- {"getType", (PyCFunction) KX_IpoActuator::sPyGetType, METH_NOARGS, (PY_METHODCHAR)GetType_doc},
{"setForceIpoActsLocal", (PyCFunction) KX_IpoActuator::sPySetForceIpoActsLocal, METH_VARARGS, (PY_METHODCHAR)SetForceIpoActsLocal_doc},
{"getForceIpoActsLocal", (PyCFunction) KX_IpoActuator::sPyGetForceIpoActsLocal, METH_NOARGS, (PY_METHODCHAR)GetForceIpoActsLocal_doc},
+ {"setType", (PyCFunction) KX_IpoActuator::sPySetType, METH_VARARGS, (PY_METHODCHAR)SetType_doc},
+ {"getType", (PyCFunction) KX_IpoActuator::sPyGetType, METH_NOARGS, (PY_METHODCHAR)GetType_doc},
{NULL,NULL} //Sentinel
};
PyAttributeDef KX_IpoActuator::Attributes[] = {
+ KX_PYATTRIBUTE_FLOAT_RW("startFrame", 0, 300000, KX_IpoActuator, m_startframe),
+ KX_PYATTRIBUTE_FLOAT_RW("endFrame", 0, 300000, KX_IpoActuator, m_endframe),
+ KX_PYATTRIBUTE_STRING_RW("propName", 0, 64, false, KX_IpoActuator, m_propname),
+ KX_PYATTRIBUTE_STRING_RW("framePropName", 0, 64, false, KX_IpoActuator, m_framepropname),
+ KX_PYATTRIBUTE_INT_RW("type", KX_ACT_IPO_NODEF+1, KX_ACT_IPO_MAX-1, true, KX_IpoActuator, m_type),
+ KX_PYATTRIBUTE_BOOL_RW("useIpoAsForce", KX_IpoActuator, m_ipo_as_force),
+ KX_PYATTRIBUTE_BOOL_RW("useIpoAdd", KX_IpoActuator, m_ipo_add),
+ KX_PYATTRIBUTE_BOOL_RW("useIpoLocal", KX_IpoActuator, m_ipo_local),
+ KX_PYATTRIBUTE_BOOL_RW("useChildren", KX_IpoActuator, m_recurse),
+
{ NULL } //Sentinel
};
-PyObject* KX_IpoActuator::_getattr(const char *attr) {
- _getattr_up(SCA_IActuator);
+PyObject* KX_IpoActuator::py_getattro(PyObject *attr) {
+ py_getattro_up(SCA_IActuator);
}
-
+int KX_IpoActuator::py_setattro(PyObject *attr, PyObject *value) // py_setattro method
+{
+ py_setattro_up(SCA_IActuator);
+}
/* set --------------------------------------------------------------------- */
const char KX_IpoActuator::Set_doc[] =
@@ -475,17 +490,18 @@ const char KX_IpoActuator::Set_doc[] =
"\t - endframe : last frame to use (int)\n"
"\t - mode? : special mode (0=normal, 1=interpret location as force, 2=additive)"
"\tSet the properties of the actuator.\n";
-PyObject* KX_IpoActuator::PySet(PyObject* self,
- PyObject* args,
- PyObject* kwds) {
+PyObject* KX_IpoActuator::PySet(PyObject* args) {
+
+ ShowDeprecationWarning("set()", "a number properties");
+
/* sets modes PLAY, PINGPONG, FLIPPER, LOOPSTOP, LOOPEND */
/* arg 1 = mode string, arg 2 = startframe, arg3 = stopframe, */
/* arg4 = force toggle */
char* mode;
int forceToggle;
- IpoActType modenum;
+ int modenum;
int startFrame, stopFrame;
- if(!PyArg_ParseTuple(args, "siii", &mode, &startFrame,
+ if(!PyArg_ParseTuple(args, "siii:set", &mode, &startFrame,
&stopFrame, &forceToggle)) {
return NULL;
}
@@ -515,13 +531,14 @@ const char KX_IpoActuator::SetProperty_doc[] =
"setProperty(propname)\n"
"\t - propname: name of the property (string)\n"
"\tSet the property to be used in FromProp mode.\n";
-PyObject* KX_IpoActuator::PySetProperty(PyObject* self,
- PyObject* args,
- PyObject* kwds) {
+PyObject* KX_IpoActuator::PySetProperty(PyObject* args) {
+
+ ShowDeprecationWarning("setProperty()", "the propName property");
+
/* mode is implicit here, but not supported yet... */
/* args: property */
char *propertyName;
- if(!PyArg_ParseTuple(args, "s", &propertyName)) {
+ if(!PyArg_ParseTuple(args, "s:setProperty", &propertyName)) {
return NULL;
}
@@ -535,11 +552,12 @@ const char KX_IpoActuator::SetStart_doc[] =
"setStart(frame)\n"
"\t - frame: first frame to use (int)\n"
"\tSet the frame from which the ipo starts playing.\n";
-PyObject* KX_IpoActuator::PySetStart(PyObject* self,
- PyObject* args,
- PyObject* kwds) {
+PyObject* KX_IpoActuator::PySetStart(PyObject* args) {
+
+ ShowDeprecationWarning("setStart()", "the startFrame property");
+
float startArg;
- if(!PyArg_ParseTuple(args, "f", &startArg)) {
+ if(!PyArg_ParseTuple(args, "f:setStart", &startArg)) {
return NULL;
}
@@ -551,7 +569,8 @@ PyObject* KX_IpoActuator::PySetStart(PyObject* self,
const char KX_IpoActuator::GetStart_doc[] =
"getStart()\n"
"\tReturns the frame from which the ipo starts playing.\n";
-PyObject* KX_IpoActuator::PyGetStart(PyObject* self) {
+PyObject* KX_IpoActuator::PyGetStart() {
+ ShowDeprecationWarning("getStart()", "the startFrame property");
return PyFloat_FromDouble(m_startframe);
}
@@ -560,11 +579,10 @@ const char KX_IpoActuator::SetEnd_doc[] =
"setEnd(frame)\n"
"\t - frame: last frame to use (int)\n"
"\tSet the frame at which the ipo stops playing.\n";
-PyObject* KX_IpoActuator::PySetEnd(PyObject* self,
- PyObject* args,
- PyObject* kwds) {
+PyObject* KX_IpoActuator::PySetEnd(PyObject* args) {
+ ShowDeprecationWarning("setEnd()", "the endFrame property");
float endArg;
- if(!PyArg_ParseTuple(args, "f", &endArg)) {
+ if(!PyArg_ParseTuple(args, "f:setEnd", &endArg)) {
return NULL;
}
@@ -576,7 +594,8 @@ PyObject* KX_IpoActuator::PySetEnd(PyObject* self,
const char KX_IpoActuator::GetEnd_doc[] =
"getEnd()\n"
"\tReturns the frame at which the ipo stops playing.\n";
-PyObject* KX_IpoActuator::PyGetEnd(PyObject* self) {
+PyObject* KX_IpoActuator::PyGetEnd() {
+ ShowDeprecationWarning("getEnd()", "the endFrame property");
return PyFloat_FromDouble(m_endframe);
}
@@ -585,12 +604,11 @@ const char KX_IpoActuator::SetIpoAsForce_doc[] =
"setIpoAsForce(force?)\n"
"\t - force? : interpret this ipo as a force? (KX_TRUE, KX_FALSE)\n"
"\tSet whether to interpret the ipo as a force rather than a displacement.\n";
-PyObject* KX_IpoActuator::PySetIpoAsForce(PyObject* self,
- PyObject* args,
- PyObject* kwds) {
+PyObject* KX_IpoActuator::PySetIpoAsForce(PyObject* args) {
+ ShowDeprecationWarning("setIpoAsForce()", "the useIpoAsForce property");
int boolArg;
- if (!PyArg_ParseTuple(args, "i", &boolArg)) {
+ if (!PyArg_ParseTuple(args, "i:setIpoAsForce", &boolArg)) {
return NULL;
}
@@ -604,7 +622,8 @@ PyObject* KX_IpoActuator::PySetIpoAsForce(PyObject* self,
const char KX_IpoActuator::GetIpoAsForce_doc[] =
"getIpoAsForce()\n"
"\tReturns whether to interpret the ipo as a force rather than a displacement.\n";
-PyObject* KX_IpoActuator::PyGetIpoAsForce(PyObject* self) {
+PyObject* KX_IpoActuator::PyGetIpoAsForce() {
+ ShowDeprecationWarning("getIpoAsForce()", "the useIpoAsForce property");
return BoolToPyArg(m_ipo_as_force);
}
@@ -613,12 +632,11 @@ const char KX_IpoActuator::SetIpoAdd_doc[] =
"setIpoAdd(add?)\n"
"\t - add? : add flag (KX_TRUE, KX_FALSE)\n"
"\tSet whether to interpret the ipo as additive rather than absolute.\n";
-PyObject* KX_IpoActuator::PySetIpoAdd(PyObject* self,
- PyObject* args,
- PyObject* kwds) {
+PyObject* KX_IpoActuator::PySetIpoAdd(PyObject* args) {
+ ShowDeprecationWarning("setIpoAdd()", "the useIpoAdd property");
int boolArg;
- if (!PyArg_ParseTuple(args, "i", &boolArg)) {
+ if (!PyArg_ParseTuple(args, "i:setIpoAdd", &boolArg)) {
return NULL;
}
@@ -632,7 +650,8 @@ PyObject* KX_IpoActuator::PySetIpoAdd(PyObject* self,
const char KX_IpoActuator::GetIpoAdd_doc[] =
"getIpoAsAdd()\n"
"\tReturns whether to interpret the ipo as additive rather than absolute.\n";
-PyObject* KX_IpoActuator::PyGetIpoAdd(PyObject* self) {
+PyObject* KX_IpoActuator::PyGetIpoAdd() {
+ ShowDeprecationWarning("getIpoAdd()", "the useIpoAdd property");
return BoolToPyArg(m_ipo_add);
}
@@ -641,18 +660,17 @@ const char KX_IpoActuator::SetType_doc[] =
"setType(mode)\n"
"\t - mode: Play, PingPong, Flipper, LoopStop, LoopEnd or FromProp (string)\n"
"\tSet the operation mode of the actuator.\n";
-PyObject* KX_IpoActuator::PySetType(PyObject* self,
- PyObject* args,
- PyObject* kwds) {
+PyObject* KX_IpoActuator::PySetType(PyObject* args) {
+ ShowDeprecationWarning("setType()", "the type property");
int typeArg;
- if (!PyArg_ParseTuple(args, "i", &typeArg)) {
+ if (!PyArg_ParseTuple(args, "i:setType", &typeArg)) {
return NULL;
}
if ( (typeArg > KX_ACT_IPO_NODEF)
- && (typeArg < KX_ACT_IPO_KEY2KEY) ) {
- m_type = (IpoActType) typeArg;
+ && (typeArg < KX_ACT_IPO_MAX) ) {
+ m_type = typeArg;
}
Py_RETURN_NONE;
@@ -661,7 +679,8 @@ PyObject* KX_IpoActuator::PySetType(PyObject* self,
const char KX_IpoActuator::GetType_doc[] =
"getType()\n"
"\tReturns the operation mode of the actuator.\n";
-PyObject* KX_IpoActuator::PyGetType(PyObject* self) {
+PyObject* KX_IpoActuator::PyGetType() {
+ ShowDeprecationWarning("getType()", "the type property");
return PyInt_FromLong(m_type);
}
@@ -672,12 +691,11 @@ const char KX_IpoActuator::SetForceIpoActsLocal_doc[] =
"\t coordinates? (KX_TRUE, KX_FALSE)\n"
"\tSet whether to apply the force in the object's local\n"
"\tcoordinates rather than the world global coordinates.\n";
-PyObject* KX_IpoActuator::PySetForceIpoActsLocal(PyObject* self,
- PyObject* args,
- PyObject* kwds) {
+PyObject* KX_IpoActuator::PySetForceIpoActsLocal(PyObject* args) {
+ ShowDeprecationWarning("setForceIpoActsLocal()", "the useIpoLocal property");
int boolArg;
- if (!PyArg_ParseTuple(args, "i", &boolArg)) {
+ if (!PyArg_ParseTuple(args, "i:setForceIpoActsLocal", &boolArg)) {
return NULL;
}
@@ -690,7 +708,8 @@ const char KX_IpoActuator::GetForceIpoActsLocal_doc[] =
"getForceIpoActsLocal()\n"
"\tReturn whether to apply the force in the object's local\n"
"\tcoordinates rather than the world global coordinates.\n";
-PyObject* KX_IpoActuator::PyGetForceIpoActsLocal(PyObject* self) {
+PyObject* KX_IpoActuator::PyGetForceIpoActsLocal() {
+ ShowDeprecationWarning("getForceIpoActsLocal()", "the useIpoLocal property");
return BoolToPyArg(m_ipo_local);
}