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/Fracture/SimScene.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/Fracture/SimScene.h')
| -rw-r--r-- | KaplaDemo/samples/sampleViewer3/Fracture/SimScene.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/KaplaDemo/samples/sampleViewer3/Fracture/SimScene.h b/KaplaDemo/samples/sampleViewer3/Fracture/SimScene.h new file mode 100644 index 00000000..9befd850 --- /dev/null +++ b/KaplaDemo/samples/sampleViewer3/Fracture/SimScene.h @@ -0,0 +1,80 @@ +#ifndef SIM_SCENE +#define SIM_SCENE + +#include "Shader.h" +#include "PxPhysics.h" +#include "PxCooking.h" +#include "PxSimulationEventCallback.h" +#include <PsArray.h> +#include "ConvexRenderer.h" + +#include "SimSceneBase.h" + +using namespace physx::fracture; + +class TerrainMesh; +struct ParticlesDesc; +class Particles; +class RegularCell3D; +class Actor; + +class SimScene : public base::SimScene +{ +public: + static SimScene* createSimScene(PxPhysics *pxPhysics, PxCooking *pxCooking, bool isGrbScene, float minConvexSize, PxMaterial* defaultMat, const char *resourcePath); +protected: + SimScene(PxPhysics *pxPhysics, PxCooking *pxCooking, bool isGrbScene, float minConvexSize, PxMaterial* defaultMat, const char *resourcePath); +public: + virtual ~SimScene(); + + virtual void createSingletons(); + + virtual base::Actor* createActor(); + virtual base::Convex* createConvex(); + virtual base::Compound* createCompound(PxReal contactOffset = 0.005f, PxReal restOffset = -0.001f); + + virtual void clear(); + + virtual void profileBegin(const char* name); + virtual void profileEnd(const char* name); + + bool addXml(const std::string &path, const std::string &filename, bool ignoreVisualMesh, float scale, const PxTransform &trans, + Shader* defaultShader, const ShaderMaterial &defaultMat); + + void postSim(float dt, RegularCell3D* fluidSim); + + //Particles* getParticles() { return mParticles; } + + ConvexRenderer &getConvexRenderer() { return mConvexRenderer; } + + void draw(bool useShader); + void setShaderMaterial(Shader* shader, const ShaderMaterial& mat) {this->mShader = shader; this->mShaderMat = mat;} + void setFractureForceThreshold(float threshold) { mFractureForceThreshold = threshold; } + void createRenderBuffers(); + void dumpSceneGeometry(); + + void loadAndCreateTextureArrays(); + + std::vector<std::string> diffuseTexNames; + std::vector<std::string> bumpTexNames; + std::vector<std::string> specularTexNames; + std::vector<std::string> emissiveReflectSpecPowerTexNames; + +protected: + + virtual void create3dTexture(); + virtual void updateConvexesTex(); + + GLuint diffuseTexArray, bumpTexArray, specularTexArray, emissiveReflectSpecPowerTexArray; + + GLuint loadTextureArray(std::vector<std::string>& names); + + //Particles *mParticles; + + ConvexRenderer mConvexRenderer; + + Shader* mShader; + ShaderMaterial mShaderMat; +}; + +#endif |