Choreonoid  1.5
SceneLights.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_UTIL_SCENE_LIGHTS_H
7 #define CNOID_UTIL_SCENE_LIGHTS_H
8 
9 #include "SceneGraph.h"
10 #include "exportdecl.h"
11 
12 namespace cnoid {
13 
15 {
16 protected:
17  SgLight();
18  SgLight(const SgLight& org);
19 
20 public:
21  virtual SgObject* clone(SgCloneMap& cloneMap) const;
22  virtual void accept(SceneVisitor& visitor);
23 
24  bool on() const { return on_; }
25  void on(bool on) { on_ = on; }
26  const Vector3f& color() const { return color_; }
27  template<typename Derived> void setColor(const Eigen::MatrixBase<Derived>& c) {
28  color_ = c.template cast<Vector3f::Scalar>(); }
29  float intensity() const { return intensity_; }
30  void setIntensity(float intensity) { intensity_ = intensity; }
31  float ambientIntensity() const { return ambientIntensity_; }
32  void setAmbientIntensity(float intensity) { ambientIntensity_ = intensity; }
33 
34 private:
35  Vector3f color_;
36  float intensity_;
37  float ambientIntensity_;
38  bool on_;
39 };
41 
42 
44 {
45 public:
48  virtual SgObject* clone(SgCloneMap& cloneMap) const;
49  virtual void accept(SceneVisitor& visitor);
50 
51  const Vector3& direction() const { return direction_; }
52  template<typename Derived> void setDirection(const Eigen::MatrixBase<Derived>& d) {
53  direction_ = d.template cast<Vector3::Scalar>(); }
54 
55 private:
56  Vector3 direction_;
57 };
59 
60 
62 {
63 public:
64  SgPointLight();
65  SgPointLight(const SgPointLight& org);
66  virtual SgObject* clone(SgCloneMap& cloneMap) const;
67  virtual void accept(SceneVisitor& visitor);
68 
69  float constantAttenuation() const { return constantAttenuation_; }
70  void setConstantAttenuation(float a) { constantAttenuation_ = a; }
71 
72  float linearAttenuation() const { return linearAttenuation_; }
73  void setLinearAttenuation(float a) { linearAttenuation_ = a; }
74 
75  float quadraticAttenuation() const { return quadraticAttenuation_; }
76  void setQuadraticAttenuation(float a) { quadraticAttenuation_ = a; }
77 
78 private:
79  float constantAttenuation_;
80  float linearAttenuation_;
81  float quadraticAttenuation_;
82 };
84 
85 
87 {
88 public:
89  SgSpotLight();
90  SgSpotLight(const SgSpotLight& org);
91  virtual SgObject* clone(SgCloneMap& cloneMap) const;
92  virtual void accept(SceneVisitor& visitor);
93 
94  const Vector3& direction() const { return direction_; }
95  template<typename Derived> void setDirection(const Eigen::MatrixBase<Derived>& d) {
96  direction_ = d.template cast<Vector3::Scalar>(); }
97 
98  float beamWidth() const { return beamWidth_; }
99  void setBeamWidth(float w) { beamWidth_ = w; }
100  float cutOffAngle() const { return cutOffAngle_; }
101  void setCutOffAngle(float a) { cutOffAngle_ = a; }
102 
103 private:
104  Vector3 direction_;
105  float beamWidth_;
106  float cutOffAngle_;
107 };
109 
110 }
111 
112 #endif
Definition: SceneLights.h:61
Definition: SceneLights.h:14
void setBeamWidth(float w)
Definition: SceneLights.h:99
Definition: SceneGraph.h:394
void setCutOffAngle(float a)
Definition: SceneLights.h:101
ref_ptr< SgDirectionalLight > SgDirectionalLightPtr
Definition: SceneLights.h:58
void setDirection(const Eigen::MatrixBase< Derived > &d)
Definition: SceneLights.h:52
ref_ptr< SgPointLight > SgPointLightPtr
Definition: SceneLights.h:83
float intensity() const
Definition: SceneLights.h:29
float ambientIntensity() const
Definition: SceneLights.h:31
ref_ptr< SgLight > SgLightPtr
Definition: SceneLights.h:40
const Vector3 & direction() const
Definition: SceneLights.h:51
const Vector3f & color() const
Definition: SceneLights.h:26
Definition: SceneLights.h:86
void setIntensity(float intensity)
Definition: SceneLights.h:30
void setColor(const Eigen::MatrixBase< Derived > &c)
Definition: SceneLights.h:27
Definition: SceneGraph.h:56
Definition: SceneLights.h:43
ref_ptr< SgSpotLight > SgSpotLightPtr
Definition: SceneLights.h:108
void on(bool on)
Definition: SceneLights.h:25
void setConstantAttenuation(float a)
Definition: SceneLights.h:70
float cutOffAngle() const
Definition: SceneLights.h:100
void setLinearAttenuation(float a)
Definition: SceneLights.h:73
void setAmbientIntensity(float intensity)
Definition: SceneLights.h:32
bool on() const
Definition: SceneLights.h:24
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
void setQuadraticAttenuation(float a)
Definition: SceneLights.h:76
float quadraticAttenuation() const
Definition: SceneLights.h:75
void setDirection(const Eigen::MatrixBase< Derived > &d)
Definition: SceneLights.h:95
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
float constantAttenuation() const
Definition: SceneLights.h:69
Definition: SceneVisitor.h:15
const Vector3 & direction() const
Definition: SceneLights.h:94
float beamWidth() const
Definition: SceneLights.h:98
Definition: SceneGraph.h:79
float linearAttenuation() const
Definition: SceneLights.h:72