Ejemplo n.º 1
0
void RaycastVehicle::ResetWheels()
{
    ResetSuspension();
    for (int i = 0; i < GetNumWheels(); i++)
    {
        UpdateWheelTransform(i, true);
        Vector3 origin = GetWheelPosition(i);
        Node* wheelNode = GetWheelNode(i);
        wheelNode->SetWorldPosition(origin);
    }
}
Ejemplo n.º 2
0
void CarSuspension::SetDisplacement ( const btScalar & value )
{
	last_displacement = displacement;
	displacement = value;

	if (displacement > info.travel)
		displacement = info.travel;
	if (displacement < 0)
		displacement = 0;

	overtravel = value - info.travel;
	if (overtravel < 0)
		overtravel = 0;

	//enforce maximum compression velocity
	/*if (displacement - last_displacement < -max_compression_velocity*dt)
		displacement = last_displacement - max_compression_velocity*dt;
	if (displacement - last_displacement > max_compression_velocity*dt)
		displacement = last_displacement + max_compression_velocity*dt;*/

	// update wheel position
	position = GetWheelPosition(displacement / info.travel);
}