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_VehicleWrapper.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_VehicleWrapper.cpp121
1 files changed, 48 insertions, 73 deletions
diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
index 8d5af1b9216..1a6fb196db5 100644
--- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
@@ -35,9 +35,7 @@ KX_VehicleWrapper::~KX_VehicleWrapper()
}
-PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* args)
{
PyObject* pylistPos,*pylistDir,*pylistAxleDir;
@@ -46,14 +44,18 @@ PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* self,
int hasSteering;
- if (PyArg_ParseTuple(args,"OOOOffi",&wheelGameObject,&pylistPos,&pylistDir,&pylistAxleDir,&suspensionRestLength,&wheelRadius,&hasSteering))
+ if (PyArg_ParseTuple(args,"OOOOffi:addWheel",&wheelGameObject,&pylistPos,&pylistDir,&pylistAxleDir,&suspensionRestLength,&wheelRadius,&hasSteering))
{
- KX_GameObject* gameOb = (KX_GameObject*) wheelGameObject;
+ KX_GameObject *gameOb;
+ if (!ConvertPythonToGameObject(wheelGameObject, &gameOb, false, "vehicle.addWheel(...): KX_VehicleWrapper (first argument)"))
+ return NULL;
+
if (gameOb->GetSGNode())
{
PHY_IMotionState* motionState = new KX_MotionState(gameOb->GetSGNode());
-
+
+ /* TODO - no error checking here! - bad juju */
MT_Vector3 attachPos,attachDir,attachAxle;
PyVecTo(pylistPos,attachPos);
PyVecTo(pylistDir,attachDir);
@@ -82,14 +84,12 @@ PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* self,
-PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* args)
{
int wheelIndex;
- if (PyArg_ParseTuple(args,"i",&wheelIndex))
+ if (PyArg_ParseTuple(args,"i:getWheelPosition",&wheelIndex))
{
float position[3];
m_vehicle->GetWheelPosition(wheelIndex,position[0],position[1],position[2]);
@@ -99,24 +99,20 @@ PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* self,
return NULL;
}
-PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* args)
{
int wheelIndex;
- if (PyArg_ParseTuple(args,"i",&wheelIndex))
+ if (PyArg_ParseTuple(args,"i:getWheelRotation",&wheelIndex))
{
return PyFloat_FromDouble(m_vehicle->GetWheelRotation(wheelIndex));
}
return NULL;
}
-PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* args)
{
int wheelIndex;
- if (PyArg_ParseTuple(args,"i",&wheelIndex))
+ if (PyArg_ParseTuple(args,"i:getWheelOrientationQuaternion",&wheelIndex))
{
float orn[4];
m_vehicle->GetWheelOrientationQuaternion(wheelIndex,orn[0],orn[1],orn[2],orn[3]);
@@ -129,31 +125,25 @@ PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* self,
}
-PyObject* KX_VehicleWrapper::PyGetNumWheels(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PyGetNumWheels(PyObject* args)
{
return PyInt_FromLong(m_vehicle->GetNumWheels());
}
-PyObject* KX_VehicleWrapper::PyGetConstraintId(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PyGetConstraintId(PyObject* args)
{
return PyInt_FromLong(m_vehicle->GetUserConstraintId());
}
-PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* args)
{
float force;
int wheelIndex;
- if (PyArg_ParseTuple(args,"fi",&force,&wheelIndex))
+ if (PyArg_ParseTuple(args,"fi:applyEngineForce",&force,&wheelIndex))
{
force *= -1.f;//someone reverse some conventions inside Bullet (axle winding)
m_vehicle->ApplyEngineForce(force,wheelIndex);
@@ -164,14 +154,12 @@ PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* self,
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* args)
{
float wheelFriction;
int wheelIndex;
- if (PyArg_ParseTuple(args,"fi",&wheelFriction,&wheelIndex))
+ if (PyArg_ParseTuple(args,"fi:setTyreFriction",&wheelFriction,&wheelIndex))
{
m_vehicle->SetWheelFriction(wheelFriction,wheelIndex);
}
@@ -181,14 +169,12 @@ PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* self,
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* args)
{
float suspensionStiffness;
int wheelIndex;
- if (PyArg_ParseTuple(args,"fi",&suspensionStiffness,&wheelIndex))
+ if (PyArg_ParseTuple(args,"fi:setSuspensionStiffness",&suspensionStiffness,&wheelIndex))
{
m_vehicle->SetSuspensionStiffness(suspensionStiffness,wheelIndex);
}
@@ -198,14 +184,12 @@ PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* self,
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* args)
{
float suspensionDamping;
int wheelIndex;
- if (PyArg_ParseTuple(args,"fi",&suspensionDamping,&wheelIndex))
+ if (PyArg_ParseTuple(args,"fi:setSuspensionDamping",&suspensionDamping,&wheelIndex))
{
m_vehicle->SetSuspensionDamping(suspensionDamping,wheelIndex);
} else {
@@ -214,14 +198,12 @@ PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* self,
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* args)
{
float suspensionCompression;
int wheelIndex;
- if (PyArg_ParseTuple(args,"fi",&suspensionCompression,&wheelIndex))
+ if (PyArg_ParseTuple(args,"fi:setSuspensionCompression",&suspensionCompression,&wheelIndex))
{
m_vehicle->SetSuspensionCompression(suspensionCompression,wheelIndex);
} else {
@@ -230,14 +212,12 @@ PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* self,
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* args)
{
float rollInfluence;
int wheelIndex;
- if (PyArg_ParseTuple(args,"fi",&rollInfluence,&wheelIndex))
+ if (PyArg_ParseTuple(args,"fi:setRollInfluence",&rollInfluence,&wheelIndex))
{
m_vehicle->SetRollInfluence(rollInfluence,wheelIndex);
}
@@ -248,14 +228,12 @@ PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* self,
}
-PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* args)
{
float braking;
int wheelIndex;
- if (PyArg_ParseTuple(args,"fi",&braking,&wheelIndex))
+ if (PyArg_ParseTuple(args,"fi:applyBraking",&braking,&wheelIndex))
{
m_vehicle->ApplyBraking(braking,wheelIndex);
}
@@ -268,14 +246,12 @@ PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* self,
-PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* args)
{
float steeringValue;
int wheelIndex;
- if (PyArg_ParseTuple(args,"fi",&steeringValue,&wheelIndex))
+ if (PyArg_ParseTuple(args,"fi:setSteeringValue",&steeringValue,&wheelIndex))
{
m_vehicle->SetSteeringValue(steeringValue,wheelIndex);
}
@@ -286,9 +262,7 @@ PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* self,
}
-PyObject* KX_VehicleWrapper::PyGetConstraintType(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+PyObject* KX_VehicleWrapper::PyGetConstraintType(PyObject* args)
{
return PyInt_FromLong(m_vehicle->GetUserConstraintType());
}
@@ -299,38 +273,39 @@ PyObject* KX_VehicleWrapper::PyGetConstraintType(PyObject* self,
//python specific stuff
PyTypeObject KX_VehicleWrapper::Type = {
- PyObject_HEAD_INIT(&PyType_Type)
+ PyObject_HEAD_INIT(NULL)
0,
"KX_VehicleWrapper",
- sizeof(KX_VehicleWrapper),
+ 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_VehicleWrapper::Parents[] = {
&KX_VehicleWrapper::Type,
+ &PyObjectPlus::Type,
NULL
};
-PyObject* KX_VehicleWrapper::_getattr(const char *attr)
+PyObject* KX_VehicleWrapper::py_getattro(PyObject *attr)
{
//here you can search for existing data members (like mass,friction etc.)
- _getattr_up(PyObjectPlus);
+ py_getattro_up(PyObjectPlus);
}
-int KX_VehicleWrapper::_setattr(const char *attr,PyObject* pyobj)
+int KX_VehicleWrapper::py_setattro(PyObject *attr,PyObject* pyobj)
{
-
+ /* TODO - strange setattr, needs updating */
PyTypeObject* type = pyobj->ob_type;
int result = 1;
@@ -352,7 +327,7 @@ int KX_VehicleWrapper::_setattr(const char *attr,PyObject* pyobj)
result = 0;
}
if (result)
- result = PyObjectPlus::_setattr(attr,pyobj);
+ result = PyObjectPlus::py_setattro(attr,pyobj);
return result;
};