#ifndef __GEO_BASE__ #define __GEO_BASE__ #include /// This namespace contains all classes related to geometry operations. /** Geometry namespace includes classes for the following modules: - Serialization: for file loading and saving. - Simplification: for mesh simplification algorithms. - Stripification: methods for finding triangle strips from a mesh. - Construction: builds a LODStrip file from the output of simplification and stripification modules. . */ namespace Geometry { //Basic types typedef float Real; typedef unsigned int Index; typedef int int32; typedef unsigned int uint32; typedef unsigned short uint16; typedef std::string String; //Vertex Info static const unsigned short VERTEX_EMPTY = 0x00; static const unsigned short VERTEX_POSITION = 0x01; static const unsigned short VERTEX_NORMAL = 0x02; static const unsigned short VERTEX_TEXCOORDS = 0x04; static const unsigned short VERTEX_ALL = VERTEX_POSITION | VERTEX_NORMAL | VERTEX_TEXCOORDS; //Mmesh primitives typedef enum { GEO_TRIANGLE_LIST, GEO_TRIANGLE_STRIPS } MeshType; //OSCAR struct VertexBoneAssignment { unsigned int vertexIndex; unsigned short boneIndex; Real weight; }; struct MeshBounds { float maxX; float maxY; float maxZ; float minX; float minY; float minZ; float radius; float scaleFactor; }; // 2006-02-14 // Gustavo Puche. // Needed to update the progress bar. typedef float updateProgressBar(float); typedef updateProgressBar *TIPOFUNC; //-----------------------------------// } // end of Geometry namespace #define GEO_ENDIAN_LITTLE 1 #define GEO_ENDIAN_BIG 2 // Default = Little endian (define CONFIG_BIG_ENDIAN to change it) #ifdef CONFIG_BIG_ENDIAN # define GEO_ENDIAN GEO_ENDIAN_BIG #else # define GEO_ENDIAN GEO_ENDIAN_LITTLE #endif #endif