Irrlicht 3D Engine
 
Loading...
Searching...
No Matches
IMeshBuffer.h
Go to the documentation of this file.
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 __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"
14#include "EPrimitiveTypes.h"
15
16namespace irr
17{
18namespace scene
19{
21
39 class IMeshBuffer : public virtual IReferenceCounted
40 {
41 public:
42
44
46
48
49 virtual const video::SMaterial& getMaterial() const = 0;
50
52
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
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
102
104 virtual const core::vector3df& getNormal(u32 i) const = 0;
105
108
110 virtual const core::vector2df& getTCoords(u32 i) const = 0;
111
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
136
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
Base class of most objects of the Irrlicht Engine.
Struct for holding a mesh with a single material.
Definition IMeshBuffer.h:40
virtual void setHardwareMappingHint(E_HARDWARE_MAPPING newMappingHint, E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX)=0
set the hardware mapping hint, for driver
virtual u16 * getIndices()=0
Get access to Indices.
virtual const core::vector3df & getPosition(u32 i) const =0
returns position of vertex i
virtual void * getVertices()=0
Get access to vertex data. The data is an array of vertices.
virtual void recalculateBoundingBox()=0
Recalculates the bounding box. Should be called if the mesh changed.
virtual void setDirty(E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX)=0
flags the meshbuffer as changed, reloads hardware buffers
virtual E_HARDWARE_MAPPING getHardwareMappingHint_Index() const =0
get the current hardware mapping hint
virtual core::vector3df & getNormal(u32 i)=0
returns normal of vertex i
virtual const core::vector2df & getTCoords(u32 i) const =0
returns texture coord of vertex i
virtual const u16 * getIndices() const =0
Get access to Indices.
virtual const core::vector3df & getNormal(u32 i) const =0
returns normal of vertex i
virtual video::E_VERTEX_TYPE getVertexType() const =0
Get type of vertex data which is stored in this meshbuffer.
virtual u32 getVertexCount() const =0
Get amount of vertices in meshbuffer.
virtual void append(const IMeshBuffer *const other)=0
Append the meshbuffer to the current buffer.
virtual video::E_INDEX_TYPE getIndexType() const =0
Get type of index data which is stored in this meshbuffer.
virtual video::SMaterial & getMaterial()=0
Get the material of this meshbuffer.
virtual const void * getVertices() const =0
Get access to vertex data. The data is an array of vertices.
virtual u32 getIndexCount() const =0
Get amount of indices in this meshbuffer.
virtual core::vector2df & getTCoords(u32 i)=0
returns texture coord of vertex i
virtual u32 getChangedID_Vertex() const =0
Get the currently used ID for identification of changes.
virtual E_HARDWARE_MAPPING getHardwareMappingHint_Vertex() const =0
get the current hardware mapping hint
virtual const core::aabbox3df & getBoundingBox() const =0
Get the axis aligned bounding box of this meshbuffer.
virtual void append(const void *const vertices, u32 numVertices, const u16 *const indices, u32 numIndices)=0
Append the vertices and indices to the current buffer.
virtual u32 getChangedID_Index() const =0
Get the currently used ID for identification of changes.
virtual const video::SMaterial & getMaterial() const =0
Get the material of this meshbuffer.
virtual void setBoundingBox(const core::aabbox3df &box)=0
Set axis aligned bounding box.
virtual core::vector3df & getPosition(u32 i)=0
returns position of vertex i
Struct for holding parameters for a material renderer.
Definition SMaterial.h:227
@ EBT_VERTEX_AND_INDEX
Change both vertex and index mapping to the same value.
E_VERTEX_TYPE
Enumeration for all vertex types there are.
Definition S3DVertex.h:19
Everything in the Irrlicht Engine can be found in this namespace.
Definition aabbox3d.h:13
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
unsigned short u16
16 bit unsigned variable.
Definition irrTypes.h:40