aboutsummaryrefslogtreecommitdiff
path: root/KaplaDemo/samples/sampleViewer3/Fracture/SimScene.h
diff options
context:
space:
mode:
authorgit perforce import user <a@b>2016-10-25 12:29:14 -0600
committerSheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees>2016-10-25 18:56:37 -0500
commit3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch)
treefa6485c169e50d7415a651bf838f5bcd0fd3bfbd /KaplaDemo/samples/sampleViewer3/Fracture/SimScene.h
downloadphysx-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.h80
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