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

generate isosurface(s) from volume/images More...

#include <vtkImageMarchingCubes.h>

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

List of all members.

Public Types

typedef vtkPolyDataAlgorithm Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkImageMarchingCubesNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
unsigned long int GetMTime ()
vtkIdType GetLocatorPoint (int cellX, int cellY, int edge)
void AddLocatorPoint (int cellX, int cellY, int edge, vtkIdType ptId)
void IncrementLocatorZ ()
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 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 (vtkIdType)
virtual vtkIdType GetInputMemoryLimit ()

Static Public Member Functions

static vtkImageMarchingCubesNew ()
static int IsTypeOf (const char *type)
static vtkImageMarchingCubesSafeDownCast (vtkObjectBase *o)

Public Attributes

int ComputeScalars
int ComputeNormals
int ComputeGradients
int NeedGradients
vtkCellArrayTriangles
vtkFloatArrayScalars
vtkPointsPoints
vtkFloatArrayNormals
vtkFloatArrayGradients

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 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 ()
vtkIdTypeGetLocatorPointer (int cellX, int cellY, int edge)

Protected Attributes

int NumberOfSlicesPerChunk
vtkIdType InputMemoryLimit
vtkContourValuesContourValues
vtkIdTypeLocatorPointIds
int LocatorDimX
int LocatorDimY
int LocatorMinX
int LocatorMinY

Detailed Description

generate isosurface(s) from volume/images

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.

Warning:
This filter is specialized to volumes. If you are interested in contouring other types of data, use the general vtkContourFilter. If you want to contour an image (i.e., a volume slice), use vtkMarchingSquares.
See also:
vtkContourFilter vtkSliceCubes vtkMarchingSquares vtkSynchronizedTemplates3D
Tests:
vtkImageMarchingCubes (Tests)

Definition at line 51 of file vtkImageMarchingCubes.h.


Member Typedef Documentation

Reimplemented from vtkPolyDataAlgorithm.

Definition at line 55 of file vtkImageMarchingCubes.h.


Constructor & Destructor Documentation


Member Function Documentation

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

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.

Reimplemented from vtkPolyDataAlgorithm.

virtual vtkObjectBase* vtkImageMarchingCubes::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkPolyDataAlgorithm.

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 159 of file vtkImageMarchingCubes.h.

Get the ith contour value.

Definition at line 165 of file vtkImageMarchingCubes.h.

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

Definition at line 172 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 180 of file vtkImageMarchingCubes.h.

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 188 of file vtkImageMarchingCubes.h.

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

Definition at line 194 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 201 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 208 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.

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.

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.

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.

void vtkImageMarchingCubes::AddLocatorPoint ( int  cellX,
int  cellY,
int  edge,
vtkIdType  ptId 
)

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.

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]
vtkIdType* vtkImageMarchingCubes::GetLocatorPointer ( int  cellX,
int  cellY,
int  edge 
) [protected]

Member Data Documentation

Definition at line 100 of file vtkImageMarchingCubes.h.

Definition at line 105 of file vtkImageMarchingCubes.h.

Definition at line 106 of file vtkImageMarchingCubes.h.

Definition at line 107 of file vtkImageMarchingCubes.h.

Definition at line 109 of file vtkImageMarchingCubes.h.

Definition at line 110 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 131 of file vtkImageMarchingCubes.h.

Definition at line 132 of file vtkImageMarchingCubes.h.

Definition at line 134 of file vtkImageMarchingCubes.h.

Definition at line 136 of file vtkImageMarchingCubes.h.

Definition at line 137 of file vtkImageMarchingCubes.h.

Definition at line 138 of file vtkImageMarchingCubes.h.

Definition at line 139 of file vtkImageMarchingCubes.h.

Definition at line 140 of file vtkImageMarchingCubes.h.


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