// ---------------------------------------------------------------------------- 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(); }
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; }