source: GTP/trunk/Lib/Illum/GPUObscurancesGT/include/CMesh.h @ 953

Revision 953, 2.8 KB checked in by igarcia, 18 years ago (diff)
Line 
1//========================================
2//      Class abstracting the geometric mesh.
3//      Nicolau Sunyer & Sergi Funtané (10/13/2005).
4//      Universitat de Girona.
5//========================================
6
7#ifndef CMESH_H
8#define CMESH_H
9
10//Includes.
11#include "Ogre.h"
12#include "OgreXMLMeshSerializer.h"
13#include "OgreMeshSerializer.h"
14#include "OgreXMLSkeletonSerializer.h"
15#include "OgreSkeletonSerializer.h"
16#include "OgreXMLPrerequisites.h"
17#include "OgreDefaultHardwareBufferManager.h"
18#include <iostream>
19#include <sys/stat.h>
20#include <cmath>
21//#include <glut.h>
22//#include <ctime>
23//#include "structsVisualCAD.h"
24#include "SNStr.h"
25
26//progress bar
27#include <wx/progdlg.h>
28//End Includes.
29
30using namespace std;
31using namespace Ogre;
32
33struct XmlOptions
34{
35    String source;
36    String dest;
37    String sourceExt;
38    String destExt;
39    String logFile;
40    bool interactiveMode;
41    unsigned short numLods;
42    Real lodDist;
43    Real lodPercent;
44    size_t lodFixed;
45    bool usePercent;
46    bool generateEdgeLists;
47    bool generateTangents;
48    bool reorganiseBuffers;
49        bool optimiseAnimations;
50        bool quietMode;
51        bool d3d;
52        bool gl;
53        Serializer::Endian endian;
54};
55
56
57class CVert                                                                     // Vert Class.
58{
59public:
60        float x;                                                                // X Component
61        float y;                                                                // Y Component
62        float z;                                                                // Z Component
63};
64typedef CVert CVec;                                                             // Synonimous Definitions.
65
66class CColor                                                                    // Color Class.
67{
68public:
69        unsigned char r;                                                                // R Component
70        unsigned char g;                                                                // G Component
71        unsigned char b;                                                                // B Component
72};
73
74class CColorf                                                                   // Color2 Class.
75{
76public:
77        float r;                                                                // R Component.
78        float g;                                                                // G Component.
79        float b;                                                                // B Component.
80};
81
82class CTexCoord                                                                 //TexCoord Class.
83{
84public:
85        float u;                                                                // U Component.
86        float v;                                                                // V Component.
87};
88
89class CSphere                                                                   //Sphere Class.
90{
91
92public:
93        CVert center;                                                   // Center.
94        float radius;                                                   // Radius.
95};
96
97
98//Class Definition.
99class CMesh
100{
101public:
102        CMesh();                                                                // Mesh Constructor
103        ~CMesh();                                                               // Mesh Destructor
104
105        void LoadMesh(char *argv);
106        void FreeMem();
107        void ShowMesh(char *filename);
108
109        snObject m_pObject;             //Internal Format.     
110
111private:       
112        void parseArgs(char *argv, XmlOptions &opts);
113        void meshToXML(XmlOptions opts);
114        float getValue(const char *string, int &i);
115        void XMLToSNStr(char *name);
116        void NormalizeIt(wxProgressDialog &dialog);
117
118        LogManager* logMgr;
119        Math* mth;
120        MaterialManager* matMgr;
121        SkeletonManager* skelMgr;
122        MeshSerializer* meshSerializer;
123        XMLMeshSerializer* xmlMeshSerializer;
124        SkeletonSerializer* skeletonSerializer;
125        XMLSkeletonSerializer* xmlSkeletonSerializer;
126        DefaultHardwareBufferManager *bufferManager;
127        MeshManager* meshMgr;
128        ResourceGroupManager* rgm;
129
130
131};
132
133
134#endif // CMESH_H
Note: See TracBrowser for help on using the repository browser.