5#ifndef __I_SKIN_MESH_BUFFER_H_INCLUDED__
6#define __I_SKIN_MESH_BUFFER_H_INCLUDED__
329 virtual void append(
const void*
const vertices,
u32 numVertices,
const u16*
const indices,
u32 numIndices) {}
void setDebugName(const c8 *newName)
Sets the debug name of the object.
4x4 matrix. Mostly used as transformation matrix for 3d calculations.
Axis aligned bounding box in 3d dimensional space.
void addInternalPoint(const vector3d< T > &p)
Adds a point to the bounding box.
void reset(T x, T y, T z)
Resets the bounding box to a one-point box.
T * pointer()
Gets a pointer to the array.
u32 size() const
Get number of occupied elements of the array.
const T * const_pointer() const
Gets a const pointer to the array.
Struct for holding a mesh with a single material.
Struct for holding parameters for a material renderer.
@ EBT_VERTEX_AND_INDEX
Change both vertex and index mapping to the same value.
@ EBT_INDEX
Change the index mapping.
@ EBT_VERTEX
Change the vertex mapping.
@ 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.
unsigned short u16
16 bit unsigned variable.
A mesh buffer able to choose between S3DVertex2TCoords, S3DVertex and S3DVertexTangents at runtime.
virtual u32 getVertexCount() const
Get vertex count.
virtual video::E_INDEX_TYPE getIndexType() const
Get type of index data which is stored in this meshbuffer.
bool BoundingBoxNeedsRecalculated
core::aabbox3d< f32 > BoundingBox
virtual E_HARDWARE_MAPPING getHardwareMappingHint_Vertex() const
get the current hardware mapping hint for vertex buffers
video::SMaterial Material
core::array< video::S3DVertex > Vertices_Standard
virtual u16 * getIndices()
Get pointer to index array.
core::array< video::S3DVertex2TCoords > Vertices_2TCoords
virtual const core::vector2df & getTCoords(u32 i) const
returns texture coords of vertex i
E_HARDWARE_MAPPING MappingHint_Index
virtual void convertTo2TCoords()
Convert to 2tcoords vertex type.
virtual E_HARDWARE_MAPPING getHardwareMappingHint_Index() const
get the current hardware mapping hint for index buffers
video::E_VERTEX_TYPE VertexType
virtual void append(const IMeshBuffer *const other)
append the meshbuffer to the current buffer
virtual u32 getChangedID_Index() const
Get the currently used ID for identification of changes.
core::array< u16 > Indices
virtual const void * getVertices() const
Get pointer to vertex array.
virtual const core::vector3df & getPosition(u32 i) const
returns position of vertex i
virtual core::vector3df & getNormal(u32 i)
returns normal of vertex i
virtual core::vector2df & getTCoords(u32 i)
returns texture coords of vertex i
virtual video::E_VERTEX_TYPE getVertexType() const
Get vertex type.
virtual void * getVertices()
Get pointer to vertex array.
virtual const core::aabbox3d< f32 > & getBoundingBox() const
Get bounding box.
virtual u32 getChangedID_Vertex() const
Get the currently used ID for identification of changes.
virtual void convertToTangents()
Convert to tangents vertex type.
core::array< video::S3DVertexTangents > Vertices_Tangents
SSkinMeshBuffer(video::E_VERTEX_TYPE vt=video::EVT_STANDARD)
Default constructor.
E_HARDWARE_MAPPING MappingHint_Vertex
virtual void setBoundingBox(const core::aabbox3df &box)
Set bounding box.
virtual void setHardwareMappingHint(E_HARDWARE_MAPPING NewMappingHint, E_BUFFER_TYPE Buffer=EBT_VERTEX_AND_INDEX)
set the hardware mapping hint, for driver
virtual core::vector3df & getPosition(u32 i)
returns position of vertex i
virtual video::S3DVertex * getVertex(u32 index)
Get standard vertex at given index.
virtual video::SMaterial & getMaterial()
Get Material of this buffer.
virtual const video::SMaterial & getMaterial() const
Get Material of this buffer.
virtual u32 getIndexCount() const
Get index count.
core::matrix4 Transformation
virtual const core::vector3df & getNormal(u32 i) const
returns normal of vertex i
virtual void append(const void *const vertices, u32 numVertices, const u16 *const indices, u32 numIndices)
append the vertices and indices to the current buffer
virtual void setDirty(E_BUFFER_TYPE Buffer=EBT_VERTEX_AND_INDEX)
flags the mesh as changed, reloads hardware buffers
void boundingBoxNeedsRecalculated(void)
Call this after changing the positions of any vertex.
virtual const u16 * getIndices() const
Get pointer to index array.
virtual void recalculateBoundingBox()
Recalculate bounding box.
Vertex with two texture coordinates.
standard vertex used by the Irrlicht engine.
core::vector2d< f32 > TCoords
Texture coordinates.
core::vector3df Normal
Normal vector.
core::vector3df Pos
Position.
Vertex with a tangent and binormal vector.