diff options
| author | git perforce import user <a@b> | 2016-10-25 12:29:14 -0600 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees> | 2016-10-25 18:56:37 -0500 |
| commit | 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch) | |
| tree | fa6485c169e50d7415a651bf838f5bcd0fd3bfbd /KaplaDemo/samples/sampleViewer3/SceneVehicle.h | |
| download | physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip | |
Initial commit:
PhysX 3.4.0 Update @ 21294896
APEX 1.4.0 Update @ 21275617
[CL 21300167]
Diffstat (limited to 'KaplaDemo/samples/sampleViewer3/SceneVehicle.h')
| -rw-r--r-- | KaplaDemo/samples/sampleViewer3/SceneVehicle.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/KaplaDemo/samples/sampleViewer3/SceneVehicle.h b/KaplaDemo/samples/sampleViewer3/SceneVehicle.h new file mode 100644 index 00000000..ae74a54f --- /dev/null +++ b/KaplaDemo/samples/sampleViewer3/SceneVehicle.h @@ -0,0 +1,98 @@ +#ifndef SCENE_VEHICLE_H +#define SCENE_VEHICLE_H + +#include "SceneKapla.h" +#include "vehicle/PxVehicleWheels.h" +#include "RawLoader.h" +#include "VehicleManager.h" +#include "VehicleController.h" +#include "VehicleControlInputs.h" +#include "VehicleCameraController.h" + +using namespace physx; + +// --------------------------------------------------------------------- +class SceneVehicle : public SceneKapla, public RAWImportCallback +{ +public: + SceneVehicle(PxPhysics* pxPhysics, PxCooking *pxCooking, bool isGrb, + Shader *defaultShader, const char *resourcePath, float slowMotionFactor); + + virtual ~SceneVehicle(){} + + /////////////////////////////////////////////////////////////////////////////// + + // Implements RAWImportCallback + virtual void newMaterial(const RAWMaterial&); + virtual void newMesh(const RAWMesh&); + virtual void newTexture(const RAWTexture&); + virtual void newShape(const RAWShape&){} + virtual void newHelper(const RAWHelper&){} + + /////////////////////////////////////////////////////////////////////////////// + + + virtual void handleMouseButton(int button, int state, int x, int y); + virtual void handleMouseMotion(int x, int y); + + virtual void handleKeyDown(unsigned char key, int x, int y); + virtual void handleKeyUp(unsigned char key, int x, int y); + virtual void handleSpecialKey(unsigned char key, int x, int y); + + virtual void handleGamepadButton(int button, bool state); + virtual void handleGamepadAxis(int axis, float x); + virtual void handleGamepadTrigger(int trigger, float x); + + virtual void getCamera(PxVec3& pos, PxVec3& dir); + + virtual void preSim(float dt); + virtual void postSim(float dt); + + virtual void render(bool useShader); + + virtual void customizeSceneDesc(PxSceneDesc& desc); + + virtual void onInit(PxScene* pxScene); + + virtual void setScene(PxScene* pxScene); + +private: + + void renderCar(bool useShader); + void createStandardMaterials(); + void createVehicle(PxPhysics* pxPhysics); + void createTerrain(PxU32 size, float width, float chaos); + void importRAWFile(const char* relativePath, PxReal scale, bool recook = false); + + enum + { + MAX_NUM_INDEX_BUFFERS = 16 + }; + PxU32 mNbIB; + PxU32* mIB[MAX_NUM_INDEX_BUFFERS]; + PxU32 mNbTriangles[MAX_NUM_INDEX_BUFFERS]; + PxU32 mRenderMaterial[MAX_NUM_INDEX_BUFFERS]; + + PxVehicleDrivableSurfaceType mVehicleDrivableSurfaceTypes[MAX_NUM_INDEX_BUFFERS]; + PxMaterial* mStandardMaterials[MAX_NUM_INDEX_BUFFERS]; + + PxMaterial* mChassisMaterialDrivable; + PxMaterial* mChassisMaterialNonDrivable; + + VehicleManager mVehicleManager; + VehicleController mVehicleController; + VehicleControlInputs mControlInputs; + VehicleCameraController mCameraController; + + //Terrain + PxF32* mTerrainVB; + PxU32 mNbTerrainVerts; + + //render car + GLuint mTextureIds[2]; + ShaderMaterial mCarPartMaterial[2]; + + PxU32 mNumMaterials; + PxU32 mNumTextures; +}; +#endif // SCENE_BOXES_H |