TDME2  1.9.200
TerrainMesh.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <vector>
5 
6 #include <reactphysics3d/collision/TriangleMesh.h>
7 #include <reactphysics3d/collision/TriangleVertexArray.h>
8 
9 #include <tdme/tdme.h>
10 #include <tdme/engine/fwd-tdme.h>
14 #include <tdme/engine/Transform.h>
15 
16 using std::unique_ptr;
17 using std::vector;
18 
24 
25 /**
26  * Terrain mesh physics primitive
27  * @author Andreas Drewke
28  */
30  : public BoundingVolume
31 {
32 private:
33  vector<float> vertices;
34  vector<int32_t> indices;
35  unique_ptr<reactphysics3d::TriangleVertexArray> triangleVertexArray;
36  reactphysics3d::TriangleMesh* triangleMesh { nullptr };
37 
38  // overridden methods
39  void destroyCollisionShape() override;
40  void createCollisionShape(World* world) override;
41 
42 public:
43  // forbid class copy
45 
46  /**
47  * Public constructor
48  */
49  TerrainMesh();
50 
51  /**
52  * Public constructor
53  * @param model model
54  * @param transform transform
55  */
56  TerrainMesh(ObjectModel* model, const Transform& transform = Transform());
57 
58  /**
59  * Destructor
60  */
61  ~TerrainMesh();
62 
63  // overrides
64  void setScale(const Vector3& scale) override;
65  void setTransform(const Transform& transform) override;
66  BoundingVolume* clone() const override;
67 };
Transform which contain scale, rotations and translation.
Definition: Transform.h:29
Dynamic physics world class.
Definition: World.h:38
Terrain mesh physics primitive.
Definition: TerrainMesh.h:31
reactphysics3d::TriangleMesh * triangleMesh
Definition: TerrainMesh.h:36
BoundingVolume * clone() const override
Clones this bounding volume.
unique_ptr< reactphysics3d::TriangleVertexArray > triangleVertexArray
Definition: TerrainMesh.h:35
void setTransform(const Transform &transform) override
Transform bounding volume from given transform.
Definition: TerrainMesh.cpp:74
void destroyCollisionShape() override
Destroy collision shape.
Definition: TerrainMesh.cpp:78
void setScale(const Vector3 &scale) override
Set local scale.
Definition: TerrainMesh.cpp:65
void createCollisionShape(World *world) override
Create collision shap.
Definition: TerrainMesh.cpp:88
Triangle entity, this is not directly connectable with physics engine.
Definition: Triangle.h:18
Vector3 class representing vector3 mathematical structure and operations with x, y,...
Definition: Vector3.h:20
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6