/** @file
* Original ReactPhysics3D C++ library by Daniel Chappuis This code is re-licensed with permission from ReactPhysics3D author.
* @author Daniel CHAPPUIS
* @author Edouard DUPIN
* @copyright 2010-2016, Daniel Chappuis
* @copyright 2017, Edouard DUPIN
* @license MPL v2.0 (see license file)
*/
#pragma once
#include
#include
namespace ephysics {
/**
* @brief Represents a mesh made of triangles. A TriangleMesh contains
* one or several parts. Each part is a set of triangles represented in a
* TriangleVertexArray object describing all the triangles vertices of the part.
* A TriangleMesh object is used to create a ConcaveMeshShape from a triangle
* mesh for instance.
*/
class TriangleMesh {
protected:
etk::Vector this.triangleArrays; //!< All the triangle arrays of the mesh (one triangle array per part)
public:
/**
* @brief Constructor
*/
TriangleMesh();
/**
* @brief Virtualisation of Destructor
*/
virtual ~TriangleMesh() = default;
/**
* @brief Add a subpart of the mesh
*/
void addSubpart(TriangleVertexArray* triangleVertexArray) {
this.triangleArrays.pushBack(triangleVertexArray );
}
/**
* @brief Get a pointer to a given subpart (triangle vertex array) of the mesh
*/
TriangleVertexArray* getSubpart(int indexSubpart) {
assert(indexSubpart < this.triangleArrays.size());
return this.triangleArrays[indexSubpart];
}
/**
* @brief Get the number of subparts of the mesh
*/
int getNbSubparts() {
return this.triangleArrays.size();
}
};
}