VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkLightActor.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00039 #ifndef __vtkLightActor_h 00040 #define __vtkLightActor_h 00041 00042 #include "vtkRenderingCoreModule.h" // For export macro 00043 #include "vtkProp3D.h" 00044 00045 class vtkLight; 00046 class vtkConeSource; 00047 class vtkPolyDataMapper; 00048 class vtkActor; 00049 class vtkCamera; 00050 class vtkCameraActor; 00051 class vtkBoundingBox; 00052 00053 class VTKRENDERINGCORE_EXPORT vtkLightActor : public vtkProp3D 00054 { 00055 public: 00056 static vtkLightActor *New(); 00057 vtkTypeMacro(vtkLightActor, vtkProp3D); 00058 void PrintSelf(ostream& os, vtkIndent indent); 00059 00061 00062 void SetLight(vtkLight *light); 00063 vtkGetObjectMacro(Light, vtkLight); 00065 00067 00070 void SetClippingRange(double dNear, double dFar); 00071 void SetClippingRange(const double a[2]); 00072 vtkGetVector2Macro(ClippingRange, double); 00074 00076 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00077 00079 virtual int HasTranslucentPolygonalGeometry(); 00080 00084 void ReleaseGraphicsResources(vtkWindow *); 00085 00087 double *GetBounds(); 00088 00090 unsigned long int GetMTime(); 00091 00092 protected: 00093 vtkLightActor(); 00094 ~vtkLightActor(); 00095 00096 void UpdateViewProps(); 00097 00098 vtkLight *Light; 00099 double ClippingRange[2]; 00100 00101 vtkConeSource *ConeSource; 00102 vtkPolyDataMapper *ConeMapper; 00103 vtkActor *ConeActor; 00104 00105 vtkCamera *CameraLight; 00106 vtkCameraActor *FrustumActor; 00107 00108 vtkBoundingBox *BoundingBox; 00109 00110 private: 00111 vtkLightActor(const vtkLightActor&); // Not implemented. 00112 void operator=(const vtkLightActor&); // Not implemented. 00113 }; 00114 00115 #endif