diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2005-08-04 23:07:39 +0400 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2005-08-04 23:07:39 +0400 |
commit | 210ab537ce34a31714d5073ff2e539a67aaea9af (patch) | |
tree | 6303f916ed2fe5e214e10f7283ce11a3304b9b0b /source/gameengine/Ketsji/KX_PyConstraintBinding.cpp | |
parent | b12f80168174623742ebe99186a89746a2646a97 (diff) |
improved deactivation, exposed more tweakable parameters to python,
fixed some copy/paste bug in inertia/inverse inertia.
colors in deactivation debug
Diffstat (limited to 'source/gameengine/Ketsji/KX_PyConstraintBinding.cpp')
-rw-r--r-- | source/gameengine/Ketsji/KX_PyConstraintBinding.cpp | 82 |
1 files changed, 71 insertions, 11 deletions
diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp index 98722c3fa0c..f11a9a763fe 100644 --- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp +++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp @@ -55,11 +55,14 @@ static char gPySetDeactivationTime__doc__[] = "setDeactivationTime(float time) T static char gPySetDeactivationLinearTreshold__doc__[] = "setDeactivationLinearTreshold(float linearTreshold)"; static char gPySetDeactivationAngularTreshold__doc__[] = "setDeactivationAngularTreshold(float angularTreshold)"; static char gPySetContactBreakingTreshold__doc__[] = "setContactBreakingTreshold(float breakingTreshold) Reasonable default is 0.02 (if units are meters)"; -static char gPySetCcdMode__doc__[] = "setCcdMode(int ccdMode) Very experimental, not recommended"; +static char gPySetCcdMode__doc__[] = "setCcdMode(int ccdMode) Very experimental, not recommended"; static char gPySetSorConstant__doc__[] = "setSorConstant(float sor) Very experimental, not recommended"; -static char gPySetTau__doc__[] = "setTau(float tau) Very experimental, not recommended"; -static char gPySetDamping__doc__[] = "setDamping(float damping) Very experimental, not recommended"; +static char gPySetSolverTau__doc__[] = "setTau(float tau) Very experimental, not recommended"; +static char gPySetSolverDamping__doc__[] = "setDamping(float damping) Very experimental, not recommended"; +static char gPySetLinearAirDamping__doc__[] = "setLinearAirDamping(float damping) Very experimental, not recommended"; +static char gPySetUseEpa__doc__[] = "setUseEpa(int epa) Very experimental, not recommended"; +static char gPySetSolverType__doc__[] = "setSolverType(int solverType) Very experimental, not recommended"; static char gPyCreateConstraint__doc__[] = "createConstraint(ob1,ob2,float restLength,float restitution,float damping)"; @@ -210,7 +213,7 @@ static PyObject* gPySetSorConstant(PyObject* self, Py_INCREF(Py_None); return Py_None; } -static PyObject* gPySetTau(PyObject* self, +static PyObject* gPySetSolverTau(PyObject* self, PyObject* args, PyObject* kwds) { @@ -219,14 +222,14 @@ static PyObject* gPySetTau(PyObject* self, { if (PHY_GetActiveEnvironment()) { - PHY_GetActiveEnvironment()->setTau( tau); + PHY_GetActiveEnvironment()->setSolverTau( tau); } } Py_INCREF(Py_None); return Py_None; } -static PyObject* gPySetDamping(PyObject* self, +static PyObject* gPySetSolverDamping(PyObject* self, PyObject* args, PyObject* kwds) { @@ -235,12 +238,61 @@ static PyObject* gPySetDamping(PyObject* self, { if (PHY_GetActiveEnvironment()) { - PHY_GetActiveEnvironment()->setDamping( damping); + PHY_GetActiveEnvironment()->setSolverDamping( damping); } } Py_INCREF(Py_None); return Py_None; } +static PyObject* gPySetLinearAirDamping(PyObject* self, + PyObject* args, + PyObject* kwds) +{ + float damping; + if (PyArg_ParseTuple(args,"f",&damping)) + { + if (PHY_GetActiveEnvironment()) + { + PHY_GetActiveEnvironment()->setLinearAirDamping( damping); + } + } + Py_INCREF(Py_None); return Py_None; +} + + +static PyObject* gPySetUseEpa(PyObject* self, + PyObject* args, + PyObject* kwds) +{ + int epa; + if (PyArg_ParseTuple(args,"i",&epa)) + { + if (PHY_GetActiveEnvironment()) + { + PHY_GetActiveEnvironment()->setUseEpa(epa); + } + } + Py_INCREF(Py_None); return Py_None; +} +static PyObject* gPySetSolverType(PyObject* self, + PyObject* args, + PyObject* kwds) +{ + int solverType; + if (PyArg_ParseTuple(args,"i",&solverType)) + { + if (PHY_GetActiveEnvironment()) + { + PHY_GetActiveEnvironment()->setSolverType(solverType); + } + } + Py_INCREF(Py_None); return Py_None; +} + + + + + static PyObject* gPyCreateConstraint(PyObject* self, PyObject* args, @@ -337,10 +389,18 @@ static struct PyMethodDef physicsconstraints_methods[] = { METH_VARARGS, gPySetCcdMode__doc__}, {"setSorConstant",(PyCFunction) gPySetSorConstant, METH_VARARGS, gPySetSorConstant__doc__}, - {"setTau",(PyCFunction) gPySetTau, - METH_VARARGS, gPySetTau__doc__}, - {"setDamping",(PyCFunction) gPySetDamping, - METH_VARARGS, gPySetDamping__doc__}, + {"setSolverTau",(PyCFunction) gPySetSolverTau, + METH_VARARGS, gPySetSolverTau__doc__}, + {"setSolverDamping",(PyCFunction) gPySetSolverDamping, + METH_VARARGS, gPySetSolverDamping__doc__}, + + {"setLinearAirDamping",(PyCFunction) gPySetLinearAirDamping, + METH_VARARGS, gPySetLinearAirDamping__doc__}, + + {"setUseEpa",(PyCFunction) gPySetUseEpa, + METH_VARARGS, gPySetUseEpa__doc__}, + {"setSolverType",(PyCFunction) gPySetSolverType, + METH_VARARGS, gPySetSolverType__doc__}, |