would you consider adding this code to CustomMultiBodyVehicle:
In CustomMultiBodyVehicle.h file:
- Code: Select all
int AddSingleSuspensionTireFromBody (NewtonBody* tireBody, dFloat suspensionLength, dFloat springConst, dFloat springDamper);
In CustomMultiBodyVehicle.cpp file:
- Code: Select all
int CustomMultiBodyVehicle::AddSingleSuspensionTireFromBody (NewtonBody* tireBody, dFloat suspensionLength, dFloat springConst, dFloat springDamper)
{
float radius = 0; // not used in CustomMultiBodyVehicleTire
m_tires[m_tiresCount] = new CustomMultiBodyVehicleTire (GetBody0(), tireBody, suspensionLength, springConst, springDamper, radius);
m_tiresCount ++;
return m_tiresCount - 1;
}
In JointLibrary.h
- Code: Select all
JOINTLIBRARY_API int CustomMultiBodyVehicleAddTireFromBody (CustomJoint *car, NewtonBody* tireBody, dFloat suspensionLength, dFloat springConst, dFloat springDamper);
In JointLibrary.cpp
- Code: Select all
int CustomMultiBodyVehicleAddTireFromBody (CustomJoint *car, NewtonBody* tireBody, dFloat suspensionLength, dFloat springConst, dFloat springDamper)
{
return ((CustomMultiBodyVehicle*)car)->AddSingleSuspensionTireFromBody( tireBody, suspensionLength, springConst, springDamper);
}
I am creating the tire body myself during scene loading. So I can't use the CustomMultiBodyVehicle code as-is and have to compile my own version of JointLibrary. The proposed patch adds a second function to add your own body instead of letting the joint create one. I wasn't sure about the radius parameter, so I've just set to 0.
What do you think?
-Matthias