VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkCutter Class Reference

Cut vtkDataSet with user-specified implicit function. More...

#include <vtkCutter.h>

Inheritance diagram for vtkCutter:
Inheritance graph
[legend]
Collaboration diagram for vtkCutter:
Collaboration graph
[legend]

List of all members.

Public Types

typedef vtkPolyDataAlgorithm Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
unsigned long GetMTime ()
void CreateDefaultLocator ()
void SetValue (int i, double value)
double GetValue (int i)
doubleGetValues ()
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 vtkImplicitFunctionGetCutFunction ()
virtual void SetGenerateCutScalars (int)
virtual int GetGenerateCutScalars ()
virtual void GenerateCutScalarsOn ()
virtual void GenerateCutScalarsOff ()
void SetLocator (vtkIncrementalPointLocator *locator)
virtual
vtkIncrementalPointLocator
GetLocator ()
virtual void SetSortBy (int)
virtual int GetSortBy ()
void SetSortByToSortByValue ()
void SetSortByToSortByCell ()
const char * GetSortByAsString ()

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkCutterSafeDownCast (vtkObject *o)
static vtkCutterNew ()
static void GetCellTypeDimensions (unsigned char *cellTypeDimensions)

Protected Member Functions

 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 *)

Protected Attributes

vtkImplicitFunctionCutFunction
vtkSynchronizedTemplates3DSynchronizedTemplates3D
vtkSynchronizedTemplatesCutter3DSynchronizedTemplatesCutter3D
vtkGridSynchronizedTemplates3DGridSynchronizedTemplates
vtkRectilinearSynchronizedTemplatesRectilinearSynchronizedTemplates
vtkIncrementalPointLocatorLocator
int SortBy
vtkContourValuesContourValues
int GenerateCutScalars

Detailed Description

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.

See also:
vtkImplicitFunction vtkClipPolyData
Examples:
vtkCutter (Examples)
Tests:
vtkCutter (Tests)

Definition at line 67 of file vtkCutter.h.


Member Typedef Documentation

Reimplemented from vtkPolyDataAlgorithm.

Definition at line 70 of file vtkCutter.h.


Constructor & Destructor Documentation

vtkCutter::vtkCutter ( vtkImplicitFunction cf = NULL) [protected]
vtkCutter::~vtkCutter ( ) [protected]

Member Function Documentation

virtual const char* vtkCutter::GetClassName ( ) [virtual]

Reimplemented from vtkPolyDataAlgorithm.

static int vtkCutter::IsTypeOf ( const char *  name) [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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataAlgorithm.

virtual int vtkCutter::IsA ( const char *  name) [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 vtkPolyDataAlgorithm.

static vtkCutter* vtkCutter::SafeDownCast ( vtkObject o) [static]

Reimplemented from vtkPolyDataAlgorithm.

void vtkCutter::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 vtkPolyDataAlgorithm.

static vtkCutter* vtkCutter::New ( ) [static]

Construct with user-specified implicit function; initial value of 0.0; and generating cut scalars turned off.

Reimplemented from vtkPolyDataAlgorithm.

void vtkCutter::SetValue ( int  i,
double  value 
) [inline]

Set a particular contour value at contour number i. The index i ranges between 0<=i<NumberOfContours.

Definition at line 80 of file vtkCutter.h.

double vtkCutter::GetValue ( int  i) [inline]

Get the ith contour value.

Definition at line 86 of file vtkCutter.h.

double* vtkCutter::GetValues ( ) [inline]

Get a pointer to an array of contour values. There will be GetNumberOfContours() values in the list.

Definition at line 93 of file vtkCutter.h.

void vtkCutter::GetValues ( double contourValues) [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 101 of file vtkCutter.h.

void vtkCutter::SetNumberOfContours ( int  number) [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 109 of file vtkCutter.h.

int vtkCutter::GetNumberOfContours ( ) [inline]

Get the number of contours in the list of contour values.

Definition at line 115 of file vtkCutter.h.

void vtkCutter::GenerateValues ( int  numContours,
double  range[2] 
) [inline]

Generate numContours equally spaced contour values between specified range. Contour values will include min/max range values.

Definition at line 122 of file vtkCutter.h.

void vtkCutter::GenerateValues ( int  numContours,
double  rangeStart,
double  rangeEnd 
) [inline]

Generate numContours equally spaced contour values between specified range. Contour values will include min/max range values.

Definition at line 129 of file vtkCutter.h.

unsigned long vtkCutter::GetMTime ( ) [virtual]

Override GetMTime because we delegate to vtkContourValues and refer to vtkImplicitFunction.

Reimplemented from vtkObject.

virtual void vtkCutter::SetCutFunction ( vtkImplicitFunction ) [virtual]

Specify the implicit function to perform the cutting.

virtual vtkImplicitFunction* vtkCutter::GetCutFunction ( ) [virtual]

Specify the implicit function to perform the cutting.

virtual void vtkCutter::SetGenerateCutScalars ( int  ) [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 int vtkCutter::GetGenerateCutScalars ( ) [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 void vtkCutter::GenerateCutScalarsOn ( ) [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 void vtkCutter::GenerateCutScalarsOff ( ) [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.

void vtkCutter::SetLocator ( vtkIncrementalPointLocator locator)

Specify a spatial locator for merging points. By default, an instance of vtkMergePoints is used.

virtual vtkIncrementalPointLocator* vtkCutter::GetLocator ( ) [virtual]

Specify a spatial locator for merging points. By default, an instance of vtkMergePoints is used.

virtual void vtkCutter::SetSortBy ( int  ) [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 int vtkCutter::GetSortBy ( ) [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.

void vtkCutter::SetSortByToSortByValue ( ) [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 172 of file vtkCutter.h.

void vtkCutter::SetSortByToSortByCell ( ) [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 174 of file vtkCutter.h.

const char * vtkCutter::GetSortByAsString ( void  ) [inline]

Return the sorting procedure as a descriptive character string.

Definition at line 228 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 void vtkCutter::GetCellTypeDimensions ( unsigned char *  cellTypeDimensions) [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 int vtkCutter::ProcessRequest ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
) [protected, virtual]

Overridden to process REQUEST_UPDATE_EXTENT_INFORMATION.

Reimplemented from vtkPolyDataAlgorithm.

virtual int vtkCutter::RequestData ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

This is called by the superclass. This is the method you should override.

Reimplemented from vtkPolyDataAlgorithm.

virtual int vtkCutter::RequestUpdateExtent ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
) [protected, virtual]

This is called by the superclass. This is the method you should override.

Reimplemented from vtkPolyDataAlgorithm.

virtual int vtkCutter::FillInputPortInformation ( int  port,
vtkInformation info 
) [protected, virtual]

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.

void vtkCutter::UnstructuredGridCutter ( vtkDataSet input,
vtkPolyData output 
) [protected]
void vtkCutter::DataSetCutter ( vtkDataSet input,
vtkPolyData output 
) [protected]
void vtkCutter::StructuredPointsCutter ( vtkDataSet ,
vtkPolyData ,
vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
) [protected]
void vtkCutter::StructuredGridCutter ( vtkDataSet ,
vtkPolyData  
) [protected]
void vtkCutter::RectilinearGridCutter ( vtkDataSet ,
vtkPolyData  
) [protected]

Member Data Documentation

Definition at line 210 of file vtkCutter.h.

Definition at line 212 of file vtkCutter.h.

Definition at line 213 of file vtkCutter.h.

Definition at line 214 of file vtkCutter.h.

Definition at line 215 of file vtkCutter.h.

Definition at line 217 of file vtkCutter.h.

int vtkCutter::SortBy [protected]

Definition at line 218 of file vtkCutter.h.

Definition at line 219 of file vtkCutter.h.

Definition at line 220 of file vtkCutter.h.


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