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:
authorErwin Coumans <blender@erwincoumans.com>2005-08-04 23:07:39 +0400
committerErwin Coumans <blender@erwincoumans.com>2005-08-04 23:07:39 +0400
commit210ab537ce34a31714d5073ff2e539a67aaea9af (patch)
tree6303f916ed2fe5e214e10f7283ce11a3304b9b0b /source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
parentb12f80168174623742ebe99186a89746a2646a97 (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.cpp82
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__},