Irrlicht 3D Engine
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
CDynamicMeshBuffer.h
Go to the documentation of this file.
1
// Copyright (C) 2008-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 __C_DYNAMIC_MESHBUFFER_H_INCLUDED__
6
#define __C_DYNAMIC_MESHBUFFER_H_INCLUDED__
7
8
#include "
IDynamicMeshBuffer.h
"
9
10
#include "
CVertexBuffer.h
"
11
#include "
CIndexBuffer.h
"
12
13
namespace
irr
14
{
15
namespace
scene
16
{
17
18
class
CDynamicMeshBuffer
:
public
IDynamicMeshBuffer
19
{
20
public
:
22
CDynamicMeshBuffer
(
video::E_VERTEX_TYPE
vertexType,
video::E_INDEX_TYPE
indexType)
23
{
24
VertexBuffer=
new
CVertexBuffer
(vertexType);
25
IndexBuffer=
new
CIndexBuffer
(indexType);
26
}
27
29
virtual
~CDynamicMeshBuffer
()
30
{
31
if
(VertexBuffer)
32
VertexBuffer->
drop
();
33
if
(IndexBuffer)
34
IndexBuffer->
drop
();
35
}
36
37
virtual
IVertexBuffer
&
getVertexBuffer
()
const
38
{
39
return
*VertexBuffer;
40
}
41
42
virtual
IIndexBuffer
&
getIndexBuffer
()
const
43
{
44
return
*IndexBuffer;
45
}
46
47
virtual
void
setVertexBuffer
(
IVertexBuffer
*newVertexBuffer)
48
{
49
if
(newVertexBuffer)
50
newVertexBuffer->
grab
();
51
if
(VertexBuffer)
52
VertexBuffer->
drop
();
53
54
VertexBuffer=newVertexBuffer;
55
}
56
57
virtual
void
setIndexBuffer
(
IIndexBuffer
*newIndexBuffer)
58
{
59
if
(newIndexBuffer)
60
newIndexBuffer->
grab
();
61
if
(IndexBuffer)
62
IndexBuffer->
drop
();
63
64
IndexBuffer=newIndexBuffer;
65
}
66
68
virtual
const
video::SMaterial
&
getMaterial
()
const
69
{
70
return
Material
;
71
}
72
74
virtual
video::SMaterial
&
getMaterial
()
75
{
76
return
Material
;
77
}
78
80
virtual
const
core::aabbox3d<f32>
&
getBoundingBox
()
const
81
{
82
return
BoundingBox
;
83
}
84
86
virtual
void
setBoundingBox
(
const
core::aabbox3df
& box)
87
{
88
BoundingBox
= box;
89
}
90
92
virtual
void
recalculateBoundingBox
()
93
{
94
if
(!
getVertexBuffer
().size())
95
BoundingBox
.
reset
(0,0,0);
96
else
97
{
98
BoundingBox
.
reset
(
getVertexBuffer
()[0].Pos);
99
for
(
u32
i=1; i<
getVertexBuffer
().
size
(); ++i)
100
BoundingBox
.
addInternalPoint
(
getVertexBuffer
()[i].Pos);
101
}
102
}
103
104
video::SMaterial
Material
;
105
core::aabbox3d<f32>
BoundingBox
;
106
private
:
107
IVertexBuffer
*VertexBuffer;
108
IIndexBuffer
*IndexBuffer;
109
};
110
111
112
}
// end namespace scene
113
}
// end namespace irr
114
115
#endif
116
Irrlicht Engine
Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on Thu Apr 2 2020 05:59:46 for Irrlicht 3D Engine by
Doxygen
1.8.1.2