Hi hiran.
UpdateCarChassisCollisions()
Check for dynamics objects(cars) collisions.
Code:
collision.CollideDynamicObjects(cartocarcollisions);
Set contacts (contact is processed in CARDYNAMICS:
rocessContact if cars are not separating v * n > 0).
Code:
car.SetDynamicChassisContact
Iterate through cars and check for collisions with the track geometry..
Code:
collision.CollideObject(car.GetCollisionObject(), contactlist, settings);
Set contacts.
Code:
if ((colpt - colcenter).dot(normal) <= 0)
car.SetChassisContact(colpt, normal, depth, collision_rate);
So you have to watch for SetDynamicChassisContact and SetChassisContact to set isColChassis.
UpdateCarWheelCollisions(...)
Wheel ray vs track bezier patch followed by ray vs track geometry.
If (beziercol) the wheel is on track. If (!contactlist.empty()) wheel might collide with track geometry (doesn't mean that there is a contact).
UpdateCarWheelCollisionsWithSurfaces(...)
Can't comment on this one. I think it was merged into UpdateCarWheelCollisions(). What rev are you using?
UpdateCarWheelCollisionsFromCached(...)
Interpolate wheel contact points. Not very interesting for you I think.