General Transforms, anyone?

David Gobbi dgobbi at
Thu Dec 16 11:26:27 EST 1999

Hi All,

I'd like to hear what people think about the idea of a 
'general transform,' i.e. a base class with the following

cass vtkGeneralTransform: public vtkObject
  // Description:
  // Apply transform to 'in', result is placed in 'out'
  void TransformPoint(double in[3], double out[3]);
  void TransformPoint(float in[3], float out[3]); 

  // Description:
  // Apply transform, return result (for use in tcl and python)
  float *TransformPoint(float x, float y, float z);

  // Description:
  // Apply transform to a list of points
  void TransformPoints(vtkPoints *inPts, vtkPoints *outPts);


The subclasses of the vtkGeneralTransform would be
 - the vtkTransform class
 - the vtkThinPlateSplineTransform class (i.e. Tim Hutton's
         vtkThinPlateSplineWarpMesh class in modified form)
 - a vtkGridTransform class (a warp transform described as
         a set of displacement vectors along a uniform grid,
         I've written it and will be releasing it early next

The vtkTransformPolyDataFilter could easily be adapted to apply
a vtkGeneralTransform to vtkPolyData, and the vtkImageReslice
class could easily be adapted to apply a vtkGeneralTransform
to vtkImageData and vtkStructuredPoints data.

The reason I'm proposing this is that I _really_ want to
use Tim's thin plate spline implementation with my vtkImageReslice 
filter, and this seems like the cleanest way to do it.

 - David

  David Gobbi, MSc                    dgobbi at
  Advanced Imaging Research Group
  Robarts Research Institute, University of Western Ontario

This is the private VTK discussion list.  Please keep messages on-topic.
Check the FAQ at: <>
To UNSUBSCRIBE, send message body containing "unsubscribe vtkusers" to
<majordomo at>.  For help, send message body containing
"info vtkusers" to the same address.     Live long and prosper.

More information about the vtkusers mailing list