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

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

#include <vtkImageMarchingCubes.h>

Inherits vtkPolyDataAlgorithm.

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)
 
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 (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
 
vtkCellArray * Triangles
 
vtkFloatArray * Scalars
 
vtkPoints * Points
 
vtkFloatArray * Normals
 
vtkFloatArray * Gradients
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () 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 ()
 
vtkIdType * GetLocatorPointer (int cellX, int cellY, int edge)
 

Protected Attributes

int NumberOfSlicesPerChunk
 
vtkIdType InputMemoryLimit
 
vtkContourValues * ContourValues
 
vtkIdType * LocatorPointIds
 
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
Events:
vtkCommand::StartEvent vtkCommand::EndEvent
Tests:
vtkImageMarchingCubes (Tests)

Definition at line 54 of file vtkImageMarchingCubes.h.

Member Typedef Documentation

typedef vtkPolyDataAlgorithm vtkImageMarchingCubes::Superclass

Definition at line 58 of file vtkImageMarchingCubes.h.

Constructor & Destructor Documentation

vtkImageMarchingCubes::vtkImageMarchingCubes ( )
protected
vtkImageMarchingCubes::~vtkImageMarchingCubes ( )
protected

Member Function Documentation

static vtkImageMarchingCubes* vtkImageMarchingCubes::New ( )
static
static int vtkImageMarchingCubes::IsTypeOf ( const char *  type)
static
virtual int vtkImageMarchingCubes::IsA ( const char *  type)
virtual
static vtkImageMarchingCubes* vtkImageMarchingCubes::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkImageMarchingCubes::NewInstanceInternal ( ) const
protectedvirtual
vtkImageMarchingCubes* vtkImageMarchingCubes::NewInstance ( ) const
void vtkImageMarchingCubes::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
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 162 of file vtkImageMarchingCubes.h.

double vtkImageMarchingCubes::GetValue ( int  i)
inline

Get the ith contour value.

Definition at line 168 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 175 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 183 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 191 of file vtkImageMarchingCubes.h.

int vtkImageMarchingCubes::GetNumberOfContours ( )
inline

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

Definition at line 197 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 204 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 211 of file vtkImageMarchingCubes.h.

unsigned long int vtkImageMarchingCubes::GetMTime ( )

Because we delegate to vtkContourValues & refer to vtkImplicitFunction

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.

vtkIdType vtkImageMarchingCubes::GetLocatorPoint ( int  cellX,
int  cellY,
int  edge 
)
void vtkImageMarchingCubes::AddLocatorPoint ( int  cellX,
int  cellY,
int  edge,
vtkIdType  ptId 
)
void vtkImageMarchingCubes::IncrementLocatorZ ( )
virtual void vtkImageMarchingCubes::SetInputMemoryLimit ( vtkIdType  )
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 vtkIdType 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 *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protectedvirtual
virtual int vtkImageMarchingCubes::FillInputPortInformation ( int  port,
vtkInformation *  info 
)
protectedvirtual
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
vtkIdType* vtkImageMarchingCubes::GetLocatorPointer ( int  cellX,
int  cellY,
int  edge 
)
protected

Member Data Documentation

int vtkImageMarchingCubes::ComputeScalars

Definition at line 103 of file vtkImageMarchingCubes.h.

int vtkImageMarchingCubes::ComputeNormals

Definition at line 108 of file vtkImageMarchingCubes.h.

int vtkImageMarchingCubes::ComputeGradients

Definition at line 109 of file vtkImageMarchingCubes.h.

int vtkImageMarchingCubes::NeedGradients

Definition at line 110 of file vtkImageMarchingCubes.h.

vtkCellArray* vtkImageMarchingCubes::Triangles

Definition at line 112 of file vtkImageMarchingCubes.h.

vtkFloatArray* vtkImageMarchingCubes::Scalars

Definition at line 113 of file vtkImageMarchingCubes.h.

vtkPoints* vtkImageMarchingCubes::Points

Definition at line 114 of file vtkImageMarchingCubes.h.

vtkFloatArray* vtkImageMarchingCubes::Normals

Definition at line 115 of file vtkImageMarchingCubes.h.

vtkFloatArray* vtkImageMarchingCubes::Gradients

Definition at line 116 of file vtkImageMarchingCubes.h.

int vtkImageMarchingCubes::NumberOfSlicesPerChunk
protected

Definition at line 134 of file vtkImageMarchingCubes.h.

vtkIdType vtkImageMarchingCubes::InputMemoryLimit
protected

Definition at line 135 of file vtkImageMarchingCubes.h.

vtkContourValues* vtkImageMarchingCubes::ContourValues
protected

Definition at line 137 of file vtkImageMarchingCubes.h.

vtkIdType* vtkImageMarchingCubes::LocatorPointIds
protected

Definition at line 139 of file vtkImageMarchingCubes.h.

int vtkImageMarchingCubes::LocatorDimX
protected

Definition at line 140 of file vtkImageMarchingCubes.h.

int vtkImageMarchingCubes::LocatorDimY
protected

Definition at line 141 of file vtkImageMarchingCubes.h.

int vtkImageMarchingCubes::LocatorMinX
protected

Definition at line 142 of file vtkImageMarchingCubes.h.

int vtkImageMarchingCubes::LocatorMinY
protected

Definition at line 143 of file vtkImageMarchingCubes.h.


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