// ----------------------------------------------------------------------------
void PhysVehicle3D::Render()
{
	PCylinder wheel;

	wheel.color = Blue;

	for(int i = 0; i < vehicle->getNumWheels(); ++i)
	{
		wheel.radius = info.wheels[0].radius;
		wheel.height = info.wheels[0].width;

		vehicle->updateWheelTransform(i);
		vehicle->getWheelInfo(i).m_worldTransform.getOpenGLMatrix(&wheel.transform);

		wheel.Render();
	}

	Cube chassis(info.chassis_size.x, info.chassis_size.y, info.chassis_size.z);
	vehicle->getChassisWorldTransform().getOpenGLMatrix(&chassis.transform);
	btQuaternion q = vehicle->getChassisWorldTransform().getRotation();
	btVector3 offset(info.chassis_offset.x, info.chassis_offset.y, info.chassis_offset.z);
	offset = offset.rotate(q.getAxis(), q.getAngle());

	chassis.transform.M[12] += offset.getX();
	chassis.transform.M[13] += offset.getY();
	chassis.transform.M[14] += offset.getZ();


	chassis.Render();
}
Beispiel #2
0
int main(){
	Composite car("Car");
	Composite chassis("Chassis");
	Element weel1("weel1");
	Element weel2("weel2");
	Element weel3("weel3");
    Element weel4("weel4");
	Element sweel("Steering weel");
	chassis.add(weel1);
	chassis.add(weel2);
	chassis.add(weel3);
	chassis.add(weel4);
	chassis.add(sweel);
	Composite engine("Engine");
	Element splugs("spark plugs");
	Element pistons("Pistons");
	Element gbox("Gear Box");
	engine.add(splugs);
	engine.add(pistons);
	engine.add(gbox);
	car.add(engine);
	car.add(chassis);
	car.operation();
	std::cout<<std::endl<<"END OF ALL COMPOSITES"<<std::endl;
}