Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials
IMeshBuffer.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2010 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 __I_MESH_BUFFER_H_INCLUDED__
6 #define __I_MESH_BUFFER_H_INCLUDED__
7 
8 #include "IReferenceCounted.h"
9 #include "SMaterial.h"
10 #include "aabbox3d.h"
11 #include "S3DVertex.h"
12 #include "SVertexIndex.h"
13 #include "EHardwareBufferFlags.h"
14 #include "EPrimitiveTypes.h"
15 
16 namespace irr
17 {
18 namespace scene
19 {
21 
39  class IMeshBuffer : public virtual IReferenceCounted
40  {
41  public:
42 
44 
45  virtual video::SMaterial& getMaterial() = 0;
46 
48 
49  virtual const video::SMaterial& getMaterial() const = 0;
50 
52 
53  virtual video::E_VERTEX_TYPE getVertexType() const = 0;
54 
56 
58  virtual const void* getVertices() const = 0;
59 
61 
63  virtual void* getVertices() = 0;
64 
66 
67  virtual u32 getVertexCount() const = 0;
68 
70 
71  virtual video::E_INDEX_TYPE getIndexType() const =0;
72 
74 
75  virtual const u16* getIndices() const = 0;
76 
78 
79  virtual u16* getIndices() = 0;
80 
82 
83  virtual u32 getIndexCount() const = 0;
84 
86 
87  virtual const core::aabbox3df& getBoundingBox() const = 0;
88 
90 
92  virtual void setBoundingBox(const core::aabbox3df& box) = 0;
93 
95  virtual void recalculateBoundingBox() = 0;
96 
98  virtual const core::vector3df& getPosition(u32 i) const = 0;
99 
101  virtual core::vector3df& getPosition(u32 i) = 0;
102 
104  virtual const core::vector3df& getNormal(u32 i) const = 0;
105 
107  virtual core::vector3df& getNormal(u32 i) = 0;
108 
110  virtual const core::vector2df& getTCoords(u32 i) const = 0;
111 
113  virtual core::vector2df& getTCoords(u32 i) = 0;
114 
116 
121  virtual void append(const void* const vertices, u32 numVertices, const u16* const indices, u32 numIndices) = 0;
122 
124 
126  virtual void append(const IMeshBuffer* const other) = 0;
127 
130 
133 
135  virtual void setHardwareMappingHint( E_HARDWARE_MAPPING newMappingHint, E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX ) = 0;
136 
138  virtual void setDirty(E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX) = 0;
139 
141 
142  virtual u32 getChangedID_Vertex() const = 0;
143 
145 
146  virtual u32 getChangedID_Index() const = 0;
147  };
148 
149 } // end namespace scene
150 } // end namespace irr
151 
152 #endif
153 
154 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Fri Mar 21 2014 04:40:16 by Doxygen (1.8.1.2)