VTK
|
a nonlinear warp transformation More...
#include <vtkThinPlateSplineTransform.h>
Public Types | |
typedef vtkWarpTransform | Superclass |
![]() | |
typedef vtkAbstractTransform | Superclass |
![]() | |
typedef vtkObject | Superclass |
![]() | |
typedef vtkObjectBase | Superclass |
Public Member Functions | |
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 () |
unsigned char | GetDebug () |
void | SetDebug (unsigned char 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 () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkThinPlateSplineTransform * | SafeDownCast (vtkObjectBase *o) |
static vtkThinPlateSplineTransform * | New () |
![]() | |
static int | IsTypeOf (const char *type) |
static vtkWarpTransform * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static int | IsTypeOf (const char *type) |
static vtkAbstractTransform * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static int | IsTypeOf (const char *type) |
static vtkObject * | SafeDownCast (vtkObjectBase *o) |
static vtkObject * | New () |
static void | BreakOnError () |
static void | SetGlobalWarningDisplay (int val) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static int | GetGlobalWarningDisplay () |
![]() | |
static int | IsTypeOf (const char *name) |
static vtkObjectBase * | New () |
Protected Member Functions | |
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 &) |
Protected Attributes | |
double | Sigma |
vtkPoints * | SourceLandmarks |
vtkPoints * | TargetLandmarks |
double(* | BasisFunction )(double r) |
double(* | BasisDerivative )(double r, double &dUdr) |
int | Basis |
int | NumberOfPoints |
double ** | MatrixW |
![]() | |
int | InverseFlag |
int | InverseIterations |
double | InverseTolerance |
![]() | |
float | InternalFloatPoint [3] |
double | InternalDoublePoint [3] |
![]() | |
unsigned char | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
![]() | |
int | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
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.)
Definition at line 51 of file vtkThinPlateSplineTransform.h.
Definition at line 54 of file vtkThinPlateSplineTransform.h.
|
protected |
|
protected |
|
static |
|
virtual |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkWarpTransform.
|
static |
|
protectedvirtual |
Reimplemented from vtkWarpTransform.
vtkThinPlateSplineTransform* vtkThinPlateSplineTransform::NewInstance | ( | ) | const |
|
virtual |
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from vtkAbstractTransform.
|
static |
|
virtual |
Specify the 'stiffness' of the spline. The default is 1.0.
|
virtual |
Specify the 'stiffness' of the spline. The default is 1.0.
void vtkThinPlateSplineTransform::SetBasis | ( | int | basis | ) |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
|
virtual |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
|
inline |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
Definition at line 71 of file vtkThinPlateSplineTransform.h.
|
inline |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
Definition at line 72 of file vtkThinPlateSplineTransform.h.
const char* vtkThinPlateSplineTransform::GetBasisAsString | ( | ) |
Specify the radial basis function to use. The default is R2LogR which is appropriate for 2D. Use |R| (SetBasisToR) if your data is 3D. Alternatively specify your own basis function, however this will mean that the transform will no longer be a true thin-plate spline.
|
inline |
Set the radial basis function to a custom function. You must supply both the function and its derivative with respect to r.
Definition at line 80 of file vtkThinPlateSplineTransform.h.
|
inline |
Set the radial basis function to a custom function. You must supply both the function and its derivative with respect to r.
Definition at line 85 of file vtkThinPlateSplineTransform.h.
void vtkThinPlateSplineTransform::SetSourceLandmarks | ( | vtkPoints * | source | ) |
Set the source landmarks for the warp. If you add or change the vtkPoints object, you must call Modified() on it or the transformation might not update.
|
virtual |
Set the source landmarks for the warp. If you add or change the vtkPoints object, you must call Modified() on it or the transformation might not update.
void vtkThinPlateSplineTransform::SetTargetLandmarks | ( | vtkPoints * | target | ) |
Set the target landmarks for the warp. If you add or change the vtkPoints object, you must call Modified() on it or the transformation might not update.
|
virtual |
Set the target landmarks for the warp. If you add or change the vtkPoints object, you must call Modified() on it or the transformation might not update.
|
virtual |
Get the MTime.
Reimplemented from vtkAbstractTransform.
|
virtual |
Make another transform of the same type.
Implements vtkAbstractTransform.
|
protectedvirtual |
Prepare the transformation for application.
Reimplemented from vtkAbstractTransform.
|
protectedvirtual |
This method does no type checking, use DeepCopy instead.
Reimplemented from vtkAbstractTransform.
|
protectedvirtual |
If the InverseFlag is set to 0, then a call to InternalTransformPoint results in a call to ForwardTransformPoint.
Implements vtkWarpTransform.
|
protectedvirtual |
If the InverseFlag is set to 0, then a call to InternalTransformPoint results in a call to ForwardTransformPoint.
Implements vtkWarpTransform.
|
protectedvirtual |
Calculate the forward transform as well as the derivative.
Implements vtkWarpTransform.
|
protectedvirtual |
Calculate the forward transform as well as the derivative.
Implements vtkWarpTransform.
|
protected |
Definition at line 131 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 132 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 133 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 137 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 138 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 140 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 142 of file vtkThinPlateSplineTransform.h.
|
protected |
Definition at line 143 of file vtkThinPlateSplineTransform.h.