VTK
vtkTransformInterpolator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkTransformInterpolator.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 =========================================================================*/
53 #ifndef vtkTransformInterpolator_h
54 #define vtkTransformInterpolator_h
55 
56 #include "vtkRenderingCoreModule.h" // For export macro
57 #include "vtkObject.h"
58 
59 
60 class vtkTransform;
61 class vtkMatrix4x4;
62 class vtkProp3D;
65 class vtkTransformList;
66 
67 
68 class VTKRENDERINGCORE_EXPORT vtkTransformInterpolator : public vtkObject
69 {
70 public:
72  void PrintSelf(ostream& os, vtkIndent indent) override;
73 
78 
83 
85 
90  double GetMinimumT();
91  double GetMaximumT();
93 
97  void Initialize();
98 
100 
108  void AddTransform(double t, vtkTransform *xform);
109  void AddTransform(double t, vtkMatrix4x4 *matrix);
110  void AddTransform(double t, vtkProp3D *prop3D);
112 
117  void RemoveTransform(double t);
118 
124  void InterpolateTransform(double t, vtkTransform *xform);
125 
129  enum {INTERPOLATION_TYPE_LINEAR=0,
131  INTERPOLATION_TYPE_MANUAL
132  };
133 
135 
144  vtkSetClampMacro(InterpolationType,int, INTERPOLATION_TYPE_LINEAR,
145  INTERPOLATION_TYPE_MANUAL);
146  vtkGetMacro(InterpolationType,int);
148  {this->SetInterpolationType(INTERPOLATION_TYPE_LINEAR);}
150  {this->SetInterpolationType(INTERPOLATION_TYPE_SPLINE);}
152  {this->SetInterpolationType(INTERPOLATION_TYPE_MANUAL);}
154 
156 
165 
167 
174  vtkGetObjectMacro(ScaleInterpolator,vtkTupleInterpolator);
176 
178 
185  vtkGetObjectMacro(RotationInterpolator,vtkQuaternionInterpolator);
187 
192  vtkMTimeType GetMTime() override;
193 
194 protected:
197 
198  // Control the interpolation type
200 
201  // Interpolators
205 
206  // Initialize the interpolating splines
210 
211  // Keep track of inserted data
212  vtkTransformList *TransformList;
213 
214 private:
216  void operator=(const vtkTransformInterpolator&) = delete;
217 
218 };
219 
220 #endif
vtkTransformInterpolator::GetNumberOfTransforms
int GetNumberOfTransforms()
Return the number of transforms in the list of transforms.
vtkTransformInterpolator::RotationInterpolator
vtkQuaternionInterpolator * RotationInterpolator
Definition: vtkTransformInterpolator.h:204
vtkTransformInterpolator::Initialize
void Initialize()
Clear the list of transforms.
vtkProp3D
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:47
vtkQuaternionInterpolator
interpolate a quaternion
Definition: vtkQuaternionInterpolator.h:65
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:36
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:60
vtkTransformInterpolator::InterpolationType
int InterpolationType
Definition: vtkTransformInterpolator.h:199
vtkTransformInterpolator::PositionInterpolator
vtkTupleInterpolator * PositionInterpolator
Definition: vtkTransformInterpolator.h:202
vtkTransformInterpolator::vtkTransformInterpolator
vtkTransformInterpolator()
vtkTransformInterpolator::INTERPOLATION_TYPE_SPLINE
@ INTERPOLATION_TYPE_SPLINE
Definition: vtkTransformInterpolator.h:130
vtkTransformInterpolator::AddTransform
void AddTransform(double t, vtkMatrix4x4 *matrix)
vtkTransform
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:61
vtkTransformInterpolator::SetInterpolationTypeToSpline
void SetInterpolationTypeToSpline()
Definition: vtkTransformInterpolator.h:149
vtkTransformInterpolator::GetMaximumT
double GetMaximumT()
vtkTransformInterpolator::GetMTime
vtkMTimeType GetMTime() override
Override GetMTime() because we depend on the interpolators which may be modified outside of this clas...
vtkTransformInterpolator::AddTransform
void AddTransform(double t, vtkProp3D *prop3D)
vtkTransformInterpolator::~vtkTransformInterpolator
~vtkTransformInterpolator() override
vtkTransformInterpolator::SetPositionInterpolator
virtual void SetPositionInterpolator(vtkTupleInterpolator *)
Set/Get the tuple interpolator used to interpolate the position portion of the transformation matrix.
vtkTransformInterpolator::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTransformInterpolator::New
static vtkTransformInterpolator * New()
Instantiate the class.
vtkTransformInterpolator::SetScaleInterpolator
virtual void SetScaleInterpolator(vtkTupleInterpolator *)
Set/Get the tuple interpolator used to interpolate the scale portion of the transformation matrix.
vtkTransformInterpolator::AddTransform
void AddTransform(double t, vtkTransform *xform)
Add another transform to the list of transformations defining the transform function.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkMatrix4x4
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:42
vtkTransformInterpolator::RemoveTransform
void RemoveTransform(double t)
Delete the transform at a particular parameter t.
vtkTransformInterpolator::Initialized
int Initialized
Definition: vtkTransformInterpolator.h:207
vtkTransformInterpolator::GetMinimumT
double GetMinimumT()
Obtain some information about the interpolation range.
vtkObject.h
vtkTransformInterpolator::InitializeTime
vtkTimeStamp InitializeTime
Definition: vtkTransformInterpolator.h:208
vtkTransformInterpolator::TransformList
vtkTransformList * TransformList
Definition: vtkTransformInterpolator.h:212
vtkTupleInterpolator
interpolate a tuple of arbitrary size
Definition: vtkTupleInterpolator.h:55
vtkTransformInterpolator::SetRotationInterpolator
virtual void SetRotationInterpolator(vtkQuaternionInterpolator *)
Set/Get the tuple interpolator used to interpolate the orientation portion of the transformation matr...
vtkTransformInterpolator::InterpolateTransform
void InterpolateTransform(double t, vtkTransform *xform)
Interpolate the list of transforms and determine a new transform (i.e., fill in the transformation pr...
vtkTransformInterpolator
interpolate a series of transformation matrices
Definition: vtkTransformInterpolator.h:69
vtkTransformInterpolator::InitializeInterpolation
void InitializeInterpolation()
vtkTransformInterpolator::SetInterpolationTypeToLinear
void SetInterpolationTypeToLinear()
Definition: vtkTransformInterpolator.h:147
vtkTransformInterpolator::SetInterpolationTypeToManual
void SetInterpolationTypeToManual()
Definition: vtkTransformInterpolator.h:151
vtkX3D::PositionInterpolator
@ PositionInterpolator
Definition: vtkX3D.h:145
vtkMTimeType
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:302
vtkTransformInterpolator::ScaleInterpolator
vtkTupleInterpolator * ScaleInterpolator
Definition: vtkTransformInterpolator.h:203