Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Graphics/vtkProjectedTexture.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkProjectedTexture.h,v $ 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 =========================================================================*/ 00031 #ifndef __vtkProjectedTexture_h 00032 #define __vtkProjectedTexture_h 00033 00034 #include "vtkDataSetToDataSetFilter.h" 00035 00036 #define VTK_PROJECTED_TEXTURE_USE_PINHOLE 0 00037 #define VTK_PROJECTED_TEXTURE_USE_TWO_MIRRORS 1 00038 00039 class VTK_GRAPHICS_EXPORT vtkProjectedTexture : public vtkDataSetToDataSetFilter 00040 { 00041 public: 00042 static vtkProjectedTexture *New(); 00043 vtkTypeRevisionMacro(vtkProjectedTexture,vtkDataSetToDataSetFilter); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00047 00048 vtkSetVector3Macro(Position,double); 00049 vtkGetVectorMacro(Position,double,3); 00051 00053 00055 void SetFocalPoint(double focalPoint[3]); 00056 void SetFocalPoint(double x, double y, double z); 00057 vtkGetVectorMacro(FocalPoint,double,3); 00059 00061 00063 vtkSetMacro(CameraMode, int); 00064 vtkGetMacro(CameraMode, int); 00065 void SetCameraModeToPinhole() {this->SetCameraMode(VTK_PROJECTED_TEXTURE_USE_PINHOLE);} 00066 void SetCameraModeToTwoMirror() {this->SetCameraMode(VTK_PROJECTED_TEXTURE_USE_TWO_MIRRORS);} 00068 00070 00071 vtkSetMacro(MirrorSeparation, double); 00072 vtkGetMacro(MirrorSeparation, double); 00074 00076 00077 vtkGetVectorMacro(Orientation,double,3); 00079 00080 // Set/Get the up vector of the projector. 00081 vtkSetVector3Macro(Up,double); 00082 vtkGetVectorMacro(Up,double,3); 00083 00084 // Set/Get the aspect ratio of a perpendicular cross-section of the 00085 // the projector's frustum. The aspect ratio consists of three 00086 // numbers: (x, y, z), where x is the width of the 00087 // frustum, y is the height, and z is the perpendicular 00088 // distance from the focus of the projector. 00089 vtkSetVector3Macro(AspectRatio,double); 00090 vtkGetVectorMacro(AspectRatio,double,3); 00091 00093 00094 vtkSetVector2Macro(SRange,double); 00095 vtkGetVectorMacro(SRange,double,2); 00097 00099 00100 vtkSetVector2Macro(TRange,double); 00101 vtkGetVectorMacro(TRange,double,2); 00103 00104 protected: 00105 vtkProjectedTexture(); 00106 ~vtkProjectedTexture() {}; 00107 00108 void Execute(); 00109 void ComputeNormal(); 00110 00111 int CameraMode; 00112 00113 double Position[3]; 00114 double Orientation[3]; 00115 double FocalPoint[3]; 00116 double Up[3]; 00117 double MirrorSeparation; 00118 double AspectRatio[3]; 00119 double SRange[2]; 00120 double TRange[2]; 00121 private: 00122 vtkProjectedTexture(const vtkProjectedTexture&); // Not implemented. 00123 void operator=(const vtkProjectedTexture&); // Not implemented. 00124 }; 00125 00126 #endif 00127