5#ifndef NIRT_I_MESH_HPP_INCLUDED
6#define NIRT_I_MESH_HPP_INCLUDED
8#include <nirtcpp/core/engine/IReferenceCounted.hpp>
9#include <nirtcpp/core/engine/SMaterial.hpp>
10#include <nirtcpp/core/engine/EHardwareBufferFlags.hpp>
Base class of most objects of the Nirtcpp Engine.
Definition IReferenceCounted.hpp:46
Axis aligned bounding box in 3d dimensional space.
Definition aabbox3d.hpp:22
Class for holding a mesh with a single material.
Definition IMeshBuffer.hpp:41
Class which holds the geometry of an object.
Definition IMesh.hpp:72
virtual void setBoundingBox(const core::aabbox3df &box)=0
Set user-defined axis aligned bounding box.
virtual E_ANIMATED_MESH_TYPE getMeshType() const
Returns the type of the meshes.
Definition IMesh.hpp:124
virtual void setHardwareMappingHint(E_HARDWARE_MAPPING newMappingHint, E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX)=0
Set the hardware mapping hint.
virtual u32 getMeshBufferCount() const =0
Get the amount of mesh buffers.
virtual const core::aabbox3d< f32 > & getBoundingBox() const =0
Get an axis aligned bounding box of the mesh.
virtual void setDirty(E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX)=0
Flag the meshbuffer as changed, reloads hardware buffers.
virtual void setMaterialFlag(video::E_MATERIAL_FLAG flag, bool newvalue)=0
Sets a flag of all contained materials to a new value.
virtual IMeshBuffer * getMeshBuffer(u32 nr) const =0
Get pointer to a mesh buffer.
virtual IMeshBuffer * getMeshBuffer(const video::SMaterial &material) const =0
Get pointer to a mesh buffer which fits a material.
Class for holding parameters for a material renderer.
Definition SMaterial.hpp:304
E_BUFFER_TYPE
Definition EHardwareBufferFlags.hpp:29
@ EBT_VERTEX_AND_INDEX
Change both vertex and index mapping to the same value.
Definition EHardwareBufferFlags.hpp:37
E_ANIMATED_MESH_TYPE
Possible types of meshes.
Definition IMesh.hpp:20
@ EAMT_OBJ
Maya .obj static model.
Definition IMesh.hpp:31
@ EAMT_STATIC
generic non-animated mesh
Definition IMesh.hpp:60
@ EAMT_UNKNOWN
Unknown animated mesh type.
Definition IMesh.hpp:22
@ EAMT_3DS
3D Studio .3ds file
Definition IMesh.hpp:37
@ EAMT_MY3D
My3D Mesh, the file format by Zhuck Dimitry.
Definition IMesh.hpp:40
@ EAMT_MD3
Quake 3 MD3 model file.
Definition IMesh.hpp:28
@ EAMT_CSM
Cartography Shop .csm file. This loader was created by Saurav Mohapatra.
Definition IMesh.hpp:46
@ EAMT_BSP
Quake 3 .bsp static Map.
Definition IMesh.hpp:34
@ EAMT_SKINNED
generic skinned mesh
Definition IMesh.hpp:57
@ EAMT_LMTS
Pulsar LMTools .lmts file. This Nirtcpp loader was written by Jonas Petersen.
Definition IMesh.hpp:43
@ EAMT_OCT
.oct file for Paul Nette's FSRad or from Murphy McCauley's Blender .oct exporter.
Definition IMesh.hpp:51
@ EAMT_MDL_HALFLIFE
Halflife MDL model file.
Definition IMesh.hpp:54
@ EAMT_MD2
Quake 2 MD2 model file.
Definition IMesh.hpp:25
E_HARDWARE_MAPPING
Definition EHardwareBufferFlags.hpp:14
E_MATERIAL_FLAG
Material flags.
Definition EMaterialFlags.hpp:15
As of Nirtcpp 1.6, position2d is a synonym for vector2d.
Definition vector3d.hpp:11
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.hpp:64