#include <vtkImageMarchingCubes.h>
vtkImageMarchingCubes is a filter that takes as input images (e.g., 3D image region) and generates on output one or more isosurfaces. One or more contour values must be specified to generate the isosurfaces. Alternatively, you can specify a min/max scalar range and the number of contours to generate a series of evenly spaced contour values. This filter can stream, so that the entire volume need not be loaded at once. Streaming is controlled using the instance variable InputMemoryLimit, which has units KBytes.
Definition at line 53 of file vtkImageMarchingCubes.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) |
unsigned long int | GetMTime () |
int | GetLocatorPoint (int cellX, int cellY, int edge) |
void | AddLocatorPoint (int cellX, int cellY, int edge, int ptId) |
void | IncrementLocatorZ () |
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 | SetComputeScalars (int) |
virtual int | GetComputeScalars () |
virtual void | ComputeScalarsOn () |
virtual void | ComputeScalarsOff () |
virtual void | SetComputeNormals (int) |
virtual int | GetComputeNormals () |
virtual void | ComputeNormalsOn () |
virtual void | ComputeNormalsOff () |
virtual void | SetComputeGradients (int) |
virtual int | GetComputeGradients () |
virtual void | ComputeGradientsOn () |
virtual void | ComputeGradientsOff () |
virtual void | SetInputMemoryLimit (int) |
virtual int | GetInputMemoryLimit () |
Static Public Member Functions | |
static vtkImageMarchingCubes * | New () |
static int | IsTypeOf (const char *type) |
static vtkImageMarchingCubes * | SafeDownCast (vtkObject *o) |
Public Attributes | |
int | ComputeScalars |
int | ComputeNormals |
int | ComputeGradients |
int | NeedGradients |
vtkCellArray * | Triangles |
vtkFloatArray * | Scalars |
vtkPoints * | Points |
vtkFloatArray * | Normals |
vtkFloatArray * | Gradients |
Protected Member Functions | |
vtkImageMarchingCubes () | |
~vtkImageMarchingCubes () | |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
void | March (vtkImageData *inData, int chunkMin, int chunkMax, int numContours, double *values) |
void | InitializeLocator (int min0, int max0, int min1, int max1) |
void | DeleteLocator () |
int * | GetLocatorPointer (int cellX, int cellY, int edge) |
Protected Attributes | |
int | NumberOfSlicesPerChunk |
int | InputMemoryLimit |
vtkContourValues * | ContourValues |
int * | LocatorPointIds |
int | LocatorDimX |
int | LocatorDimY |
int | LocatorMinX |
int | LocatorMinY |
vtkImageMarchingCubes::vtkImageMarchingCubes | ( | ) | [protected] |
vtkImageMarchingCubes::~vtkImageMarchingCubes | ( | ) | [protected] |
static vtkImageMarchingCubes* vtkImageMarchingCubes::New | ( | ) | [static] |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
Reimplemented from vtkPolyDataAlgorithm.
virtual const char* vtkImageMarchingCubes::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkPolyDataAlgorithm.
static int vtkImageMarchingCubes::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 vtkImageMarchingCubes::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 vtkImageMarchingCubes* vtkImageMarchingCubes::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkPolyDataAlgorithm.
void vtkImageMarchingCubes::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.
void vtkImageMarchingCubes::SetValue | ( | int | i, | |
double | value | |||
) | [inline] |
Methods to set contour values
Set a particular contour value at contour number i. The index i ranges between 0<=i<NumberOfContours.
Definition at line 161 of file vtkImageMarchingCubes.h.
double vtkImageMarchingCubes::GetValue | ( | int | i | ) | [inline] |
Get the ith contour value.
Definition at line 167 of file vtkImageMarchingCubes.h.
double * vtkImageMarchingCubes::GetValues | ( | ) | [inline] |
Get a pointer to an array of contour values. There will be GetNumberOfContours() values in the list.
Definition at line 174 of file vtkImageMarchingCubes.h.
void vtkImageMarchingCubes::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 182 of file vtkImageMarchingCubes.h.
void vtkImageMarchingCubes::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 190 of file vtkImageMarchingCubes.h.
int vtkImageMarchingCubes::GetNumberOfContours | ( | ) | [inline] |
Get the number of contours in the list of contour values.
Definition at line 196 of file vtkImageMarchingCubes.h.
void vtkImageMarchingCubes::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 203 of file vtkImageMarchingCubes.h.
void vtkImageMarchingCubes::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 210 of file vtkImageMarchingCubes.h.
unsigned long int vtkImageMarchingCubes::GetMTime | ( | ) | [virtual] |
Because we delegate to vtkContourValues & refer to vtkImplicitFunction
Reimplemented from vtkObject.
virtual void vtkImageMarchingCubes::SetComputeScalars | ( | int | ) | [virtual] |
Set/Get the computation of scalars.
virtual int vtkImageMarchingCubes::GetComputeScalars | ( | ) | [virtual] |
Set/Get the computation of scalars.
virtual void vtkImageMarchingCubes::ComputeScalarsOn | ( | ) | [virtual] |
Set/Get the computation of scalars.
virtual void vtkImageMarchingCubes::ComputeScalarsOff | ( | ) | [virtual] |
Set/Get the computation of scalars.
virtual void vtkImageMarchingCubes::SetComputeNormals | ( | int | ) | [virtual] |
Set/Get the computation of normals. Normal computation is fairly expensive in both time and storage. If the output data will be processed by filters that modify topology or geometry, it may be wise to turn Normals and Gradients off.
virtual int vtkImageMarchingCubes::GetComputeNormals | ( | ) | [virtual] |
Set/Get the computation of normals. Normal computation is fairly expensive in both time and storage. If the output data will be processed by filters that modify topology or geometry, it may be wise to turn Normals and Gradients off.
virtual void vtkImageMarchingCubes::ComputeNormalsOn | ( | ) | [virtual] |
Set/Get the computation of normals. Normal computation is fairly expensive in both time and storage. If the output data will be processed by filters that modify topology or geometry, it may be wise to turn Normals and Gradients off.
virtual void vtkImageMarchingCubes::ComputeNormalsOff | ( | ) | [virtual] |
Set/Get the computation of normals. Normal computation is fairly expensive in both time and storage. If the output data will be processed by filters that modify topology or geometry, it may be wise to turn Normals and Gradients off.
virtual void vtkImageMarchingCubes::SetComputeGradients | ( | int | ) | [virtual] |
Set/Get the computation of gradients. Gradient computation is fairly expensive in both time and storage. Note that if ComputeNormals is on, gradients will have to be calculated, but will not be stored in the output dataset. If the output data will be processed by filters that modify topology or geometry, it may be wise to turn Normals and Gradients off.
virtual int vtkImageMarchingCubes::GetComputeGradients | ( | ) | [virtual] |
Set/Get the computation of gradients. Gradient computation is fairly expensive in both time and storage. Note that if ComputeNormals is on, gradients will have to be calculated, but will not be stored in the output dataset. If the output data will be processed by filters that modify topology or geometry, it may be wise to turn Normals and Gradients off.
virtual void vtkImageMarchingCubes::ComputeGradientsOn | ( | ) | [virtual] |
Set/Get the computation of gradients. Gradient computation is fairly expensive in both time and storage. Note that if ComputeNormals is on, gradients will have to be calculated, but will not be stored in the output dataset. If the output data will be processed by filters that modify topology or geometry, it may be wise to turn Normals and Gradients off.
virtual void vtkImageMarchingCubes::ComputeGradientsOff | ( | ) | [virtual] |
Set/Get the computation of gradients. Gradient computation is fairly expensive in both time and storage. Note that if ComputeNormals is on, gradients will have to be calculated, but will not be stored in the output dataset. If the output data will be processed by filters that modify topology or geometry, it may be wise to turn Normals and Gradients off.
int vtkImageMarchingCubes::GetLocatorPoint | ( | int | cellX, | |
int | cellY, | |||
int | edge | |||
) |
void vtkImageMarchingCubes::AddLocatorPoint | ( | int | cellX, | |
int | cellY, | |||
int | edge, | |||
int | ptId | |||
) |
void vtkImageMarchingCubes::IncrementLocatorZ | ( | ) |
virtual void vtkImageMarchingCubes::SetInputMemoryLimit | ( | int | ) | [virtual] |
The InputMemoryLimit determines the chunk size (the number of slices requested at each iteration). The units of this limit is KiloBytes. For now, only the Z axis is split.
virtual int vtkImageMarchingCubes::GetInputMemoryLimit | ( | ) | [virtual] |
The InputMemoryLimit determines the chunk size (the number of slices requested at each iteration). The units of this limit is KiloBytes. For now, only the Z axis is split.
virtual int vtkImageMarchingCubes::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 vtkImageMarchingCubes::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 vtkImageMarchingCubes::March | ( | vtkImageData * | inData, | |
int | chunkMin, | |||
int | chunkMax, | |||
int | numContours, | |||
double * | values | |||
) | [protected] |
void vtkImageMarchingCubes::InitializeLocator | ( | int | min0, | |
int | max0, | |||
int | min1, | |||
int | max1 | |||
) | [protected] |
void vtkImageMarchingCubes::DeleteLocator | ( | ) | [protected] |
int* vtkImageMarchingCubes::GetLocatorPointer | ( | int | cellX, | |
int | cellY, | |||
int | edge | |||
) | [protected] |
Definition at line 102 of file vtkImageMarchingCubes.h.
Definition at line 107 of file vtkImageMarchingCubes.h.
Definition at line 108 of file vtkImageMarchingCubes.h.
Definition at line 109 of file vtkImageMarchingCubes.h.
Definition at line 111 of file vtkImageMarchingCubes.h.
Definition at line 112 of file vtkImageMarchingCubes.h.
Definition at line 113 of file vtkImageMarchingCubes.h.
Definition at line 114 of file vtkImageMarchingCubes.h.
Definition at line 115 of file vtkImageMarchingCubes.h.
int vtkImageMarchingCubes::NumberOfSlicesPerChunk [protected] |
Definition at line 133 of file vtkImageMarchingCubes.h.
int vtkImageMarchingCubes::InputMemoryLimit [protected] |
Definition at line 134 of file vtkImageMarchingCubes.h.
vtkContourValues* vtkImageMarchingCubes::ContourValues [protected] |
Definition at line 136 of file vtkImageMarchingCubes.h.
int* vtkImageMarchingCubes::LocatorPointIds [protected] |
Definition at line 138 of file vtkImageMarchingCubes.h.
int vtkImageMarchingCubes::LocatorDimX [protected] |
Definition at line 139 of file vtkImageMarchingCubes.h.
int vtkImageMarchingCubes::LocatorDimY [protected] |
Definition at line 140 of file vtkImageMarchingCubes.h.
int vtkImageMarchingCubes::LocatorMinX [protected] |
Definition at line 141 of file vtkImageMarchingCubes.h.
int vtkImageMarchingCubes::LocatorMinY [protected] |
Definition at line 142 of file vtkImageMarchingCubes.h.