VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkProjectedTexture.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 =========================================================================*/ 00031 #ifndef __vtkProjectedTexture_h 00032 #define __vtkProjectedTexture_h 00033 00034 #include "vtkDataSetAlgorithm.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 vtkDataSetAlgorithm 00040 { 00041 public: 00042 static vtkProjectedTexture *New(); 00043 vtkTypeMacro(vtkProjectedTexture,vtkDataSetAlgorithm); 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 00081 00082 vtkSetVector3Macro(Up,double); 00083 vtkGetVectorMacro(Up,double,3); 00085 00087 00093 vtkSetVector3Macro(AspectRatio,double); 00094 vtkGetVectorMacro(AspectRatio,double,3); 00096 00098 00099 vtkSetVector2Macro(SRange,double); 00100 vtkGetVectorMacro(SRange,double,2); 00102 00104 00105 vtkSetVector2Macro(TRange,double); 00106 vtkGetVectorMacro(TRange,double,2); 00108 00109 protected: 00110 vtkProjectedTexture(); 00111 ~vtkProjectedTexture() {}; 00112 00113 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00114 void ComputeNormal(); 00115 00116 int CameraMode; 00117 00118 double Position[3]; 00119 double Orientation[3]; 00120 double FocalPoint[3]; 00121 double Up[3]; 00122 double MirrorSeparation; 00123 double AspectRatio[3]; 00124 double SRange[2]; 00125 double TRange[2]; 00126 private: 00127 vtkProjectedTexture(const vtkProjectedTexture&); // Not implemented. 00128 void operator=(const vtkProjectedTexture&); // Not implemented. 00129 }; 00130 00131 #endif 00132