Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Rendering/vtkLight.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00062 #ifndef __vtkLight_h
00063 #define __vtkLight_h
00064
00065 #include "vtkObject.h"
00066
00067
00068 class vtkRenderer;
00069 class vtkMatrix4x4;
00070
00071 #define VTK_LIGHT_TYPE_HEADLIGHT 1
00072 #define VTK_LIGHT_TYPE_CAMERA_LIGHT 2
00073 #define VTK_LIGHT_TYPE_SCENE_LIGHT 3
00074
00075 class VTK_RENDERING_EXPORT vtkLight : public vtkObject
00076 {
00077 public:
00078 vtkTypeRevisionMacro(vtkLight,vtkObject);
00079 void PrintSelf(ostream& os, vtkIndent indent);
00080
00084 static vtkLight *New();
00085
00090 virtual void Render(vtkRenderer *, int) {};
00091
00093
00094 vtkSetVector3Macro(Color,float);
00095 vtkGetVectorMacro(Color,float,3);
00097
00099
00103 vtkSetVector3Macro(Position,float);
00104 vtkGetVectorMacro(Position,float,3);
00105 void SetPosition(double *a) {this->SetPosition(
00106 static_cast<float>(a[0]),
00107 static_cast<float>(a[1]),
00108 static_cast<float>(a[2]));};
00110
00112
00117 vtkSetVector3Macro(FocalPoint,float);
00118 vtkGetVectorMacro(FocalPoint,float,3);
00119 void SetFocalPoint(double *a) {this->SetFocalPoint(
00120 static_cast<float>(a[0]),
00121 static_cast<float>(a[1]),
00122 static_cast<float>(a[2]));};
00124
00126
00127 vtkSetMacro(Intensity,float);
00128 vtkGetMacro(Intensity,float);
00130
00132
00133 vtkSetMacro(Switch,int);
00134 vtkGetMacro(Switch,int);
00135 vtkBooleanMacro(Switch,int);
00137
00139
00140 vtkSetMacro(Positional,int);
00141 vtkGetMacro(Positional,int);
00142 vtkBooleanMacro(Positional,int);
00144
00146
00147 vtkSetMacro(Exponent,float);
00148 vtkGetMacro(Exponent,float);
00150
00152
00155 vtkSetMacro(ConeAngle,float);
00156 vtkGetMacro(ConeAngle,float);
00158
00160
00162 vtkSetVector3Macro(AttenuationValues,float);
00163 vtkGetVectorMacro(AttenuationValues,float,3);
00165
00167
00170 virtual void SetTransformMatrix(vtkMatrix4x4*);
00171 vtkGetObjectMacro(TransformMatrix,vtkMatrix4x4);
00173
00175
00177 void GetTransformedPosition(float &a0, float &a1, float &a2);
00178 void GetTransformedPosition(float a[3]);
00179 float *GetTransformedPosition();
00181
00183
00185 void GetTransformedFocalPoint(float &a0, float &a1, float &a2);
00186 void GetTransformedFocalPoint(float a[3]);
00187 float *GetTransformedFocalPoint();
00189
00191
00195 void SetDirectionAngle(float elevation, float azimuth);
00196 void SetDirectionAngle(float ang[2]) { this->SetDirectionAngle(ang[0], ang[1]); };
00198
00200 void DeepCopy(vtkLight *light);
00201
00203
00214 vtkSetMacro(LightType, int);
00215 vtkGetMacro(LightType, int);
00216 void SetLightTypeToHeadlight()
00217 {this->SetLightType(VTK_LIGHT_TYPE_HEADLIGHT);}
00218 void SetLightTypeToSceneLight()
00219 {
00220 this->SetTransformMatrix(NULL);
00221 this->SetLightType(VTK_LIGHT_TYPE_SCENE_LIGHT);
00222 }
00223 void SetLightTypeToCameraLight()
00224 {this->SetLightType(VTK_LIGHT_TYPE_CAMERA_LIGHT);}
00226
00228
00229 int LightTypeIsHeadlight();
00230 int LightTypeIsSceneLight();
00231 int LightTypeIsCameraLight();
00233
00234 void ReadSelf(istream& is);
00235 void WriteSelf(ostream& os);
00236
00237 protected:
00238 vtkLight();
00239 ~vtkLight();
00240
00241 float FocalPoint[3];
00242 float Position[3];
00243 float Intensity;
00244 float Color[3];
00245 int Switch;
00246 int Positional;
00247 float Exponent;
00248 float ConeAngle;
00249 float AttenuationValues[3];
00250 vtkMatrix4x4 *TransformMatrix;
00251 float TransformedFocalPointReturn[3];
00252 float TransformedPositionReturn[3];
00253 int LightType;
00254 private:
00255 vtkLight(const vtkLight&);
00256 void operator=(const vtkLight&);
00257 };
00258
00259 #endif