Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkSweptSurface Class Reference

#include <vtkSweptSurface.h>

Inheritance diagram for vtkSweptSurface:

Inheritance graph
[legend]
Collaboration diagram for vtkSweptSurface:

Collaboration graph
[legend]
List of all members.

Detailed Description

given a path and input geometry generate an (implicit) representation of a swept surface

vtkSweptSurface is a filter that is used to create a surface defined by moving a part along a path. In this implementation, the path is defined as a list of transformation matrices (vtkTransform), and the part geometry is implicitly defined using a volume (i.e., distance scalars in structured point dataset). The input to the filter is the geometry (i.e., a structured point dataset) and the output is a structured point dataset (i.e., an implicit representation of the swept surface). If you wish to generate a polygonal representation of swept surface you will have to use a contouring filter (e.g., vtkContourFilter). (You may also wish to use vtkDecimate to reduce mesh size.)

The swept surface algorithm can be summarized as follows. A geometry (i.e. the input) is swept along a path (list of transforms). At each point on the path the input is re-sampled into a volume using a union operation. (Union means that the minimum scalar value is retained - minimum distance value for example.) At the end, an implicit representation of the swept surface is defined.

See also:
vtkImplicitModeller vtkContourFilter vtkDecimate
Created by:
  • Schroeder, Will
CVS contributions (if > 5%):
  • Schroeder, Will (45%)
  • Lorensen, Bill (21%)
  • Martin, Ken (11%)
  • Law, Charles (7%)
CVS logs (CVSweb):
  • .h (/Patented/vtkSweptSurface.h)
  • .cxx (/Patented/vtkSweptSurface.cxx)
Tests:
vtkSweptSurface (Tests)

Definition at line 80 of file vtkSweptSurface.h.

Public Types

typedef vtkImageToImageFilter Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
unsigned long int GetMTime ()
virtual void SetSampleDimensions (int, int, int)
virtual void SetSampleDimensions (int[3])
virtual int * GetSampleDimensions ()
virtual void GetSampleDimensions (int data[3])
virtual void SetTransforms (vtkTransformCollection *)
virtual vtkTransformCollectionGetTransforms ()
virtual void SetFillValue (double)
virtual double GetFillValue ()
virtual void SetNumberOfInterpolationSteps (int)
virtual int GetNumberOfInterpolationSteps ()
virtual void SetMaximumNumberOfInterpolationSteps (int)
virtual int GetMaximumNumberOfInterpolationSteps ()
virtual void SetCapping (int)
virtual int GetCapping ()
virtual void CappingOn ()
virtual void CappingOff ()
virtual void SetModelBounds (double data[])
virtual double * GetModelBounds ()
virtual void GetModelBounds (double data[6])
void SetModelBounds (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
virtual void SetAdjustBounds (int)
virtual int GetAdjustBounds ()
virtual void AdjustBoundsOn ()
virtual void AdjustBoundsOff ()
virtual void SetAdjustDistance (double)
virtual double GetAdjustDistance ()

Static Public Member Functions

vtkSweptSurfaceNew ()
int IsTypeOf (const char *type)
vtkSweptSurfaceSafeDownCast (vtkObject *o)

Protected Member Functions

 vtkSweptSurface ()
 ~vtkSweptSurface ()
virtual void ExecuteData (vtkDataObject *)
virtual void ExecuteInformation (vtkImageData *inData, vtkImageData *outData)
void ExecuteInformation ()
void ComputeInputUpdateExtent (int inExt[6], int outExt[6])
void ComputeBounds (double origin[3], double ar[3], double bbox[24])
int ComputeNumberOfSteps (vtkTransform *t1, vtkTransform *t2, double bbox[24])
void SampleInput (vtkMatrix4x4 *m, int inDim[3], double inOrigin[3], double inAr[3], vtkDataArray *in, vtkDataArray *out)
void ComputeFootprint (vtkMatrix4x4 *m, int inDim[3], double inOrigin[3], double inSpacing[3], int Indicies[6])
void Cap (vtkDataArray *s)
void GetRelativePosition (vtkTransform &t, double *origin, double *position)
vtkMatrix4x4GetActorMatrixPointer (vtkTransform &t, double origin[3], double position[3], double orientation[3])
virtual void InterpolateStates (double *pos1, double *pos2, double *euler1, double *euler2, double t, double *posOut, double *eulerOut)

Protected Attributes

int SampleDimensions [3]
double FillValue
double ModelBounds [6]
int NumberOfInterpolationSteps
int MaximumNumberOfInterpolationSteps
int Capping
int AdjustBounds
double AdjustDistance
vtkTransformCollectionTransforms


Member Typedef Documentation

typedef vtkImageToImageFilter vtkSweptSurface::Superclass
 

Reimplemented from vtkImageToImageFilter.

Definition at line 84 of file vtkSweptSurface.h.


Constructor & Destructor Documentation

vtkSweptSurface::vtkSweptSurface  )  [protected]
 

vtkSweptSurface::~vtkSweptSurface  )  [protected]
 


Member Function Documentation

vtkSweptSurface* vtkSweptSurface::New  )  [static]
 

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkAlgorithm.

virtual const char* vtkSweptSurface::GetClassName  )  [virtual]
 

Reimplemented from vtkImageToImageFilter.

int vtkSweptSurface::IsTypeOf const char *  type  )  [static]
 

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkImageToImageFilter.

virtual int vtkSweptSurface::IsA const char *  type  )  [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 vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkImageToImageFilter.

vtkSweptSurface* vtkSweptSurface::SafeDownCast vtkObject o  )  [static]
 

Reimplemented from vtkImageToImageFilter.

void vtkSweptSurface::PrintSelf ostream &  os,
vtkIndent  indent
[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 vtkImageToImageFilter.

virtual void vtkSweptSurface::SetSampleDimensions int  ,
int  ,
int 
[virtual]
 

Specify i-j-k dimensions to sample input with. The higher the resolution the lower the error but the greater the processing time.

virtual void vtkSweptSurface::SetSampleDimensions int  [3]  )  [virtual]
 

Specify i-j-k dimensions to sample input with. The higher the resolution the lower the error but the greater the processing time.

virtual int* vtkSweptSurface::GetSampleDimensions  )  [virtual]
 

Specify i-j-k dimensions to sample input with. The higher the resolution the lower the error but the greater the processing time.

virtual void vtkSweptSurface::GetSampleDimensions int  data[3]  )  [virtual]
 

Specify i-j-k dimensions to sample input with. The higher the resolution the lower the error but the greater the processing time.

virtual void vtkSweptSurface::SetTransforms vtkTransformCollection  )  [virtual]
 

Specify a path (i.e., list of transforms) that the input moves along. At least two transforms must be used to define a path.

virtual vtkTransformCollection* vtkSweptSurface::GetTransforms  )  [virtual]
 

Specify a path (i.e., list of transforms) that the input moves along. At least two transforms must be used to define a path.

virtual void vtkSweptSurface::SetFillValue double   )  [virtual]
 

Voxels are initialized to this value. By default a large doubleing point value is used, since the scalar values are assumed to be a distance function.

virtual double vtkSweptSurface::GetFillValue  )  [virtual]
 

Voxels are initialized to this value. By default a large doubleing point value is used, since the scalar values are assumed to be a distance function.

virtual void vtkSweptSurface::SetNumberOfInterpolationSteps int   )  [virtual]
 

Value specifies/controls interpolation between the nodes (i.e., transforms) defining the path. A positive value indicates the number of steps to take between transforms (i.e., interpolation is performed). A negative value indicates that no interpolation to be performed, that is, only the points defined at each transform are used (interpolation not performed). A zero value indicates that automatic interpolation is to be performed, that is, interpolation is computed so that potential errors fall below the error bounds defined in the text. By default, automatic computation is performed (Interpolation = 0).

virtual int vtkSweptSurface::GetNumberOfInterpolationSteps  )  [virtual]
 

Value specifies/controls interpolation between the nodes (i.e., transforms) defining the path. A positive value indicates the number of steps to take between transforms (i.e., interpolation is performed). A negative value indicates that no interpolation to be performed, that is, only the points defined at each transform are used (interpolation not performed). A zero value indicates that automatic interpolation is to be performed, that is, interpolation is computed so that potential errors fall below the error bounds defined in the text. By default, automatic computation is performed (Interpolation = 0).

virtual void vtkSweptSurface::SetMaximumNumberOfInterpolationSteps int   )  [virtual]
 

Set/get the maximum number of interpolation steps to take. This is useful if you are limited in computation time or just know that the number of computed steps should not exceed a certain value.

virtual int vtkSweptSurface::GetMaximumNumberOfInterpolationSteps  )  [virtual]
 

Set/get the maximum number of interpolation steps to take. This is useful if you are limited in computation time or just know that the number of computed steps should not exceed a certain value.

virtual void vtkSweptSurface::SetCapping int   )  [virtual]
 

The outer boundary of the sampling volume can be capped (i.e., assigned fill value). This will "close" the implicit model if the geometry approaches close to or passes through the boundary of the volume (i.e., defined by ModelBounds instance variable). Capping turns on/off this capability. By default capping is on.

virtual int vtkSweptSurface::GetCapping  )  [virtual]
 

The outer boundary of the sampling volume can be capped (i.e., assigned fill value). This will "close" the implicit model if the geometry approaches close to or passes through the boundary of the volume (i.e., defined by ModelBounds instance variable). Capping turns on/off this capability. By default capping is on.

virtual void vtkSweptSurface::CappingOn  )  [virtual]
 

The outer boundary of the sampling volume can be capped (i.e., assigned fill value). This will "close" the implicit model if the geometry approaches close to or passes through the boundary of the volume (i.e., defined by ModelBounds instance variable). Capping turns on/off this capability. By default capping is on.

virtual void vtkSweptSurface::CappingOff  )  [virtual]
 

The outer boundary of the sampling volume can be capped (i.e., assigned fill value). This will "close" the implicit model if the geometry approaches close to or passes through the boundary of the volume (i.e., defined by ModelBounds instance variable). Capping turns on/off this capability. By default capping is on.

virtual void vtkSweptSurface::SetModelBounds double  data[]  )  [virtual]
 

Define the volume (in world coordinates) in which the sampling is to occur. Make sure that the volume is large enough to accommodate the motion of the geometry along the path. If the model bounds are set to all zero values, the model bounds will be computed automatically from the input geometry and path.

virtual double* vtkSweptSurface::GetModelBounds  )  [virtual]
 

Define the volume (in world coordinates) in which the sampling is to occur. Make sure that the volume is large enough to accommodate the motion of the geometry along the path. If the model bounds are set to all zero values, the model bounds will be computed automatically from the input geometry and path.

virtual void vtkSweptSurface::GetModelBounds double  data[6]  )  [virtual]
 

Define the volume (in world coordinates) in which the sampling is to occur. Make sure that the volume is large enough to accommodate the motion of the geometry along the path. If the model bounds are set to all zero values, the model bounds will be computed automatically from the input geometry and path.

void vtkSweptSurface::SetModelBounds double  xmin,
double  xmax,
double  ymin,
double  ymax,
double  zmin,
double  zmax
 

Define the volume (in world coordinates) in which the sampling is to occur. Make sure that the volume is large enough to accommodate the motion of the geometry along the path. If the model bounds are set to all zero values, the model bounds will be computed automatically from the input geometry and path.

virtual void vtkSweptSurface::SetAdjustBounds int   )  [virtual]
 

Control how the model bounds are computed. If the ivar AdjustBounds is set, then the bounds specified (or computed automatically) is modified by the fraction given by AdjustDistance. This means that the model bounds is expanded in each of the x-y-z directions.

virtual int vtkSweptSurface::GetAdjustBounds  )  [virtual]
 

Control how the model bounds are computed. If the ivar AdjustBounds is set, then the bounds specified (or computed automatically) is modified by the fraction given by AdjustDistance. This means that the model bounds is expanded in each of the x-y-z directions.

virtual void vtkSweptSurface::AdjustBoundsOn  )  [virtual]
 

Control how the model bounds are computed. If the ivar AdjustBounds is set, then the bounds specified (or computed automatically) is modified by the fraction given by AdjustDistance. This means that the model bounds is expanded in each of the x-y-z directions.

virtual void vtkSweptSurface::AdjustBoundsOff  )  [virtual]
 

Control how the model bounds are computed. If the ivar AdjustBounds is set, then the bounds specified (or computed automatically) is modified by the fraction given by AdjustDistance. This means that the model bounds is expanded in each of the x-y-z directions.

virtual void vtkSweptSurface::SetAdjustDistance double   )  [virtual]
 

Specify the amount to grow the model bounds (if the ivar AdjustBounds is set). The value is a fraction of the maximum length of the sides of the box specified by the model bounds.

virtual double vtkSweptSurface::GetAdjustDistance  )  [virtual]
 

Specify the amount to grow the model bounds (if the ivar AdjustBounds is set). The value is a fraction of the maximum length of the sides of the box specified by the model bounds.

unsigned long int vtkSweptSurface::GetMTime  )  [virtual]
 

Return this object's modified time.

Reimplemented from vtkObject.

virtual void vtkSweptSurface::ExecuteData vtkDataObject  )  [protected, virtual]
 

This method is the one that should be used by subclasses, right now the default implementation is to call the backwards compatibility method

Reimplemented from vtkImageToImageFilter.

virtual void vtkSweptSurface::ExecuteInformation vtkImageData inData,
vtkImageData outData
[protected, virtual]
 

Reimplemented from vtkImageToImageFilter.

void vtkSweptSurface::ExecuteInformation  )  [inline, protected, virtual]
 

Reimplemented from vtkImageToImageFilter.

Definition at line 182 of file vtkSweptSurface.h.

References vtkImageToImageFilter::ExecuteInformation().

void vtkSweptSurface::ComputeInputUpdateExtent int  inExt[6],
int  outExt[6]
[protected, virtual]
 

Reimplemented from vtkImageToImageFilter.

void vtkSweptSurface::ComputeBounds double  origin[3],
double  ar[3],
double  bbox[24]
[protected]
 

int vtkSweptSurface::ComputeNumberOfSteps vtkTransform t1,
vtkTransform t2,
double  bbox[24]
[protected]
 

void vtkSweptSurface::SampleInput vtkMatrix4x4 m,
int  inDim[3],
double  inOrigin[3],
double  inAr[3],
vtkDataArray in,
vtkDataArray out
[protected]
 

void vtkSweptSurface::ComputeFootprint vtkMatrix4x4 m,
int  inDim[3],
double  inOrigin[3],
double  inSpacing[3],
int  Indicies[6]
[protected]
 

void vtkSweptSurface::Cap vtkDataArray s  )  [protected]
 

void vtkSweptSurface::GetRelativePosition vtkTransform t,
double *  origin,
double *  position
[protected]
 

vtkMatrix4x4* vtkSweptSurface::GetActorMatrixPointer vtkTransform t,
double  origin[3],
double  position[3],
double  orientation[3]
[protected]
 

virtual void vtkSweptSurface::InterpolateStates double *  pos1,
double *  pos2,
double *  euler1,
double *  euler2,
double  t,
double *  posOut,
double *  eulerOut
[protected, virtual]
 


Member Data Documentation

int vtkSweptSurface::SampleDimensions[3] [protected]
 

Definition at line 201 of file vtkSweptSurface.h.

double vtkSweptSurface::FillValue [protected]
 

Definition at line 202 of file vtkSweptSurface.h.

double vtkSweptSurface::ModelBounds[6] [protected]
 

Definition at line 203 of file vtkSweptSurface.h.

int vtkSweptSurface::NumberOfInterpolationSteps [protected]
 

Definition at line 204 of file vtkSweptSurface.h.

int vtkSweptSurface::MaximumNumberOfInterpolationSteps [protected]
 

Definition at line 205 of file vtkSweptSurface.h.

int vtkSweptSurface::Capping [protected]
 

Definition at line 206 of file vtkSweptSurface.h.

int vtkSweptSurface::AdjustBounds [protected]
 

Definition at line 207 of file vtkSweptSurface.h.

double vtkSweptSurface::AdjustDistance [protected]
 

Definition at line 208 of file vtkSweptSurface.h.

vtkTransformCollection* vtkSweptSurface::Transforms [protected]
 

Definition at line 210 of file vtkSweptSurface.h.


The documentation for this class was generated from the following file: