VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkHyperOctreeCutter Class Reference

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

#include <vtkHyperOctreeCutter.h>

Inherits vtkPolyDataAlgorithm.

Collaboration diagram for vtkHyperOctreeCutter:
[legend]

Public Types

typedef vtkPolyDataAlgorithm Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkHyperOctreeCutterNewInstance () 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 ()
 
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 vtkHyperOctreeCutterSafeDownCast (vtkObjectBase *o)
 
static vtkHyperOctreeCutterNew ()
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
 vtkHyperOctreeCutter (vtkImplicitFunction *cf=NULL)
 
 ~vtkHyperOctreeCutter ()
 
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual int FillInputPortInformation (int port, vtkInformation *info)
 
void CutNode (vtkHyperOctreeCursor *cursor, int level, double bounds[6])
 

Protected Attributes

vtkImplicitFunction * CutFunction
 
vtkIncrementalPointLocator * Locator
 
int SortBy
 
vtkContourValues * ContourValues
 
int GenerateCutScalars
 
vtkHyperOctree * Input
 
vtkPolyData * Output
 
vtkCellArray * NewVerts
 
vtkCellArray * NewLines
 
vtkCellArray * NewPolys
 
vtkDataSetAttributes * InCD
 
vtkCellData * OutCD
 
vtkPointData * OutPD
 
vtkOrderedTriangulator * Triangulator
 
vtkHyperOctreeCursor * Sibling
 
int Iter
 
vtkDoubleArray * CellScalars
 
vtkTetra * Tetra
 
vtkDoubleArray * TetScalars
 
vtkPoints * Pts
 
vtkPolygon * Polygon
 
vtkIdType CellTypeCounter [65536]
 
vtkIdType TotalCounter
 
vtkIdType TemplateCounter
 
int * AllLess
 
int * AllGreater
 
vtkHyperOctreeClipCutPointsGrabberGrabber
 

Detailed Description

Cut vtkHyperOctree with user-specified implicit function.

vtkHyperOctreeCutter 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.)

vtkHyperOctreeCutter is generally used to "slice-through" a dataset, generating a surface that can be visualized. It is also possible to use vtkHyperOctreeCutter to do a form of volume rendering. vtkHyperOctreeCutter 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 cut the data set, otherwise the dataset scalars are used to perform the cut.

See Also
vtkImplicitFunction vtkHyperOctree
Tests:
vtkHyperOctreeCutter (Tests)

Definition at line 73 of file vtkHyperOctreeCutter.h.

Member Typedef Documentation

typedef vtkPolyDataAlgorithm vtkHyperOctreeCutter::Superclass

Definition at line 76 of file vtkHyperOctreeCutter.h.

Constructor & Destructor Documentation

vtkHyperOctreeCutter::vtkHyperOctreeCutter ( vtkImplicitFunction *  cf = NULL)
protected
vtkHyperOctreeCutter::~vtkHyperOctreeCutter ( )
protected

Member Function Documentation

static int vtkHyperOctreeCutter::IsTypeOf ( const char *  type)
static
virtual int vtkHyperOctreeCutter::IsA ( const char *  type)
virtual
static vtkHyperOctreeCutter* vtkHyperOctreeCutter::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkHyperOctreeCutter::NewInstanceInternal ( ) const
protectedvirtual
vtkHyperOctreeCutter* vtkHyperOctreeCutter::NewInstance ( ) const
void vtkHyperOctreeCutter::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
static vtkHyperOctreeCutter* vtkHyperOctreeCutter::New ( )
static

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

void vtkHyperOctreeCutter::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 86 of file vtkHyperOctreeCutter.h.

double vtkHyperOctreeCutter::GetValue ( int  i)
inline

Get the ith contour value.

Definition at line 92 of file vtkHyperOctreeCutter.h.

double* vtkHyperOctreeCutter::GetValues ( )
inline

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

Definition at line 99 of file vtkHyperOctreeCutter.h.

void vtkHyperOctreeCutter::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 107 of file vtkHyperOctreeCutter.h.

void vtkHyperOctreeCutter::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 115 of file vtkHyperOctreeCutter.h.

int vtkHyperOctreeCutter::GetNumberOfContours ( )
inline

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

Definition at line 121 of file vtkHyperOctreeCutter.h.

void vtkHyperOctreeCutter::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 128 of file vtkHyperOctreeCutter.h.

void vtkHyperOctreeCutter::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 135 of file vtkHyperOctreeCutter.h.

unsigned long vtkHyperOctreeCutter::GetMTime ( )

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

virtual void vtkHyperOctreeCutter::SetCutFunction ( vtkImplicitFunction *  )
virtual

Specify the implicit function to perform the cutting.

virtual vtkImplicitFunction* vtkHyperOctreeCutter::GetCutFunction ( )
virtual

Specify the implicit function to perform the cutting.

virtual void vtkHyperOctreeCutter::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 vtkHyperOctreeCutter::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 vtkHyperOctreeCutter::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 vtkHyperOctreeCutter::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 vtkHyperOctreeCutter::SetLocator ( vtkIncrementalPointLocator *  locator)

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

virtual vtkIncrementalPointLocator* vtkHyperOctreeCutter::GetLocator ( )
virtual

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

virtual void vtkHyperOctreeCutter::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 vtkHyperOctreeCutter::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 vtkHyperOctreeCutter::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 178 of file vtkHyperOctreeCutter.h.

void vtkHyperOctreeCutter::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 180 of file vtkHyperOctreeCutter.h.

const char* vtkHyperOctreeCutter::GetSortByAsString ( void  )
inline

Return the sorting procedure as a descriptive character string.

Definition at line 186 of file vtkHyperOctreeCutter.h.

void vtkHyperOctreeCutter::CreateDefaultLocator ( )

Create default locator. Used to create one when none is specified. The locator is used to merge coincident points.

virtual int vtkHyperOctreeCutter::RequestData ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protectedvirtual
virtual int vtkHyperOctreeCutter::RequestUpdateExtent ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protectedvirtual
virtual int vtkHyperOctreeCutter::FillInputPortInformation ( int  port,
vtkInformation *  info 
)
protectedvirtual
void vtkHyperOctreeCutter::CutNode ( vtkHyperOctreeCursor *  cursor,
int  level,
double  bounds[6] 
)
protected

Cut the sub-hierarchy pointed by cursor.

Precondition
cursor_exists: cursor!=0
positive_level: level>=0

Member Data Documentation

vtkImplicitFunction* vtkHyperOctreeCutter::CutFunction
protected

Definition at line 219 of file vtkHyperOctreeCutter.h.

vtkIncrementalPointLocator* vtkHyperOctreeCutter::Locator
protected

Definition at line 222 of file vtkHyperOctreeCutter.h.

int vtkHyperOctreeCutter::SortBy
protected

Definition at line 223 of file vtkHyperOctreeCutter.h.

vtkContourValues* vtkHyperOctreeCutter::ContourValues
protected

Definition at line 224 of file vtkHyperOctreeCutter.h.

int vtkHyperOctreeCutter::GenerateCutScalars
protected

Definition at line 225 of file vtkHyperOctreeCutter.h.

vtkHyperOctree* vtkHyperOctreeCutter::Input
protected

Definition at line 227 of file vtkHyperOctreeCutter.h.

vtkPolyData* vtkHyperOctreeCutter::Output
protected

Definition at line 228 of file vtkHyperOctreeCutter.h.

vtkCellArray* vtkHyperOctreeCutter::NewVerts
protected

Definition at line 231 of file vtkHyperOctreeCutter.h.

vtkCellArray* vtkHyperOctreeCutter::NewLines
protected

Definition at line 232 of file vtkHyperOctreeCutter.h.

vtkCellArray* vtkHyperOctreeCutter::NewPolys
protected

Definition at line 233 of file vtkHyperOctreeCutter.h.

vtkDataSetAttributes* vtkHyperOctreeCutter::InCD
protected

Definition at line 235 of file vtkHyperOctreeCutter.h.

vtkCellData* vtkHyperOctreeCutter::OutCD
protected

Definition at line 236 of file vtkHyperOctreeCutter.h.

vtkPointData* vtkHyperOctreeCutter::OutPD
protected

Definition at line 237 of file vtkHyperOctreeCutter.h.

vtkOrderedTriangulator* vtkHyperOctreeCutter::Triangulator
protected

Definition at line 238 of file vtkHyperOctreeCutter.h.

vtkHyperOctreeCursor* vtkHyperOctreeCutter::Sibling
protected

Definition at line 239 of file vtkHyperOctreeCutter.h.

int vtkHyperOctreeCutter::Iter
protected

Definition at line 241 of file vtkHyperOctreeCutter.h.

vtkDoubleArray* vtkHyperOctreeCutter::CellScalars
protected

Definition at line 244 of file vtkHyperOctreeCutter.h.

vtkTetra* vtkHyperOctreeCutter::Tetra
protected

Definition at line 245 of file vtkHyperOctreeCutter.h.

vtkDoubleArray* vtkHyperOctreeCutter::TetScalars
protected

Definition at line 246 of file vtkHyperOctreeCutter.h.

vtkPoints* vtkHyperOctreeCutter::Pts
protected

Definition at line 248 of file vtkHyperOctreeCutter.h.

vtkPolygon* vtkHyperOctreeCutter::Polygon
protected

Definition at line 249 of file vtkHyperOctreeCutter.h.

vtkIdType vtkHyperOctreeCutter::CellTypeCounter[65536]
protected

Definition at line 251 of file vtkHyperOctreeCutter.h.

vtkIdType vtkHyperOctreeCutter::TotalCounter
protected

Definition at line 252 of file vtkHyperOctreeCutter.h.

vtkIdType vtkHyperOctreeCutter::TemplateCounter
protected

Definition at line 253 of file vtkHyperOctreeCutter.h.

int* vtkHyperOctreeCutter::AllLess
protected

Definition at line 257 of file vtkHyperOctreeCutter.h.

int* vtkHyperOctreeCutter::AllGreater
protected

Definition at line 258 of file vtkHyperOctreeCutter.h.

vtkHyperOctreeClipCutPointsGrabber* vtkHyperOctreeCutter::Grabber
protected

Definition at line 259 of file vtkHyperOctreeCutter.h.


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