|
virtual int | IsA (const char *type) |
|
vtkThinPlateSplineTransform * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
unsigned long | GetMTime () |
|
vtkAbstractTransform * | MakeTransform () |
|
|
virtual double | GetSigma () |
|
virtual void | SetSigma (double) |
|
|
void | SetBasis (int basis) |
|
virtual int | GetBasis () |
|
void | SetBasisToR () |
|
void | SetBasisToR2LogR () |
|
const char * | GetBasisAsString () |
|
|
void | SetBasisFunction (double(*U)(double r)) |
|
void | SetBasisDerivative (double(*dUdr)(double r, double &dU)) |
|
|
void | SetSourceLandmarks (vtkPoints *source) |
|
virtual vtkPoints * | GetSourceLandmarks () |
|
|
void | SetTargetLandmarks (vtkPoints *target) |
|
virtual vtkPoints * | GetTargetLandmarks () |
|
vtkWarpTransform * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
void | Inverse () |
|
virtual int | GetInverseFlag () |
|
virtual void | SetInverseTolerance (double) |
|
virtual double | GetInverseTolerance () |
|
virtual void | SetInverseIterations (int) |
|
virtual int | GetInverseIterations () |
|
void | InternalTransformPoint (const float in[3], float out[3]) |
|
void | InternalTransformPoint (const double in[3], double out[3]) |
|
void | InternalTransformDerivative (const float in[3], float out[3], float derivative[3][3]) |
|
void | InternalTransformDerivative (const double in[3], double out[3], double derivative[3][3]) |
|
void | TemplateTransformPoint (const float in[3], float out[3]) |
|
void | TemplateTransformPoint (const double in[3], double out[3]) |
|
void | TemplateTransformPoint (const float in[3], float out[3], float derivative[3][3]) |
|
void | TemplateTransformPoint (const double in[3], double out[3], double derivative[3][3]) |
|
void | TemplateTransformInverse (const float in[3], float out[3]) |
|
void | TemplateTransformInverse (const double in[3], double out[3]) |
|
void | TemplateTransformInverse (const float in[3], float out[3], float derivative[3][3]) |
|
void | TemplateTransformInverse (const double in[3], double out[3], double derivative[3][3]) |
|
vtkAbstractTransform * | NewInstance () const |
|
double * | TransformNormalAtPoint (const double point[3], const double normal[3]) |
|
double * | TransformVectorAtPoint (const double point[3], const double vector[3]) |
|
virtual void | TransformPoints (vtkPoints *inPts, vtkPoints *outPts) |
|
vtkAbstractTransform * | GetInverse () |
|
void | SetInverse (vtkAbstractTransform *transform) |
|
void | DeepCopy (vtkAbstractTransform *) |
|
void | Update () |
|
virtual int | CircuitCheck (vtkAbstractTransform *transform) |
|
virtual void | UnRegister (vtkObjectBase *O) |
|
void | TransformPoint (const float in[3], float out[3]) |
|
void | TransformPoint (const double in[3], double out[3]) |
|
double * | TransformPoint (double x, double y, double z) |
|
double * | TransformPoint (const double point[3]) |
|
float * | TransformFloatPoint (float x, float y, float z) |
|
float * | TransformFloatPoint (const float point[3]) |
|
double * | TransformDoublePoint (double x, double y, double z) |
|
double * | TransformDoublePoint (const double point[3]) |
|
void | TransformNormalAtPoint (const float point[3], const float in[3], float out[3]) |
|
void | TransformNormalAtPoint (const double point[3], const double in[3], double out[3]) |
|
double * | TransformDoubleNormalAtPoint (const double point[3], const double normal[3]) |
|
float * | TransformFloatNormalAtPoint (const float point[3], const float normal[3]) |
|
void | TransformVectorAtPoint (const float point[3], const float in[3], float out[3]) |
|
void | TransformVectorAtPoint (const double point[3], const double in[3], double out[3]) |
|
double * | TransformDoubleVectorAtPoint (const double point[3], const double vector[3]) |
|
float * | TransformFloatVectorAtPoint (const float point[3], const float vector[3]) |
|
virtual void | TransformPointsNormalsVectors (vtkPoints *inPts, vtkPoints *outPts, vtkDataArray *inNms, vtkDataArray *outNms, vtkDataArray *inVrs, vtkDataArray *outVrs) |
|
vtkObject * | NewInstance () const |
|
virtual void | DebugOn () |
|
virtual void | DebugOff () |
|
bool | GetDebug () |
|
void | SetDebug (bool debugFlag) |
|
virtual void | Modified () |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
|
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
|
vtkCommand * | GetCommand (unsigned long tag) |
|
void | RemoveObserver (vtkCommand *) |
|
void | RemoveObservers (unsigned long event, vtkCommand *) |
|
void | RemoveObservers (const char *event, vtkCommand *) |
|
int | HasObserver (unsigned long event, vtkCommand *) |
|
int | HasObserver (const char *event, vtkCommand *) |
|
void | RemoveObserver (unsigned long tag) |
|
void | RemoveObservers (unsigned long event) |
|
void | RemoveObservers (const char *event) |
|
void | RemoveAllObservers () |
|
int | HasObserver (unsigned long event) |
|
int | HasObserver (const char *event) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
|
int | InvokeEvent (unsigned long event, void *callData) |
|
int | InvokeEvent (const char *event, void *callData) |
|
int | InvokeEvent (unsigned long event) |
|
int | InvokeEvent (const char *event) |
|
const char * | GetClassName () const |
|
virtual void | Delete () |
|
virtual void | FastDelete () |
|
void | Print (ostream &os) |
|
virtual void | Register (vtkObjectBase *o) |
|
void | SetReferenceCount (int) |
|
void | PrintRevisions (ostream &) |
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
|
int | GetReferenceCount () |
|
|
virtual vtkObjectBase * | NewInstanceInternal () const |
|
| vtkThinPlateSplineTransform () |
|
| ~vtkThinPlateSplineTransform () |
|
void | InternalUpdate () |
|
void | InternalDeepCopy (vtkAbstractTransform *transform) |
|
void | ForwardTransformPoint (const float in[3], float out[3]) |
|
void | ForwardTransformPoint (const double in[3], double out[3]) |
|
void | ForwardTransformDerivative (const float in[3], float out[3], float derivative[3][3]) |
|
void | ForwardTransformDerivative (const double in[3], double out[3], double derivative[3][3]) |
|
| vtkWarpTransform () |
|
| ~vtkWarpTransform () |
|
virtual void | InverseTransformPoint (const float in[3], float out[3]) |
|
virtual void | InverseTransformPoint (const double in[3], double out[3]) |
|
virtual void | InverseTransformDerivative (const float in[3], float out[3], float derivative[3][3]) |
|
virtual void | InverseTransformDerivative (const double in[3], double out[3], double derivative[3][3]) |
|
| vtkAbstractTransform () |
|
| ~vtkAbstractTransform () |
|
| vtkObject () |
|
virtual | ~vtkObject () |
|
virtual void | RegisterInternal (vtkObjectBase *, int check) |
|
virtual void | UnRegisterInternal (vtkObjectBase *, int check) |
|
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
|
void | InternalReleaseFocus () |
|
| vtkObjectBase () |
|
virtual | ~vtkObjectBase () |
|
virtual void | CollectRevisions (ostream &) |
|
virtual void | ReportReferences (vtkGarbageCollector *) |
|
| vtkObjectBase (const vtkObjectBase &) |
|
void | operator= (const vtkObjectBase &) |
|
a nonlinear warp transformation
vtkThinPlateSplineTransform describes a nonlinear warp transform defined by a set of source and target landmarks. Any point on the mesh close to a source landmark will be moved to a place close to the corresponding target landmark. The points in between are interpolated smoothly using Bookstein's Thin Plate Spline algorithm.
To obtain a correct TPS warp, use the R2LogR kernel if your data is 2D, and the R kernel if your data is 3D. Or you can specify your own RBF. (Hence this class is more general than a pure TPS transform.)
- Warning
- 1) The inverse transform is calculated using an iterative method, and is several times more expensive than the forward transform. 2) Whenever you add, subtract, or set points you must call Modified() on the vtkPoints object, or the transformation might not update. 3) Collinear point configurations (except those that lie in the XY plane) result in an unstable transformation.
- See also
- vtkGridTransform vtkGeneralTransform
- Tests:
- vtkThinPlateSplineTransform (Tests)
Definition at line 51 of file vtkThinPlateSplineTransform.h.