Irrlicht 3D Engine
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
ICameraSceneNode.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_CAMERA_SCENE_NODE_H_INCLUDED__
6
#define __I_CAMERA_SCENE_NODE_H_INCLUDED__
7
8
#include "
ISceneNode.h
"
9
#include "
IEventReceiver.h
"
10
11
namespace
irr
12
{
13
namespace
scene
14
{
15
struct
SViewFrustum;
16
18
23
class
ICameraSceneNode
:
public
ISceneNode
,
public
IEventReceiver
24
{
25
public
:
26
28
ICameraSceneNode
(
ISceneNode
* parent,
ISceneManager
* mgr,
s32
id
,
29
const
core::vector3df
& position =
core::vector3df
(0,0,0),
30
const
core::vector3df
& rotation =
core::vector3df
(0,0,0),
31
const
core::vector3df
& scale =
core::vector3df
(1.0f,1.0f,1.0f))
32
:
ISceneNode
(parent, mgr, id, position, rotation, scale),
IsOrthogonal
(false) {}
33
35
45
virtual
void
setProjectionMatrix
(
const
core::matrix4
& projection,
bool
isOrthogonal
=
false
) =0;
46
48
49
virtual
const
core::matrix4
&
getProjectionMatrix
()
const
=0;
50
52
53
virtual
const
core::matrix4
&
getViewMatrix
()
const
=0;
54
56
60
virtual
void
setViewMatrixAffector
(
const
core::matrix4
& affector) =0;
61
63
64
virtual
const
core::matrix4
&
getViewMatrixAffector
()
const
=0;
65
67
73
virtual
bool
OnEvent
(
const
SEvent
& event) =0;
74
76
83
virtual
void
setTarget
(
const
core::vector3df
& pos) =0;
84
86
91
virtual
void
setRotation
(
const
core::vector3df
& rotation) =0;
92
94
95
virtual
const
core::vector3df
&
getTarget
()
const
=0;
96
98
99
virtual
void
setUpVector
(
const
core::vector3df
& pos) =0;
100
102
103
virtual
const
core::vector3df
&
getUpVector
()
const
=0;
104
106
107
virtual
f32
getNearValue
()
const
=0;
108
110
111
virtual
f32
getFarValue
()
const
=0;
112
114
115
virtual
f32
getAspectRatio
()
const
=0;
116
118
119
virtual
f32
getFOV
()
const
=0;
120
122
123
virtual
void
setNearValue
(
f32
zn) =0;
124
126
127
virtual
void
setFarValue
(
f32
zf) =0;
128
130
131
virtual
void
setAspectRatio
(
f32
aspect) =0;
132
134
135
virtual
void
setFOV
(
f32
fovy) =0;
136
138
140
virtual
const
SViewFrustum
*
getViewFrustum
()
const
=0;
141
143
145
virtual
void
setInputReceiverEnabled
(
bool
enabled) =0;
146
148
virtual
bool
isInputReceiverEnabled
()
const
=0;
149
151
virtual
bool
isOrthogonal
()
const
152
{
153
_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX
;
154
return
IsOrthogonal
;
155
}
156
158
166
virtual
void
bindTargetAndRotation
(
bool
bound) =0;
167
169
170
virtual
bool
getTargetAndRotationBinding
(
void
)
const
=0;
171
173
virtual
void
serializeAttributes
(
io::IAttributes
* out,
io::SAttributeReadWriteOptions
* options=0)
const
174
{
175
ISceneNode::serializeAttributes
(out, options);
176
177
if
(!out)
178
return
;
179
out->
addBool
(
"IsOrthogonal"
,
IsOrthogonal
);
180
}
181
183
virtual
void
deserializeAttributes
(
io::IAttributes
* in,
io::SAttributeReadWriteOptions
* options=0)
184
{
185
ISceneNode::deserializeAttributes
(in, options);
186
if
(!in)
187
return
;
188
189
if
( in->
findAttribute
(
"IsOrthogonal"
) )
190
IsOrthogonal
= in->
getAttributeAsBool
(
"IsOrthogonal"
);
191
}
192
193
protected
:
194
195
void
cloneMembers
(
ICameraSceneNode
* toCopyFrom)
196
{
197
IsOrthogonal
= toCopyFrom->
IsOrthogonal
;
198
}
199
200
bool
IsOrthogonal
;
201
};
202
203
}
// end namespace scene
204
}
// end namespace irr
205
206
#endif
207
Irrlicht Engine
Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on Thu Apr 2 2020 05:59:47 for Irrlicht 3D Engine by
Doxygen
1.8.1.2