#ifndef __GEO_LODSTRIPS_CONSTRUCTOR__ #define __GEO_LODSTRIPS_CONSTRUCTOR__ #include "GeoMeshSimpSequence.h" #include "GeoMesh.h" namespace Geometry { /// Construction module for general multiresolution models. /** This module stores general mesh multiresolution representations using our own specific file format. It takes as inputs the strips provided by the stripification module and the edge collapse sequence computed by the simplification module. It builds a multiresolution representation and generates a LODStrips file.\n The LodStrips file begins with a line stating the name of the mesh file it refers to. This filetype has three different kinds of records storing the information required for the multiresolution model. All the records of the same kind are output following the right order. Those lines starting with a 'd' include:\n -# Strip to modify.\n -# Number of collapses.\n -# Number of vertex repetitions.\n -# Number of edge repetitions.\n . \n Those beginning with a 'p' include the number of strips affected by a LOD change.\n\n And finally, the ones starting with a 'b' include all the information needed for collapses and repetitions. \n\n Inputs:\n - A strip set provided by the stripification module (Geometry::Mesh class).\n - An edge collapse sequence computed by the simplification module (Geometry::MeshSimplificationSequence class). . Outputs:\n - The module writes a file with the LODStrips information. - It also writes the LODStrips mesh into a file. . */ class LodStripsConstructor : public Serializable { public: /// Constructor, gets a stripified mesh and a simplification sequence, and generates the multiresolution model. LodStripsConstructor(const Mesh *,const MeshSimplificationSequence *); /// Destructor ~LodStripsConstructor(void); /// Copy constructor //LodStripsConstructor(const LodStripsConstructor&); /// Assignment operator //LodStripsConstructor& operator =(const LodStripsConstructor&); /// Saves the multiresolution model into a LODStrip file and the LODStrips mesh using the serializer given as a parameter. void Save (Serializer &s); /// Load void Load(Serializer &s); }; } #endif