#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 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; } // 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