VTK
vtkCameraInterpolator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCameraInterpolator.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 =========================================================================*/
54 #ifndef vtkCameraInterpolator_h
55 #define vtkCameraInterpolator_h
56 
57 #include "vtkRenderingCoreModule.h" // For export macro
58 #include "vtkObject.h"
59 
60 class vtkCamera;
61 class vtkCameraList;
63 class vtkCameraList;
64 
65 
67 {
68 public:
70  void PrintSelf(ostream& os, vtkIndent indent);
71 
74 
77 
79 
81  double GetMinimumT();
82  double GetMaximumT();
84 
86  void Initialize();
87 
92  void AddCamera(double t, vtkCamera *camera);
93 
96  void RemoveCamera(double t);
97 
101  void InterpolateCamera(double t, vtkCamera *camera);
102 
103 //BTX
105 
106  enum {INTERPOLATION_TYPE_LINEAR=0,
108  INTERPOLATION_TYPE_MANUAL
109  };
110 //ETX
112 
114 
122  vtkSetClampMacro(InterpolationType, int, INTERPOLATION_TYPE_LINEAR,
123  INTERPOLATION_TYPE_MANUAL);
124  vtkGetMacro(InterpolationType,int);
126  {this->SetInterpolationType(INTERPOLATION_TYPE_LINEAR);}
128  {this->SetInterpolationType(INTERPOLATION_TYPE_SPLINE);}
130  {this->SetInterpolationType(INTERPOLATION_TYPE_MANUAL);}
132 
134 
141 
143 
148  vtkGetObjectMacro(FocalPointInterpolator, vtkTupleInterpolator);
150 
152 
159 
161 
166  vtkGetObjectMacro(ViewAngleInterpolator, vtkTupleInterpolator);
168 
170 
175  vtkGetObjectMacro(ParallelScaleInterpolator, vtkTupleInterpolator);
177 
179 
184  vtkGetObjectMacro(ClippingRangeInterpolator, vtkTupleInterpolator);
186 
189  unsigned long GetMTime();
190 
191 protected:
194 
195  // Control the interpolation type
197 
198  // These perform the interpolation
205 
206  // Initialize the interpolating splines
210 
211  // Hold the list of cameras. PIMPL'd STL list.
212  vtkCameraList *CameraList;
213 
214 private:
215  vtkCameraInterpolator(const vtkCameraInterpolator&); // Not implemented.
216  void operator=(const vtkCameraInterpolator&); // Not implemented.
217 };
218 
219 #endif
vtkCameraInterpolator::New
static vtkCameraInterpolator * New()
vtkCameraInterpolator::RemoveCamera
void RemoveCamera(double t)
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkCameraInterpolator::~vtkCameraInterpolator
virtual ~vtkCameraInterpolator()
vtkCameraInterpolator::SetViewUpInterpolator
virtual void SetViewUpInterpolator(vtkTupleInterpolator *)
vtkCameraInterpolator::FocalPointInterpolator
vtkTupleInterpolator * FocalPointInterpolator
Definition: vtkCameraInterpolator.h:200
vtkCameraInterpolator::SetInterpolationTypeToLinear
void SetInterpolationTypeToLinear()
Definition: vtkCameraInterpolator.h:125
vtkCameraInterpolator::GetMaximumT
double GetMaximumT()
vtkCameraInterpolator::SetInterpolationTypeToSpline
void SetInterpolationTypeToSpline()
Definition: vtkCameraInterpolator.h:127
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkCameraInterpolator::vtkCameraInterpolator
vtkCameraInterpolator()
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkCameraInterpolator::ParallelScaleInterpolator
vtkTupleInterpolator * ParallelScaleInterpolator
Definition: vtkCameraInterpolator.h:203
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkCameraInterpolator
interpolate a series of cameras to update a new camera
Definition: vtkCameraInterpolator.h:67
vtkCameraInterpolator::InitializeInterpolation
void InitializeInterpolation()
vtkCameraInterpolator::GetNumberOfCameras
int GetNumberOfCameras()
vtkCameraInterpolator::SetPositionInterpolator
virtual void SetPositionInterpolator(vtkTupleInterpolator *)
vtkCameraInterpolator::ViewUpInterpolator
vtkTupleInterpolator * ViewUpInterpolator
Definition: vtkCameraInterpolator.h:201
vtkCameraInterpolator::ViewAngleInterpolator
vtkTupleInterpolator * ViewAngleInterpolator
Definition: vtkCameraInterpolator.h:202
vtkCameraInterpolator::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkCameraInterpolator::SetClippingRangeInterpolator
virtual void SetClippingRangeInterpolator(vtkTupleInterpolator *)
vtkCameraInterpolator::InterpolationType
int InterpolationType
Definition: vtkCameraInterpolator.h:196
vtkCameraInterpolator::SetInterpolationTypeToManual
void SetInterpolationTypeToManual()
Definition: vtkCameraInterpolator.h:129
vtkCameraInterpolator::AddCamera
void AddCamera(double t, vtkCamera *camera)
vtkCameraInterpolator::SetFocalPointInterpolator
virtual void SetFocalPointInterpolator(vtkTupleInterpolator *)
vtkCameraInterpolator::PositionInterpolator
vtkTupleInterpolator * PositionInterpolator
Definition: vtkCameraInterpolator.h:199
vtkCameraInterpolator::SetParallelScaleInterpolator
virtual void SetParallelScaleInterpolator(vtkTupleInterpolator *)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkRenderingCoreModule.h
vtkCamera
a virtual camera for 3D rendering
Definition: vtkCamera.h:49
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkObject.h
vtkCameraInterpolator::INTERPOLATION_TYPE_SPLINE
@ INTERPOLATION_TYPE_SPLINE
Definition: vtkCameraInterpolator.h:107
vtkCameraInterpolator::InitializeTime
vtkTimeStamp InitializeTime
Definition: vtkCameraInterpolator.h:208
vtkgl::t
GLdouble GLdouble t
Definition: vtkgl.h:11602
vtkTupleInterpolator
interpolate a tuple of arbitray size
Definition: vtkTupleInterpolator.h:54
vtkCameraInterpolator::GetMTime
unsigned long GetMTime()
vtkCameraInterpolator::CameraList
vtkCameraList * CameraList
Definition: vtkCameraInterpolator.h:212
vtkCameraInterpolator::InterpolateCamera
void InterpolateCamera(double t, vtkCamera *camera)
vtkCameraInterpolator::ClippingRangeInterpolator
vtkTupleInterpolator * ClippingRangeInterpolator
Definition: vtkCameraInterpolator.h:204
VTKRENDERINGCORE_EXPORT
#define VTKRENDERINGCORE_EXPORT
Definition: vtkRenderingCoreModule.h:15
vtkCameraInterpolator::Initialized
int Initialized
Definition: vtkCameraInterpolator.h:207
vtkCameraInterpolator::GetMinimumT
double GetMinimumT()
vtkX3D::PositionInterpolator
@ PositionInterpolator
Definition: vtkX3D.h:145
vtkCameraInterpolator::Initialize
void Initialize()
vtkCameraInterpolator::SetViewAngleInterpolator
virtual void SetViewAngleInterpolator(vtkTupleInterpolator *)