g4tools
5.4.0
g4tools
tools
sg
head_light
Go to the documentation of this file.
1
// Copyright (C) 2010, Guy Barrand. All rights reserved.
2
// See the file tools.license for terms.
3
4
#ifndef tools_sg_head_light
5
#define tools_sg_head_light
6
7
// Directional light following cam direction.
8
// It should come after a camera node.
9
10
#include "
torche
"
11
12
namespace
tools
{
13
namespace
sg {
14
15
class
head_light
:
public
torche
{
16
TOOLS_NODE
(
head_light
,
tools::sg::head_light
,
torche
)
17
public
:
18
virtual
void
render
(
render_action
& a_action) {
19
if
(!
on
.
value
())
return
;
20
state
&
state
= a_action.
state
();
21
if
((
state
.
m_light
+1)>=a_action.
max_lights
()) {
22
a_action.
out
()
23
<<
"GL_MAX_LIGHTS ("
<< a_action.
max_lights
() <<
") reached."
24
<< std::endl;
25
return
;
26
}
27
float
dx =
direction
.
value
()[0];
28
float
dy =
direction
.
value
()[1];
29
float
dz =
direction
.
value
()[2];
30
{
mat4f
mtx;
31
state
.
m_camera_orientation
.
value
(mtx);
32
mtx.
mul_dir_3f
(dx,dy,dz);}
33
state
.
m_GL_LIGHTING
=
true
;
//for separator
34
a_action.
enable_light
(
state
.
m_light
,
vec3f
(dx,dy,dz),
color
.value());
35
state
.
m_light
++;
36
}
37
public
:
38
head_light
():
torche
(){}
39
virtual
~head_light
(){}
40
public
:
41
head_light
(
const
head_light
& a_from):
torche
(a_from){}
42
head_light
&
operator=
(
const
head_light
& a_from){
43
torche::operator=
(a_from);
44
return
*
this
;
45
}
46
};
47
48
}}
49
50
#endif
tools::sg::head_light::~head_light
virtual ~head_light()
Definition:
head_light:39
tools::sg::head_light::render
virtual void render(render_action &a_action)
Definition:
head_light:18
tools::sg::state
Definition:
state:25
tools::sg::state::m_GL_LIGHTING
bool m_GL_LIGHTING
Definition:
state:248
tools::sg::torche::operator=
torche & operator=(const torche &a_from)
Definition:
torche:73
tools::sg::head_light::head_light
head_light()
Definition:
head_light:38
torche
TOOLS_NODE
#define TOOLS_NODE(a__class, a__sclass, a__parent)
Definition:
node:324
tools::mat4f::mul_dir_3f
void mul_dir_3f(float &a_x, float &a_y, float &a_z) const
Definition:
mat4f:59
tools::sg::torche
Definition:
torche:18
tools::sg::head_light
Definition:
head_light:15
tools::sg::color
Definition:
color:16
tools::sg::state::m_camera_orientation
rotf m_camera_orientation
Definition:
state:276
tools::sg::state::m_light
unsigned int m_light
Definition:
state:262
tools::sg::render_action::enable_light
virtual void enable_light(unsigned int, float, float, float, float, float, float, float)=0
tools::vec3f
Definition:
vec3f:13
tools::sg::render_action
Definition:
render_action:24
tools::sg::head_light::operator=
head_light & operator=(const head_light &a_from)
Definition:
head_light:42
tools
inlined C code : ///////////////////////////////////
Definition:
aida_ntuple:26
tools::rotf::value
bool value(vec3f &a_from, float &a_a) const
Definition:
rotf:48
tools::mat4f
Definition:
mat4f:12
tools::sg::render_action::max_lights
virtual unsigned int max_lights()=0
tools::sg::torche::direction
sf_vec3f direction
Definition:
torche:22
tools::sg::head_light::head_light
head_light(const head_light &a_from)
Definition:
head_light:41
tools::sg::bsf::value
T & value()
Definition:
bsf:98
tools::sg::action::out
std::ostream & out() const
Definition:
action:51
tools::sg::states::state
const sg::state & state() const
Definition:
states:76
tools::sg::torche::on
sf< bool > on
Definition:
torche:23
Generated by
1.8.20