RTFX  0.3
Real time special effects collaborative visualization and production library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
RTFXLight.h
1 #ifndef __RTFX_LIGHT__
2 #define __RTFX_LIGHT__
3 /*
4  \file RTFXLight
5  \brief Contains the definition of the RTFXLight class
6 
7  \author Lesley Northam
8 
9  October 24, 2011
10 */
11 
12 
13 #include <iostream>
14 #include <sstream>
15 #include "RTFXObject.h"
16 
17 namespace RTFX
18 {
24  class RTFXAPI RTFXLight : public RTFXObject
25  {
26  public:
28  RTFXLight();
29 
31  RTFXLight( bool _genID );
32 
34  ~RTFXLight();
35 
37  RTFXLight( const RTFXLight &_l );
38 
40  void SetPosition( Point3D _p );
41 
43  void SetPosition( double _x, double _y, double _z );
44 
46  Point3D GetPosition();
47 
49  double * GetPositionAsDoubles();
50 
52  void SetRotation( Point3D _p );
53 
55  void SetRotation( double _x, double _y, double _z );
56 
58  Point3D GetRotation();
59 
61  double * GetRotationAsDoubles();
62 
64  void SetScale( Point3D _p );
65 
67  void SetScale( double _x, double _y, double _z );
68 
70  Point3D GetScale();
71 
73  double * GetScaleAsDoubles();
74 
76  void SetTransform( Matrix4x4 _m );
77 
79  void SetTransform( double * _m );
80 
82  Matrix4x4 GetTransform();
83 
85  double * GetTransformAsDoubles();
86 
88  void SetLightType( std::string _s );
89 
91  std::string GetLightType();
92 
94  void SetIntensity( double _i );
95 
97  double GetIntensity();
98 
100  void SetFalloff( double _f );
101 
103  double GetFalloff();
104 
106  void SetConeAngle( double _a );
107 
109  double GetConeAngle();
110 
112  void SetDiffuseColour( Colour _c );
113 
115  void SetDiffuseColour( double _r, double _g, double _b );
116 
118  Colour GetDiffuseColour();
119 
121  double * GetDiffuseRGBColour();
122 
124  void SetSpecularColour( Colour _c );
125 
127  void SetSpecularColour( double _r, double _g, double _b );
128 
130  Colour GetSpecularColour();
131 
133  double * GetSpecularRGBColour();
134 
138  void Update( RTFXObject * _cam );
139 
141  void ToNative( AXISFRAME _frame );
142 
144  void FromNative( AXISFRAME _frame );
145 
147  void ChangeFrame( AXISFRAME _from, AXISFRAME _to );
148 
149  private:
150 
152  void Init( bool _genID );
153 
154  friend class boost::serialization::access;
155  template<class Archive>
156  void serialize( Archive &_ar, const unsigned int _version )
157  {
158  _ar & boost::serialization::base_object<RTFXObject>( *this );
159  }
160  };
161 }
162 BOOST_CLASS_EXPORT_KEY( RTFX::RTFXLight )
163 
164 #endif