VTK
vtkProjectedTexture.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkProjectedTexture.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
31 #ifndef __vtkProjectedTexture_h
32 #define __vtkProjectedTexture_h
33 
34 #include "vtkDataSetAlgorithm.h"
35 
36 #define VTK_PROJECTED_TEXTURE_USE_PINHOLE 0
37 #define VTK_PROJECTED_TEXTURE_USE_TWO_MIRRORS 1
38 
40 {
41 public:
42  static vtkProjectedTexture *New();
44  void PrintSelf(ostream& os, vtkIndent indent);
45 
47 
48  vtkSetVector3Macro(Position,double);
49  vtkGetVectorMacro(Position,double,3);
51 
53 
55  void SetFocalPoint(double focalPoint[3]);
56  void SetFocalPoint(double x, double y, double z);
57  vtkGetVectorMacro(FocalPoint,double,3);
59 
61 
63  vtkSetMacro(CameraMode, int);
64  vtkGetMacro(CameraMode, int);
68 
70 
71  vtkSetMacro(MirrorSeparation, double);
72  vtkGetMacro(MirrorSeparation, double);
74 
76 
77  vtkGetVectorMacro(Orientation,double,3);
79 
80  // Set/Get the up vector of the projector.
81  vtkSetVector3Macro(Up,double);
82  vtkGetVectorMacro(Up,double,3);
83 
84  // Set/Get the aspect ratio of a perpendicular cross-section of the
85  // the projector's frustum. The aspect ratio consists of three
86  // numbers: (x, y, z), where x is the width of the
87  // frustum, y is the height, and z is the perpendicular
88  // distance from the focus of the projector.
89  vtkSetVector3Macro(AspectRatio,double);
90  vtkGetVectorMacro(AspectRatio,double,3);
91 
93 
94  vtkSetVector2Macro(SRange,double);
95  vtkGetVectorMacro(SRange,double,2);
97 
99 
100  vtkSetVector2Macro(TRange,double);
101  vtkGetVectorMacro(TRange,double,2);
103 
104 protected:
107 
109  void ComputeNormal();
110 
112 
113  double Position[3];
114  double Orientation[3];
115  double FocalPoint[3];
116  double Up[3];
118  double AspectRatio[3];
119  double SRange[2];
120  double TRange[2];
121 private:
122  vtkProjectedTexture(const vtkProjectedTexture&); // Not implemented.
123  void operator=(const vtkProjectedTexture&); // Not implemented.
124 };
125 
126 #endif
127