VTK
|
Cut vtkHyperOctree with user-specified implicit function. More...
#include <vtkHyperOctreeCutter.h>
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.
Definition at line 73 of file vtkHyperOctreeCutter.h.
Reimplemented from vtkPolyDataAlgorithm.
Definition at line 76 of file vtkHyperOctreeCutter.h.
vtkHyperOctreeCutter::vtkHyperOctreeCutter | ( | vtkImplicitFunction * | cf = NULL | ) | [protected] |
vtkHyperOctreeCutter::~vtkHyperOctreeCutter | ( | ) | [protected] |
static int vtkHyperOctreeCutter::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 vtkHyperOctreeCutter::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 vtkHyperOctreeCutter* vtkHyperOctreeCutter::SafeDownCast | ( | vtkObjectBase * | o | ) | [static] |
Reimplemented from vtkPolyDataAlgorithm.
virtual vtkObjectBase* vtkHyperOctreeCutter::NewInstanceInternal | ( | ) | const [protected, virtual] |
Reimplemented from vtkPolyDataAlgorithm.
Reimplemented from vtkPolyDataAlgorithm.
void vtkHyperOctreeCutter::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 vtkHyperOctreeCutter* vtkHyperOctreeCutter::New | ( | ) | [static] |
Construct with user-specified implicit function; initial value of 0.0; and generating cut scalars turned off.
Reimplemented from vtkPolyDataAlgorithm.
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 | ( | ) | [virtual] |
Override GetMTime because we delegate to vtkContourValues and refer to vtkImplicitFunction.
Reimplemented from vtkObject.
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.
Create default locator. Used to create one when none is specified. The locator is used to merge coincident points.
virtual int vtkHyperOctreeCutter::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 vtkHyperOctreeCutter::RequestUpdateExtent | ( | vtkInformation * | , |
vtkInformationVector ** | , | ||
vtkInformationVector * | |||
) | [protected, virtual] |
This is called by the superclass. This is the method you should override.
Reimplemented from vtkPolyDataAlgorithm.
virtual int vtkHyperOctreeCutter::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 vtkHyperOctreeCutter::CutNode | ( | vtkHyperOctreeCursor * | cursor, |
int | level, | ||
double | bounds[6] | ||
) | [protected] |
Cut the sub-hierarchy pointed by cursor.
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.
Definition at line 259 of file vtkHyperOctreeCutter.h.