Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

IMeshBuffer.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2010 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_MESH_BUFFER_H_INCLUDED__
00006 #define __I_MESH_BUFFER_H_INCLUDED__
00007 
00008 #include "IReferenceCounted.h"
00009 #include "SMaterial.h"
00010 #include "aabbox3d.h"
00011 #include "S3DVertex.h"
00012 #include "SVertexIndex.h"
00013 #include "EHardwareBufferFlags.h"
00014 #include "EPrimitiveTypes.h"
00015 
00016 namespace irr
00017 {
00018 namespace scene
00019 {
00021 
00039         class IMeshBuffer : public virtual IReferenceCounted
00040         {
00041         public:
00042 
00044 
00045                 virtual video::SMaterial& getMaterial() = 0;
00046 
00048 
00049                 virtual const video::SMaterial& getMaterial() const = 0;
00050 
00052 
00053                 virtual video::E_VERTEX_TYPE getVertexType() const = 0;
00054 
00056 
00058                 virtual const void* getVertices() const = 0;
00059 
00061 
00063                 virtual void* getVertices() = 0;
00064 
00066 
00067                 virtual u32 getVertexCount() const = 0;
00068 
00070 
00071                 virtual video::E_INDEX_TYPE getIndexType() const =0;
00072 
00074 
00075                 virtual const u16* getIndices() const = 0;
00076 
00078 
00079                 virtual u16* getIndices() = 0;
00080 
00082 
00083                 virtual u32 getIndexCount() const = 0;
00084 
00086 
00087                 virtual const core::aabbox3df& getBoundingBox() const = 0;
00088 
00090 
00092                 virtual void setBoundingBox(const core::aabbox3df& box) = 0;
00093 
00095                 virtual void recalculateBoundingBox() = 0;
00096 
00098                 virtual const core::vector3df& getPosition(u32 i) const = 0;
00099 
00101                 virtual core::vector3df& getPosition(u32 i) = 0;
00102 
00104                 virtual const core::vector3df& getNormal(u32 i) const = 0;
00105 
00107                 virtual core::vector3df& getNormal(u32 i) = 0;
00108 
00110                 virtual const core::vector2df& getTCoords(u32 i) const = 0;
00111 
00113                 virtual core::vector2df& getTCoords(u32 i) = 0;
00114 
00116 
00121                 virtual void append(const void* const vertices, u32 numVertices, const u16* const indices, u32 numIndices) = 0;
00122 
00124 
00126                 virtual void append(const IMeshBuffer* const other) = 0;
00127 
00129                 virtual E_HARDWARE_MAPPING getHardwareMappingHint_Vertex() const = 0;
00130 
00132                 virtual E_HARDWARE_MAPPING getHardwareMappingHint_Index() const = 0;
00133 
00135                 virtual void setHardwareMappingHint( E_HARDWARE_MAPPING newMappingHint, E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX ) = 0;
00136 
00138                 virtual void setDirty(E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX) = 0;
00139 
00141 
00142                 virtual u32 getChangedID_Vertex() const = 0;
00143 
00145 
00146                 virtual u32 getChangedID_Index() const = 0;
00147         };
00148 
00149 } // end namespace scene
00150 } // end namespace irr
00151 
00152 #endif
00153 
00154 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Oct 24 12:41:57 2010 by Doxygen (1.6.2)