source: GTP/trunk/Lib/Geom/shared/GTGeometry/include/GeoMeshStripifier.h @ 841

Revision 841, 2.7 KB checked in by gumbau, 19 years ago (diff)
Line 
1/*      ==========================================================================
2 *      (C) 2005 Universidad Jaime I de Castellón
3 *      ==========================================================================
4 *      PROYECT:        GAME TOOLS
5 *      ==========================================================================*/
6/**     CONTENT:        Make triangle strips meshes from triangle list meshes.
7        *
8        *
9        *       @file   GeoMeshStripifier.h
10/*===========================================================================*/
11
12#ifndef __GEO_STRIPIFIER__
13#define __GEO_STRIPIFIER__
14
15#include <GeoMesh.h>
16
17namespace Geometry
18{
19
20        /// Stripifier interface class.
21        /** This module implements methods that extract triangle strips from triangle meshes.
22                \n
23
24Inputs:\n
25        - This module receives a pointer to a Geometry::Mesh object containing the model to be stripified.
26        .
27
28Outputs:\n
29        - The stripified mesh, contained also in a Geometry::Mesh object.
30        .
31
32        */
33        class MeshStripifier
34        {
35                public:
36                        /// Class constructor, receives as a parameter a const pointer to the object that describes a mesh.
37                        MeshStripifier ();
38                        MeshStripifier (const Geometry::Mesh *);
39
40                        /// virtual class destructor.
41                        virtual ~MeshStripifier (void);
42
43                        /// Copy constructor
44                        //MeshStripifier(const MeshStripifier&);
45
46                        /// Assignment operator
47                        //MeshStripifier& operator =(const MeshStripifier&);
48
49                        /// Starts the stripification process. This is a pure virtual method and must be overloaded in a derived class that implements a stripification algorithm.
50                        virtual int Stripify()=0;
51
52                        /// Returns the stripified mesh.
53                        Mesh *  GetMesh ();
54
55                        // Sets what is the mesh that stores the leaves
56                        void setSubMeshLeaves(size_t);
57
58                protected:
59
60                        //      Progress bar function.
61                        Geometry::TIPOFUNC mUPB;
62
63                        //      Mesh object.
64                        Geometry::Mesh          *mGeoMesh;
65
66                        //      Index of the submesh leaves.
67                        size_t  mSubMeshLeaves;
68
69        };
70
71        class CustomStripifier : public MeshStripifier
72        {
73                public:
74                       
75                        /// Class constructor, receives as a parameter a const pointer to the object that describes a mesh.
76                        CustomStripifier();
77
78                        CustomStripifier(       const Geometry::Mesh    *geoMesh);
79
80                        /// Class destructor.
81                        ~CustomStripifier(void);
82
83                        /// Copy constructor
84                        //CustomStripifier(const CustomStripifier&);
85
86                        /// Assignment operator
87                        //CustomStripifier& operator =(const CustomStripifier&);
88
89                        /// Starts the stripification process. This is a custom stripification method.
90                        int Stripify();
91
92                        /// Returns the stripified mesh.
93                        Mesh *  GetMesh();
94                       
95                        //      Set the progress bar function.
96                        void    SetProgressFunc(Geometry::TIPOFUNC upb);
97
98                        // Sets what is the submesh that stores the leaves
99                        void SetSubMeshLeaves(size_t    submesh);
100        };
101
102}
103
104#endif
105
Note: See TracBrowser for help on using the repository browser.