5#ifndef __C_VERTEX_BUFFER_H_INCLUDED__
6#define __C_VERTEX_BUFFER_H_INCLUDED__
21 virtual ~IVertexList(){};
23 virtual u32 stride()
const =0;
25 virtual u32 size()
const =0;
30 virtual void set_used(
u32 usedNow) =0;
31 virtual void reallocate(
u32 new_size) =0;
32 virtual u32 allocated_size()
const =0;
38 class CSpecificVertexList :
public IVertexList
43 virtual u32 stride()
const {
return sizeof(T);}
45 virtual u32 size()
const {
return Vertices.size();}
48 {Vertices.push_back((T&)element);}
56 virtual void set_used(
u32 usedNow)
57 {Vertices.set_used(usedNow);}
59 virtual void reallocate(
u32 new_size)
60 {Vertices.reallocate(new_size);}
62 virtual u32 allocated_size()
const
64 return Vertices.allocated_size();
88 for (
u32 n=0;n<VertexBufferCopy.
size();++n)
100 IVertexList *NewVertices=0;
106 NewVertices=
new CSpecificVertexList<video::S3DVertex>;
111 NewVertices=
new CSpecificVertexList<video::S3DVertex2TCoords>;
116 NewVertices=
new CSpecificVertexList<video::S3DVertexTangents>;
122 NewVertices->reallocate(
Vertices->size() );
125 NewVertices->push_back((*
Vertices)[n]);
Axis aligned bounding box in 3d dimensional space.
virtual u32 allocated_size() const
virtual video::S3DVertex & operator[](const u32 index) const
virtual video::S3DVertex * pointer()
virtual E_HARDWARE_MAPPING getHardwareMappingHint() const
get the current hardware mapping hint
virtual void set_used(u32 usedNow)
virtual void reallocate(u32 new_size)
virtual video::S3DVertex & getLast()
virtual void setHardwareMappingHint(E_HARDWARE_MAPPING NewMappingHint)
set the hardware mapping hint, for driver
virtual void push_back(const video::S3DVertex &element)
E_HARDWARE_MAPPING MappingHint
virtual void setType(video::E_VERTEX_TYPE vertexType)
CVertexBuffer(const IVertexBuffer &VertexBufferCopy)
virtual u32 getChangedID() const
Get the currently used ID for identification of changes.
virtual void setDirty()
flags the mesh as changed, reloads hardware buffers
CVertexBuffer(video::E_VERTEX_TYPE vertexType)
virtual u32 stride() const
virtual video::E_VERTEX_TYPE getType() const
virtual video::E_VERTEX_TYPE getType() const =0
virtual u32 size() const =0
@ EHM_NEVER
Don't store on the hardware.
E_VERTEX_TYPE
Enumeration for all vertex types there are.
@ EVT_2TCOORDS
Vertex with two texture coordinates, video::S3DVertex2TCoords.
@ EVT_TANGENTS
Vertex with a tangent and binormal vector, video::S3DVertexTangents.
@ EVT_STANDARD
Standard vertex type used by the Irrlicht engine, video::S3DVertex.
Everything in the Irrlicht Engine can be found in this namespace.
unsigned int u32
32 bit unsigned variable.
standard vertex used by the Irrlicht engine.