00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _OGREBULLET_Terrain_Demo__H
00014 #define _OGREBULLET_Terrain_Demo__H
00015
00016 #include "OgreBulletDynamics.h"
00017 #include "OgreBulletListener.h"
00018
00019
00020 class Terrain_Demo : public OgreBulletListener
00021 {
00022 public:
00023
00024 Terrain_Demo() : OgreBulletListener()
00025 {
00026 mName = "Terrain Test Scene";
00027 };
00028 virtual ~Terrain_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
00040
00041
00042 OgreBulletCollisions::HeightmapCollisionShape *mTerrainShape;
00043
00044
00045 OgreBulletDynamics::WheeledRigidBody *mCarChassis;
00046 OgreBulletDynamics::VehicleTuning *mTuning;
00047 OgreBulletDynamics::VehicleRayCaster *mVehicleRayCaster;
00048 OgreBulletDynamics::RaycastVehicle *mVehicle;
00049
00050 Ogre::Entity *mChassis;
00051 Ogre::Entity *mWheels[4];
00052 Ogre::SceneNode *mWheelNodes[4];
00053
00054
00055 int mWheelsEngine[4];
00056 int mWheelsEngineCount;
00057 int mWheelsSteerable[4];
00058 int mWheelsSteerableCount;
00059
00060 float mEngineForce;
00061 float mSteering;
00062
00063 int mWheelEngineStyle;
00064 int mWheelSteeringStyle;
00065
00066
00067 bool mSteeringLeft;
00068 bool mSteeringRight;
00069 };
00070
00071
00072 #endif //_OGREBULLET_Vehicles_Demo__H