1 // Copyright (C) 2002-2012 Nikolaus Gebhardt 2 // This file is part of the "Irrlicht Engine". 3 // For conditions of distribution and use, see copyright notice in irrlicht.h 4 5 #ifndef __IRR_I_MESH_WRITER_H_INCLUDED__ 6 #define __IRR_I_MESH_WRITER_H_INCLUDED__ 7 8 #include "IReferenceCounted.h" 9 #include "EMeshWriterEnums.h" 10 11 namespace irr 12 { 13 namespace io 14 { 15 class IWriteFile; 16 } // end namespace io 17 18 namespace scene 19 { 20 class IMesh; 21 22 //! Interface for writing meshes 23 class IMeshWriter : public virtual IReferenceCounted 24 { 25 public: 26 27 //! Destructor ~IMeshWriter()28 virtual ~IMeshWriter() {} 29 30 //! Get the type of the mesh writer 31 /** For own implementations, use MAKE_IRR_ID as shown in the 32 EMESH_WRITER_TYPE enumeration to return your own unique mesh 33 type id. 34 \return Type of the mesh writer. */ 35 virtual EMESH_WRITER_TYPE getType() const = 0; 36 37 //! Write a static mesh. 38 /** \param file File handle to write the mesh to. 39 \param mesh Pointer to mesh to be written. 40 \param flags Optional flags to set properties of the writer. 41 \return True if sucessful */ 42 virtual bool writeMesh(io::IWriteFile* file, scene::IMesh* mesh, 43 s32 flags=EMWF_NONE) = 0; 44 45 // Writes an animated mesh 46 // for future use, no writer is able to write animated meshes currently 47 /* \return Returns true if sucessful */ 48 //virtual bool writeAnimatedMesh(io::IWriteFile* file, 49 // scene::IAnimatedMesh* mesh, 50 // s32 flags=EMWF_NONE) = 0; 51 }; 52 53 54 } // end namespace 55 } // end namespace 56 57 #endif 58 59