Nirtcpp 2.1.0
Nirtcpp is a high-performance c++ graphics engine.
Loading...
Searching...
No Matches
IMesh.hpp
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 nirtcpp/nirtcpp.hpp
4
5#ifndef NIRT_I_MESH_HPP_INCLUDED
6#define NIRT_I_MESH_HPP_INCLUDED
7
8#include <nirtcpp/core/engine/IReferenceCounted.hpp>
9#include <nirtcpp/core/engine/SMaterial.hpp>
10#include <nirtcpp/core/engine/EHardwareBufferFlags.hpp>
11
12namespace nirt
13{
14namespace scene
15{
17 // Note: Was previously only used in IAnimatedMesh so it still has the "animated" in the name.
18 // But can now be used for all mesh-types as we need those casts as well.
62
63
64 class IMeshBuffer;
65
67
71 class IMesh : public virtual IReferenceCounted
72 {
73 public:
74
76
77 virtual u32 getMeshBufferCount() const = 0;
78
80
84 virtual IMeshBuffer* getMeshBuffer(u32 nr) const = 0;
85
87
90 virtual IMeshBuffer* getMeshBuffer( const video::SMaterial &material) const = 0;
91
93
94 virtual const core::aabbox3d<f32>& getBoundingBox() const = 0;
95
97
98 virtual void setBoundingBox( const core::aabbox3df& box) = 0;
99
101
103 virtual void setMaterialFlag(video::E_MATERIAL_FLAG flag, bool newvalue) = 0;
104
106
111
113
117
119
125 {
126 return EAMT_STATIC;
127 }
128 };
129
130} // end namespace scene
131} // end namespace nirt
132
133#endif
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
Struct 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.
Struct 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

Nirtcpp    @cppfx.xyz

Utxcpp    utx::print