Class
List
Hierarchy
Modules
Common
Events
Math
Messages
Physics
Rendering
Sensors
Transport
Links
Gazebo Website
Wiki
Tutorials
Download
Report Documentation Issues
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
gazebo
rendering
Light.hh
Go to the documentation of this file.
1
/*
2
* Copyright 2012 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
18
/* Desc: A Light
19
* Author: Nate Koenig
20
* Date: 15 July 2003
21
*/
22
23
#ifndef _LIGHT_HH_
24
#define _LIGHT_HH_
25
26
#include <string>
27
#include <iostream>
28
29
#include "
msgs/msgs.hh
"
30
#include "
rendering/RenderTypes.hh
"
31
#include "
common/Event.hh
"
32
#include "
common/Color.hh
"
33
34
#include "
sdf/sdf.hh
"
35
36
namespace
Ogre
37
{
38
class
Light;
39
}
40
41
namespace
gazebo
42
{
43
namespace
rendering
44
{
45
class
Scene;
46
class
DynamicLines;
47
50
58
class
Light
59
{
62
public
:
Light
(
ScenePtr
_scene);
63
65
public
:
virtual
~Light
();
66
70
public
:
void
Load
(
sdf::ElementPtr
_sdf);
71
73
public
:
void
Load
();
74
77
public
:
void
LoadFromMsg
(ConstLightPtr &_msg);
78
81
public
:
void
SetName
(
const
std::string &_name);
82
85
public
: std::string
GetName
()
const
;
86
89
public
: std::string
GetType
()
const
;
90
93
public
:
void
SetPosition
(
const
math::Vector3
&_p);
94
97
public
:
math::Vector3
GetPosition
()
const
;
98
102
public
:
virtual
bool
SetSelected
(
bool
_s);
103
104
// \brief Toggle light visual visibility
105
public
:
void
ToggleShowVisual
();
106
109
public
:
void
ShowVisual
(
bool
_s);
110
113
public
:
void
SetLightType
(
const
std::string &_type);
114
117
public
:
void
SetDiffuseColor
(
const
common::Color
&_color);
118
121
public
:
common::Color
GetDiffuseColor
()
const
;
122
125
public
:
void
SetSpecularColor
(
const
common::Color
&_color);
126
129
public
:
common::Color
GetSpecularColor
()
const
;
130
134
public
:
void
SetDirection
(
const
math::Vector3
&_dir);
135
138
public
:
math::Vector3
GetDirection
()
const
;
139
144
public
:
void
SetAttenuation
(
double
_constant,
double
_linear,
145
double
_quadratic);
146
149
public
:
void
SetSpotInnerAngle
(
const
double
&_angle);
150
153
public
:
void
SetSpotOuterAngle
(
const
double
&_angle);
154
157
public
:
void
SetSpotFalloff
(
const
double
&_value);
158
161
public
:
void
SetRange
(
const
double
&_range);
162
165
public
:
void
SetCastShadows
(
const
bool
&_cast);
166
169
public
:
void
FillMsg
(msgs::Light &_msg)
const
;
170
173
public
:
void
UpdateFromMsg
(ConstLightPtr &_msg);
174
176
protected
:
virtual
void
OnPoseChange
() {}
177
179
private
:
void
CreateVisual();
180
182
private
:
void
Update();
183
186
private
:
void
UpdateSDFFromMsg(ConstLightPtr &_msg);
187
189
private
: Ogre::Light *light;
190
192
private
:
VisualPtr
visual;
193
195
private
:
DynamicLines
*line;
196
198
private
:
sdf::ElementPtr
sdf;
199
201
private
:
event::ConnectionPtr
showLightsConnection;
202
204
private
:
static
unsigned
int
lightCounter;
205
207
private
:
ScenePtr
scene;
208
};
210
}
211
}
212
#endif