#ifndef __GEO_STRIPIFIER__ #define __GEO_STRIPIFIER__ #include #include #include "GeoBase.h" #include "GeoSerializable.h" #include "GeoMesh.h" namespace Geometry { /// Stripifier interface class. /** This module implements methods that extract triangle strips from triangle meshes. \n Inputs:\n - This module receives a pointer to a Geometry::Mesh object containing the model to be stripified. . Outputs:\n - The stripified mesh, contained also in a Geometry::Mesh object. . */ class MeshStripifier { public: /// Class constructor, receives as a parameter a const pointer to the object that describes a mesh. MeshStripifier (const Geometry::Mesh *); /// virtual class destructor. virtual ~MeshStripifier (void); /// Copy constructor //MeshStripifier(const MeshStripifier&); /// Assignment operator //MeshStripifier& operator =(const MeshStripifier&); /// Starts the stripification process. This is a pure virtual method and must be overloaded in a derived class that implements a stripification algorithm. virtual void Stripify()=0; /// Returns the stripified mesh. Mesh *GetMesh (); }; class CustomStripifier : public MeshStripifier { public: /// Class constructor, receives as a parameter a const pointer to the object that describes a mesh. CustomStripifier (const Geometry::Mesh *); /// Class destructor. virtual ~CustomStripifier (void); /// Copy constructor //CustomStripifier(const CustomStripifier&); /// Assignment operator //CustomStripifier& operator =(const CustomStripifier&); /// Starts the stripification process. This is a custom stripification method. void Stripify(); /// Returns the stripified mesh. Mesh *GetMesh (); }; } #endif