#ifndef _Mesh_H__ #define _Mesh_H__ #include #include "Plane3.h" namespace GtpVisibilityPreprocessor { /** Patch used as an element of the mesh */ class Patch { public: Patch():mVertices() {} protected: /// list of vertex pointers vector mVertices; }; /** Mesh containing polygonal patches */ class Mesh { public: /// default vertex container for Mesh typedef std::vector VertexContainer; /// default patch container for Mesh typedef std::vector PatchContainer; /// Default constructor Mesh():mVertices(), mPatches() {} /// Constructor with container preallocation Mesh(const int vertices, const int patches):mVertices(), mPatches() { mVertices.reserve(vertices); mPatches.reserve(patches); } protected: /** Vertices forming the mesh */ VertexContainer mVertices; /** Patches forming the mesh */ PatchContainer mPatches; }; }; #endif