00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _OGREBULLET_Vehicles_Demo__H
00014 #define _OGREBULLET_Vehicles_Demo__H
00015
00016 #include "OgreBulletDynamics.h"
00017 #include "OgreBulletListener.h"
00018
00019
00020 class Vehicles_Demo : public OgreBulletListener
00021 {
00022 public:
00023
00024 Vehicles_Demo() : OgreBulletListener()
00025 {
00026 mName = "Vehicle Test Scene";
00027 };
00028 virtual ~Vehicles_Demo(){};
00029
00030
00031 void init(Ogre::Root *root, Ogre::RenderWindow *win, OgreBulletApplication *application);
00032
00033 void keyPressed(BULLET_KEY_CODE key);
00034 void keyReleased(BULLET_KEY_CODE key);
00035
00036 bool frameStarted(Ogre::Real elapsedTime);
00037
00038 private:
00039 OgreBulletDynamics::WheeledRigidBody *mCarChassis;
00040 OgreBulletDynamics::VehicleTuning *mTuning;
00041 OgreBulletDynamics::VehicleRayCaster *mVehicleRayCaster;
00042 OgreBulletDynamics::RaycastVehicle *mVehicle;
00043
00044 Ogre::Entity *mChassis;
00045 Ogre::Entity *mWheels[4];
00046 Ogre::SceneNode *mWheelNodes[4];
00047
00048
00049 int mWheelsEngine[4];
00050 int mWheelsEngineCount;
00051 int mWheelsSteerable[4];
00052 int mWheelsSteerableCount;
00053
00054 float mEngineForce;
00055 float mSteering;
00056
00057 int mWheelEngineStyle;
00058 int mWheelSteeringStyle;
00059
00060
00061 bool mSteeringLeft;
00062 bool mSteeringRight;
00063 };
00064
00065
00066 #endif //_OGREBULLET_Vehicles_Demo__H