#include <vtkRecursiveDividingCubes.h>
vtkRecursiveDividingCubes is a filter that generates points lying on a surface of constant scalar value (i.e., an isosurface). Dense point clouds (i.e., at screen resolution) will appear as a surface. Less dense clouds can be used as a source to generate streamlines or to generate "transparent" surfaces.
This implementation differs from vtkDividingCubes in that it uses a recursive procedure. In many cases this can result in generating more points than the procedural implementation of vtkDividingCubes. This is because the recursive procedure divides voxels by multiples of powers of two. This can over-constrain subdivision. One of the advantages of the recursive technique is that the recursion is terminated earlier, which in some cases can be more efficient.
Definition at line 46 of file vtkRecursiveDividingCubes.h.
Public Types | |
typedef vtkPolyDataAlgorithm | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | SetValue (double) |
virtual double | GetValue () |
virtual void | SetDistance (double) |
virtual double | GetDistance () |
virtual void | SetIncrement (int) |
virtual int | GetIncrement () |
Static Public Member Functions | |
static vtkRecursiveDividingCubes * | New () |
static int | IsTypeOf (const char *type) |
static vtkRecursiveDividingCubes * | SafeDownCast (vtkObject *o) |
Protected Member Functions | |
vtkRecursiveDividingCubes () | |
~vtkRecursiveDividingCubes () | |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
void | SubDivide (double origin[3], double h[3], double values[8]) |
Protected Attributes | |
double | Value |
double | Distance |
int | Increment |
int | Count |
vtkVoxel * | Voxel |
vtkRecursiveDividingCubes::vtkRecursiveDividingCubes | ( | ) | [protected] |
vtkRecursiveDividingCubes::~vtkRecursiveDividingCubes | ( | ) | [protected] |
static vtkRecursiveDividingCubes* vtkRecursiveDividingCubes::New | ( | ) | [static] |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
Reimplemented from vtkPolyDataAlgorithm.
virtual const char* vtkRecursiveDividingCubes::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkPolyDataAlgorithm.
static int vtkRecursiveDividingCubes::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 vtkTypeRevisionMacro found in vtkSetGet.h.
Reimplemented from vtkPolyDataAlgorithm.
virtual int vtkRecursiveDividingCubes::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 vtkTypeRevisionMacro found in vtkSetGet.h.
Reimplemented from vtkPolyDataAlgorithm.
static vtkRecursiveDividingCubes* vtkRecursiveDividingCubes::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkPolyDataAlgorithm.
void vtkRecursiveDividingCubes::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.
virtual void vtkRecursiveDividingCubes::SetValue | ( | double | ) | [virtual] |
Set isosurface value.
virtual double vtkRecursiveDividingCubes::GetValue | ( | ) | [virtual] |
Set isosurface value.
virtual void vtkRecursiveDividingCubes::SetDistance | ( | double | ) | [virtual] |
Specify sub-voxel size at which to generate point.
virtual double vtkRecursiveDividingCubes::GetDistance | ( | ) | [virtual] |
Specify sub-voxel size at which to generate point.
virtual void vtkRecursiveDividingCubes::SetIncrement | ( | int | ) | [virtual] |
Every "Increment" point is added to the list of points. This parameter, if set to a large value, can be used to limit the number of points while retaining good accuracy.
virtual int vtkRecursiveDividingCubes::GetIncrement | ( | ) | [virtual] |
Every "Increment" point is added to the list of points. This parameter, if set to a large value, can be used to limit the number of points while retaining good accuracy.
virtual int vtkRecursiveDividingCubes::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 vtkRecursiveDividingCubes::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 vtkRecursiveDividingCubes::SubDivide | ( | double | origin[3], | |
double | h[3], | |||
double | values[8] | |||
) | [protected] |
double vtkRecursiveDividingCubes::Value [protected] |
Definition at line 81 of file vtkRecursiveDividingCubes.h.
double vtkRecursiveDividingCubes::Distance [protected] |
Definition at line 82 of file vtkRecursiveDividingCubes.h.
int vtkRecursiveDividingCubes::Increment [protected] |
Definition at line 83 of file vtkRecursiveDividingCubes.h.
int vtkRecursiveDividingCubes::Count [protected] |
Definition at line 86 of file vtkRecursiveDividingCubes.h.
vtkVoxel* vtkRecursiveDividingCubes::Voxel [protected] |
Definition at line 89 of file vtkRecursiveDividingCubes.h.