vtkLight.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00050 #ifndef __vtkLight_h
00051 #define __vtkLight_h
00052
00053 #include "vtkObject.h"
00054
00055
00056 class vtkRenderer;
00057 class vtkMatrix4x4;
00058
00059 #define VTK_LIGHT_TYPE_HEADLIGHT 1
00060 #define VTK_LIGHT_TYPE_CAMERA_LIGHT 2
00061 #define VTK_LIGHT_TYPE_SCENE_LIGHT 3
00062
00063 class VTK_RENDERING_EXPORT vtkLight : public vtkObject
00064 {
00065 public:
00066 vtkTypeRevisionMacro(vtkLight,vtkObject);
00067 void PrintSelf(ostream& os, vtkIndent indent);
00068
00072 static vtkLight *New();
00073
00078 virtual void Render(vtkRenderer *, int) {};
00079
00081
00082 vtkSetVector3Macro(Color,float);
00083 vtkGetVectorMacro(Color,float,3);
00085
00087
00091 vtkSetVector3Macro(Position,float);
00092 vtkGetVectorMacro(Position,float,3);
00093 void SetPosition(double *a) {this->SetPosition(
00094 static_cast<float>(a[0]),
00095 static_cast<float>(a[1]),
00096 static_cast<float>(a[2]));};
00098
00100
00105 vtkSetVector3Macro(FocalPoint,float);
00106 vtkGetVectorMacro(FocalPoint,float,3);
00107 void SetFocalPoint(double *a) {this->SetFocalPoint(
00108 static_cast<float>(a[0]),
00109 static_cast<float>(a[1]),
00110 static_cast<float>(a[2]));};
00112
00114
00115 vtkSetMacro(Intensity,float);
00116 vtkGetMacro(Intensity,float);
00118
00120
00121 vtkSetMacro(Switch,int);
00122 vtkGetMacro(Switch,int);
00123 vtkBooleanMacro(Switch,int);
00125
00127
00128 vtkSetMacro(Positional,int);
00129 vtkGetMacro(Positional,int);
00130 vtkBooleanMacro(Positional,int);
00132
00134
00135 vtkSetMacro(Exponent,float);
00136 vtkGetMacro(Exponent,float);
00138
00140
00143 vtkSetMacro(ConeAngle,float);
00144 vtkGetMacro(ConeAngle,float);
00146
00148
00150 vtkSetVector3Macro(AttenuationValues,float);
00151 vtkGetVectorMacro(AttenuationValues,float,3);
00153
00155
00158 virtual void SetTransformMatrix(vtkMatrix4x4*);
00159 vtkGetObjectMacro(TransformMatrix,vtkMatrix4x4);
00161
00163
00165 void GetTransformedPosition(float &a0, float &a1, float &a2);
00166 void GetTransformedPosition(float a[3]);
00167 float *GetTransformedPosition();
00169
00171
00173 void GetTransformedFocalPoint(float &a0, float &a1, float &a2);
00174 void GetTransformedFocalPoint(float a[3]);
00175 float *GetTransformedFocalPoint();
00177
00179
00183 void SetDirectionAngle(float elevation, float azimuth);
00184 void SetDirectionAngle(float ang[2]) { this->SetDirectionAngle(ang[0], ang[1]); };
00186
00188 void DeepCopy(vtkLight *light);
00189
00191
00202 vtkSetMacro(LightType, int);
00203 vtkGetMacro(LightType, int);
00204 void SetLightTypeToHeadlight()
00205 {this->SetLightType(VTK_LIGHT_TYPE_HEADLIGHT);}
00206 void SetLightTypeToSceneLight()
00207 {
00208 this->SetTransformMatrix(NULL);
00209 this->SetLightType(VTK_LIGHT_TYPE_SCENE_LIGHT);
00210 }
00211 void SetLightTypeToCameraLight()
00212 {this->SetLightType(VTK_LIGHT_TYPE_CAMERA_LIGHT);}
00214
00216
00217 int LightTypeIsHeadlight();
00218 int LightTypeIsSceneLight();
00219 int LightTypeIsCameraLight();
00221
00222 void ReadSelf(istream& is);
00223 void WriteSelf(ostream& os);
00224
00225 protected:
00226 vtkLight();
00227 ~vtkLight();
00228
00229 float FocalPoint[3];
00230 float Position[3];
00231 float Intensity;
00232 float Color[3];
00233 int Switch;
00234 int Positional;
00235 float Exponent;
00236 float ConeAngle;
00237 float AttenuationValues[3];
00238 vtkMatrix4x4 *TransformMatrix;
00239 float TransformedFocalPointReturn[3];
00240 float TransformedPositionReturn[3];
00241 int LightType;
00242 private:
00243 vtkLight(const vtkLight&);
00244 void operator=(const vtkLight&);
00245 };
00246
00247 #endif