vtkSweptSurface Class Reference
#include <vtkSweptSurface.h>
Inheritance diagram for vtkSweptSurface:
[legend]Collaboration diagram for vtkSweptSurface:
[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:
-
- 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 vtkTransformCollection * | GetTransforms () |
|
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 |
vtkSweptSurface * | New () |
int | IsTypeOf (const char *type) |
vtkSweptSurface * | SafeDownCast (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) |
vtkMatrix4x4 * | GetActorMatrixPointer (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 |
vtkTransformCollection * | Transforms |
Member Typedef Documentation
Constructor & Destructor Documentation
vtkSweptSurface::vtkSweptSurface |
( |
|
) |
[protected] |
|
Member Function Documentation
|
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] |
|
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. |
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. |
|
Specify a path (i.e., list of transforms) that the input moves along. At least two transforms must be used to define a path. |
|
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. |
void vtkSweptSurface::ExecuteInformation |
( |
|
) |
[inline, protected, virtual] |
|
void vtkSweptSurface::ComputeInputUpdateExtent |
( |
int |
inExt[6], |
|
|
int |
outExt[6] |
|
) |
[protected, virtual] |
|
void vtkSweptSurface::ComputeBounds |
( |
double |
origin[3], |
|
|
double |
ar[3], |
|
|
double |
bbox[24] |
|
) |
[protected] |
|
void vtkSweptSurface::ComputeFootprint |
( |
vtkMatrix4x4 * |
m, |
|
|
int |
inDim[3], |
|
|
double |
inOrigin[3], |
|
|
double |
inSpacing[3], |
|
|
int |
Indicies[6] |
|
) |
[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
The documentation for this class was generated from the following file: