VTK
|
Cut vtkDataSet with user-specified implicit function. More...
#include <vtkCutter.h>
Public Types | |
typedef vtkPolyDataAlgorithm | Superclass |
![]() | |
typedef vtkAlgorithm | Superclass |
![]() | |
typedef vtkObject | Superclass |
enum | DesiredOutputPrecision { SINGLE_PRECISION, DOUBLE_PRECISION, DEFAULT_PRECISION } |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkCutter * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
unsigned long | GetMTime () |
void | CreateDefaultLocator () |
void | SetValue (int i, double value) |
double | GetValue (int i) |
double * | GetValues () |
void | GetValues (double *contourValues) |
void | SetNumberOfContours (int number) |
int | GetNumberOfContours () |
void | GenerateValues (int numContours, double range[2]) |
void | GenerateValues (int numContours, double rangeStart, double rangeEnd) |
virtual void | SetCutFunction (vtkImplicitFunction *) |
virtual vtkImplicitFunction * | GetCutFunction () |
virtual void | SetGenerateCutScalars (int) |
virtual int | GetGenerateCutScalars () |
virtual void | GenerateCutScalarsOn () |
virtual void | GenerateCutScalarsOff () |
virtual void | SetGenerateTriangles (int) |
virtual int | GetGenerateTriangles () |
virtual void | GenerateTrianglesOn () |
virtual void | GenerateTrianglesOff () |
void | SetLocator (vtkIncrementalPointLocator *locator) |
virtual vtkIncrementalPointLocator * | GetLocator () |
virtual void | SetSortBy (int) |
virtual int | GetSortBy () |
void | SetSortByToSortByValue () |
void | SetSortByToSortByCell () |
const char * | GetSortByAsString () |
virtual void | SetOutputPointsPrecision (int) |
virtual int | GetOutputPointsPrecision () |
![]() | |
vtkPolyDataAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
vtkDataObject * | GetInput () |
vtkDataObject * | GetInput (int port) |
vtkPolyData * | GetPolyDataInput (int port) |
vtkPolyData * | GetOutput () |
vtkPolyData * | GetOutput (int) |
virtual void | SetOutput (vtkDataObject *d) |
void | SetInputData (vtkDataObject *) |
void | SetInputData (int, vtkDataObject *) |
void | AddInputData (vtkDataObject *) |
void | AddInputData (int, vtkDataObject *) |
![]() | |
vtkAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
int | HasExecutive () |
vtkExecutive * | GetExecutive () |
virtual void | SetExecutive (vtkExecutive *executive) |
virtual int | ModifyRequest (vtkInformation *request, int when) |
vtkInformation * | GetInputPortInformation (int port) |
vtkInformation * | GetOutputPortInformation (int port) |
int | GetNumberOfInputPorts () |
int | GetNumberOfOutputPorts () |
void | UpdateProgress (double amount) |
vtkInformation * | GetInputArrayInformation (int idx) |
void | RemoveAllInputs () |
vtkDataObject * | GetOutputDataObject (int port) |
virtual void | RemoveInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | RemoveInputConnection (int port, int idx) |
virtual void | RemoveAllInputConnections (int port) |
int | GetNumberOfInputConnections (int port) |
int | GetTotalNumberOfInputConnections () |
vtkAlgorithmOutput * | GetInputConnection (int port, int index) |
vtkAlgorithm * | GetInputAlgorithm (int port, int index, int &algPort) |
vtkAlgorithm * | GetInputAlgorithm (int port, int index) |
vtkExecutive * | GetInputExecutive (int port, int index) |
vtkInformation * | GetInputInformation (int port, int index) |
vtkInformation * | GetOutputInformation (int port) |
virtual void | UpdateInformation () |
virtual void | PropagateUpdateExtent () |
virtual void | UpdateWholeExtent () |
void | ConvertTotalInputToPortConnection (int ind, int &port, int &conn) |
virtual double | ComputePriority () |
int | SetUpdateExtentToWholeExtent (int port) |
int | SetUpdateExtentToWholeExtent () |
void | SetUpdateExtent (int port, int extent[6]) |
int | ProcessRequest (vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo) |
virtual int | ComputePipelineMTime (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, unsigned long *mtime) |
virtual vtkInformation * | GetInformation () |
virtual void | SetInformation (vtkInformation *) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
virtual void | SetAbortExecute (int) |
virtual int | GetAbortExecute () |
virtual void | AbortExecuteOn () |
virtual void | AbortExecuteOff () |
virtual void | SetProgress (double) |
virtual double | GetProgress () |
void | SetProgressText (const char *ptext) |
virtual char * | GetProgressText () |
virtual unsigned long | GetErrorCode () |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, const char *name) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, int fieldAttributeType) |
virtual void | SetInputArrayToProcess (int idx, vtkInformation *info) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName) |
vtkDataObject * | GetInputDataObject (int port, int connection) |
virtual void | SetInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | SetInputConnection (vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (vtkAlgorithmOutput *input) |
virtual void | SetInputDataObject (int port, vtkDataObject *data) |
virtual void | SetInputDataObject (vtkDataObject *data) |
virtual void | AddInputDataObject (int port, vtkDataObject *data) |
virtual void | AddInputDataObject (vtkDataObject *data) |
vtkAlgorithmOutput * | GetOutputPort (int index) |
vtkAlgorithmOutput * | GetOutputPort () |
vtkAlgorithm * | GetInputAlgorithm () |
vtkExecutive * | GetInputExecutive () |
vtkInformation * | GetInputInformation () |
virtual void | Update (int port) |
virtual void | Update () |
virtual void | SetReleaseDataFlag (int) |
virtual int | GetReleaseDataFlag () |
void | ReleaseDataFlagOn () |
void | ReleaseDataFlagOff () |
int | UpdateExtentIsEmpty (vtkInformation *pinfo, vtkDataObject *output) |
int | UpdateExtentIsEmpty (vtkInformation *pinfo, int extentType) |
void | SetUpdateExtent (int port, int piece, int numPieces, int ghostLevel) |
void | SetUpdateExtent (int piece, int numPieces, int ghostLevel) |
void | SetUpdateExtent (int extent[6]) |
int * | GetUpdateExtent () |
int * | GetUpdateExtent (int port) |
void | GetUpdateExtent (int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
void | GetUpdateExtent (int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
void | GetUpdateExtent (int extent[6]) |
void | GetUpdateExtent (int port, int extent[6]) |
int | GetUpdatePiece () |
int | GetUpdatePiece (int port) |
int | GetUpdateNumberOfPieces () |
int | GetUpdateNumberOfPieces (int port) |
int | GetUpdateGhostLevel () |
int | GetUpdateGhostLevel (int port) |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkCutter * | SafeDownCast (vtkObjectBase *o) |
static vtkCutter * | New () |
static void | GetCellTypeDimensions (unsigned char *cellTypeDimensions) |
![]() | |
static vtkPolyDataAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static vtkPolyDataAlgorithm * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static vtkAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static vtkAlgorithm * | SafeDownCast (vtkObjectBase *o) |
static void | SetDefaultExecutivePrototype (vtkExecutive *proto) |
static vtkInformationIntegerKey * | INPUT_IS_OPTIONAL () |
static vtkInformationIntegerKey * | INPUT_IS_REPEATABLE () |
static vtkInformationInformationVectorKey * | INPUT_REQUIRED_FIELDS () |
static vtkInformationStringVectorKey * | INPUT_REQUIRED_DATA_TYPE () |
static vtkInformationInformationVectorKey * | INPUT_ARRAYS_TO_PROCESS () |
static vtkInformationIntegerKey * | INPUT_PORT () |
static vtkInformationIntegerKey * | INPUT_CONNECTION () |
static vtkInformationIntegerKey * | PRESERVES_DATASET () |
static vtkInformationIntegerKey * | PRESERVES_GEOMETRY () |
static vtkInformationIntegerKey * | PRESERVES_BOUNDS () |
static vtkInformationIntegerKey * | PRESERVES_TOPOLOGY () |
static vtkInformationIntegerKey * | PRESERVES_ATTRIBUTES () |
static vtkInformationIntegerKey * | PRESERVES_RANGES () |
static vtkInformationIntegerKey * | MANAGES_METAINFORMATION () |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkCutter (vtkImplicitFunction *cf=NULL) | |
~vtkCutter () | |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
void | UnstructuredGridCutter (vtkDataSet *input, vtkPolyData *output) |
void | DataSetCutter (vtkDataSet *input, vtkPolyData *output) |
void | StructuredPointsCutter (vtkDataSet *, vtkPolyData *, vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
void | StructuredGridCutter (vtkDataSet *, vtkPolyData *) |
void | RectilinearGridCutter (vtkDataSet *, vtkPolyData *) |
virtual int | ProcessRequest (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
![]() | |
vtkPolyDataAlgorithm () | |
~vtkPolyDataAlgorithm () | |
virtual int | RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) |
virtual int | FillOutputPortInformation (int port, vtkInformation *info) |
![]() | |
vtkAlgorithm () | |
~vtkAlgorithm () | |
virtual void | SetNumberOfInputPorts (int n) |
virtual void | SetNumberOfOutputPorts (int n) |
int | InputPortIndexInRange (int index, const char *action) |
int | OutputPortIndexInRange (int index, const char *action) |
int | GetInputArrayAssociation (int idx, vtkInformationVector **inputVector) |
virtual vtkExecutive * | CreateDefaultExecutive () |
virtual void | ReportReferences (vtkGarbageCollector *) |
virtual void | SetNumberOfInputConnections (int port, int n) |
int | GetInputArrayAssociation (int idx, int connection, vtkInformationVector **inputVector) |
int | GetInputArrayAssociation (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkInformation * | GetInputArrayFieldInformation (int idx, vtkInformationVector **inputVector) |
virtual void | SetNthInputConnection (int port, int index, vtkAlgorithmOutput *input) |
void | SetInputDataInternal (int port, vtkDataObject *input) |
void | AddInputDataInternal (int port, vtkDataObject *input) |
virtual void | SetErrorCode (unsigned long) |
Protected Attributes | |
vtkImplicitFunction * | CutFunction |
int | GenerateTriangles |
vtkSynchronizedTemplates3D * | SynchronizedTemplates3D |
vtkSynchronizedTemplatesCutter3D * | SynchronizedTemplatesCutter3D |
vtkGridSynchronizedTemplates3D * | GridSynchronizedTemplates |
vtkRectilinearSynchronizedTemplates * | RectilinearSynchronizedTemplates |
vtkIncrementalPointLocator * | Locator |
int | SortBy |
vtkContourValues * | ContourValues |
int | GenerateCutScalars |
int | OutputPointsPrecision |
![]() | |
vtkInformation * | Information |
double | Progress |
char * | ProgressText |
unsigned long | ErrorCode |
Additional Inherited Members | |
![]() | |
int | AbortExecute |
![]() | |
static vtkInformationIntegerKey * | PORT_REQUIREMENTS_FILLED () |
![]() | |
static vtkExecutive * | DefaultExecutivePrototype |
Cut vtkDataSet with user-specified implicit function.
vtkCutter is a filter to cut through data using any subclass of vtkImplicitFunction. That is, a polygonal surface is created corresponding to the implicit function F(x,y,z) = value(s), where you can specify one or more values used to cut with.
In VTK, cutting means reducing a cell of dimension N to a cut surface of dimension N-1. For example, a tetrahedron when cut by a plane (i.e., vtkPlane implicit function) will generate triangles. (In comparison, clipping takes a N dimensional cell and creates N dimension primitives.)
vtkCutter is generally used to "slice-through" a dataset, generating a surface that can be visualized. It is also possible to use vtkCutter to do a form of volume rendering. vtkCutter does this by generating multiple cut surfaces (usually planes) which are ordered (and rendered) from back-to-front. The surfaces are set translucent to give a volumetric rendering effect.
Note that data can be cut using either 1) the scalar values associated with the dataset or 2) an implicit function associated with this class. By default, if an implicit function is set it is used to clip the data set, otherwise the dataset scalars are used to perform the clipping.
Definition at line 68 of file vtkCutter.h.
Definition at line 71 of file vtkCutter.h.
|
protected |
|
protected |
|
static |
|
virtual |
Reimplemented from vtkPolyDataAlgorithm.
Reimplemented in vtkCompositeCutter.
|
static |
|
protectedvirtual |
Reimplemented from vtkPolyDataAlgorithm.
Reimplemented in vtkCompositeCutter.
vtkCutter* vtkCutter::NewInstance | ( | ) | const |
void vtkCutter::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) |
|
static |
Construct with user-specified implicit function; initial value of 0.0; and generating cut scalars turned off.
|
inline |
Set a particular contour value at contour number i. The index i ranges between 0<=i<NumberOfContours.
Definition at line 81 of file vtkCutter.h.
|
inline |
Get the ith contour value.
Definition at line 87 of file vtkCutter.h.
|
inline |
Get a pointer to an array of contour values. There will be GetNumberOfContours() values in the list.
Definition at line 94 of file vtkCutter.h.
|
inline |
Fill a supplied list with contour values. There will be GetNumberOfContours() values in the list. Make sure you allocate enough memory to hold the list.
Definition at line 102 of file vtkCutter.h.
|
inline |
Set the number of contours to place into the list. You only really need to use this method to reduce list size. The method SetValue() will automatically increase list size as needed.
Definition at line 110 of file vtkCutter.h.
|
inline |
Get the number of contours in the list of contour values.
Definition at line 116 of file vtkCutter.h.
|
inline |
Generate numContours equally spaced contour values between specified range. Contour values will include min/max range values.
Definition at line 123 of file vtkCutter.h.
|
inline |
Generate numContours equally spaced contour values between specified range. Contour values will include min/max range values.
Definition at line 130 of file vtkCutter.h.
unsigned long vtkCutter::GetMTime | ( | ) |
Override GetMTime because we delegate to vtkContourValues and refer to vtkImplicitFunction.
|
virtual |
Specify the implicit function to perform the cutting.
|
virtual |
Specify the implicit function to perform the cutting.
|
virtual |
If this flag is enabled, then the output scalar values will be interpolated from the implicit function values, and not the input scalar data.
|
virtual |
If this flag is enabled, then the output scalar values will be interpolated from the implicit function values, and not the input scalar data.
|
virtual |
If this flag is enabled, then the output scalar values will be interpolated from the implicit function values, and not the input scalar data.
|
virtual |
If this flag is enabled, then the output scalar values will be interpolated from the implicit function values, and not the input scalar data.
|
virtual |
If this is enabled (by default), the output will be triangles otherwise, the output will be the intersection polygons WARNING: if the cutting function is not a plane, the output will be 3D poygons, which might be nice to look at but hard to compute with downstream.
|
virtual |
If this is enabled (by default), the output will be triangles otherwise, the output will be the intersection polygons WARNING: if the cutting function is not a plane, the output will be 3D poygons, which might be nice to look at but hard to compute with downstream.
|
virtual |
If this is enabled (by default), the output will be triangles otherwise, the output will be the intersection polygons WARNING: if the cutting function is not a plane, the output will be 3D poygons, which might be nice to look at but hard to compute with downstream.
|
virtual |
If this is enabled (by default), the output will be triangles otherwise, the output will be the intersection polygons WARNING: if the cutting function is not a plane, the output will be 3D poygons, which might be nice to look at but hard to compute with downstream.
void vtkCutter::SetLocator | ( | vtkIncrementalPointLocator * | locator | ) |
Specify a spatial locator for merging points. By default, an instance of vtkMergePoints is used.
|
virtual |
Specify a spatial locator for merging points. By default, an instance of vtkMergePoints is used.
|
virtual |
Set the sorting order for the generated polydata. There are two possibilities: Sort by value = 0 - This is the most efficient sort. For each cell, all contour values are processed. This is the default. Sort by cell = 1 - For each contour value, all cells are processed. This order should be used if the extracted polygons must be rendered in a back-to-front or front-to-back order. This is very problem dependent. For most applications, the default order is fine (and faster). Sort by cell is going to have a problem if the input has 2D and 3D cells. Cell data will be scrambled becauses with vtkPolyData output, verts and lines have lower cell ids than triangles.
|
virtual |
Set the sorting order for the generated polydata. There are two possibilities: Sort by value = 0 - This is the most efficient sort. For each cell, all contour values are processed. This is the default. Sort by cell = 1 - For each contour value, all cells are processed. This order should be used if the extracted polygons must be rendered in a back-to-front or front-to-back order. This is very problem dependent. For most applications, the default order is fine (and faster). Sort by cell is going to have a problem if the input has 2D and 3D cells. Cell data will be scrambled becauses with vtkPolyData output, verts and lines have lower cell ids than triangles.
|
inline |
Set the sorting order for the generated polydata. There are two possibilities: Sort by value = 0 - This is the most efficient sort. For each cell, all contour values are processed. This is the default. Sort by cell = 1 - For each contour value, all cells are processed. This order should be used if the extracted polygons must be rendered in a back-to-front or front-to-back order. This is very problem dependent. For most applications, the default order is fine (and faster). Sort by cell is going to have a problem if the input has 2D and 3D cells. Cell data will be scrambled becauses with vtkPolyData output, verts and lines have lower cell ids than triangles.
Definition at line 183 of file vtkCutter.h.
|
inline |
Set the sorting order for the generated polydata. There are two possibilities: Sort by value = 0 - This is the most efficient sort. For each cell, all contour values are processed. This is the default. Sort by cell = 1 - For each contour value, all cells are processed. This order should be used if the extracted polygons must be rendered in a back-to-front or front-to-back order. This is very problem dependent. For most applications, the default order is fine (and faster). Sort by cell is going to have a problem if the input has 2D and 3D cells. Cell data will be scrambled becauses with vtkPolyData output, verts and lines have lower cell ids than triangles.
Definition at line 185 of file vtkCutter.h.
|
inline |
Return the sorting procedure as a descriptive character string.
Definition at line 249 of file vtkCutter.h.
void vtkCutter::CreateDefaultLocator | ( | ) |
Create default locator. Used to create one when none is specified. The locator is used to merge coincident points.
|
static |
Normally I would put this in a different class, but since This is a temporary fix until we convert this class and contour filter to generate unstructured grid output instead of poly data, I am leaving it here.
|
virtual |
Set/get the desired precision for the output types. See the documentation for the vtkAlgorithm::DesiredOutputPrecision enum for an explanation of the available precision settings.
|
virtual |
Set/get the desired precision for the output types. See the documentation for the vtkAlgorithm::DesiredOutputPrecision enum for an explanation of the available precision settings.
|
protectedvirtual |
Overridden to process REQUEST_UPDATE_EXTENT_INFORMATION.
Reimplemented from vtkPolyDataAlgorithm.
|
protectedvirtual |
This is called by the superclass. This is the method you should override.
Reimplemented from vtkPolyDataAlgorithm.
Reimplemented in vtkCompositeCutter.
|
protectedvirtual |
This is called by the superclass. This is the method you should override.
Reimplemented from vtkPolyDataAlgorithm.
Reimplemented in vtkCompositeCutter.
|
protectedvirtual |
Fill the input port information objects for this algorithm. This is invoked by the first call to GetInputPortInformation for each port so subclasses can specify what they can handle.
Reimplemented from vtkPolyDataAlgorithm.
Reimplemented in vtkCompositeCutter.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Definition at line 229 of file vtkCutter.h.
|
protected |
Definition at line 230 of file vtkCutter.h.
|
protected |
Definition at line 232 of file vtkCutter.h.
|
protected |
Definition at line 233 of file vtkCutter.h.
|
protected |
Definition at line 234 of file vtkCutter.h.
|
protected |
Definition at line 235 of file vtkCutter.h.
|
protected |
Definition at line 237 of file vtkCutter.h.
|
protected |
Definition at line 238 of file vtkCutter.h.
|
protected |
Definition at line 239 of file vtkCutter.h.
|
protected |
Definition at line 240 of file vtkCutter.h.
|
protected |
Definition at line 241 of file vtkCutter.h.