// Copyright (C) 2002-2011 Nikolaus Gebhardt // This file is part of the "Irrlicht Engine". // For conditions of distribution and use, see copyright notice in irrlicht.h #ifndef __C_LWO_MESH_FILE_LOADER_H_INCLUDED__ #define __C_LWO_MESH_FILE_LOADER_H_INCLUDED__ #include "IMeshLoader.h" #include "SMeshBuffer.h" #include "irrString.h" namespace irr { namespace io { class IReadFile; class IFileSystem; } // end namespace io namespace scene { struct SMesh; class ISceneManager; //! Meshloader capable of loading Lightwave 3D meshes. class CLWOMeshFileLoader : public IMeshLoader { public: //! Constructor CLWOMeshFileLoader(scene::ISceneManager* smgr, io::IFileSystem* fs); //! destructor virtual ~CLWOMeshFileLoader(); //! returns true if the file maybe is able to be loaded by this class //! based on the file extension (e.g. ".bsp") virtual bool isALoadableFileExtension(const io::path& filename) const; //! creates/loads an animated mesh from the file. //! \return Pointer to the created mesh. Returns 0 if loading failed. //! If you no longer need the mesh, you should call IAnimatedMesh::drop(). //! See IUnknown::drop() for more information. virtual IAnimatedMesh* createMesh(io::IReadFile* file); private: struct tLWOMaterial; bool readFileHeader(); bool readChunks(); void readObj1(u32 size); void readTagMapping(u32 size); void readVertexMapping(u32 size); void readDiscVertexMapping (u32 size); void readObj2(u32 size); void readMat(u32 size); u32 readString(core::stringc& name, u32 size=0); u32 readVec(core::vector3df& vec); u32 readVX(u32& num); u32 readColor(video::SColor& color); video::ITexture* loadTexture(const core::stringc& file); scene::ISceneManager* SceneManager; io::IFileSystem* FileSystem; io::IReadFile* File; SMesh* Mesh; core::array<core::vector3df> Points; core::array<core::array<u32> > Indices; core::array<core::stringc> UvName; core::array<core::array<u32> > UvIndex; core::array<core::stringc> DUvName; core::array<core::array<u32> > VmPolyPointsIndex; core::array<core::array<core::vector2df> > VmCoordsIndex; core::array<u16> MaterialMapping; core::array<core::array<core::vector2df> > TCoords; core::array<tLWOMaterial*> Materials; core::array<core::stringc> Images; u8 FormatVersion; }; } // end namespace scene } // end namespace irr #endif
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 85 invités en ligne Aucun membre connecté RSS Feed |