#ifndef __IVMeshData_H__ #define __IVMeshData_H__ #include enum mIVReaderenderOperationType { IV_ROT_INVALID = -1, IV_ROT_TRIANGLE_STRIP = 1, IV_ROT_TRIANGLE_LIST = 3, IV_ROT_FACE_SET = 4, }; class __declspec(dllexport) IVMeshData { public: IVMeshData(); ~IVMeshData(); IVMeshData *expand(); void collapse(); Ogre::Real *vertices, *normals, *texCoords, *indices, *normalIndices, *texCoordIndices; int vcnt, ncnt, tcnt, icnt, nicnt, ticnt; mIVReaderenderOperationType roType; Ogre::AxisAlignedBox *boundingBox; private: int getSeparatorCnt(Ogre::Real *data, int end); Ogre::Real *expandTriangleStripIndices(Ogre::Real *indices, int icnt, int *icntOut); Ogre::Real *expandFaceSetIndices(Ogre::Real *indices, int icnt, int *icntOut); int getNextFaceSize(int start); Ogre::AxisAlignedBox *calcBoundingBox(); }; #endif