vtkUnstructuredGridVolumeZSweepMapper Class Reference

#include <vtkUnstructuredGridVolumeZSweepMapper.h>

Inheritance diagram for vtkUnstructuredGridVolumeZSweepMapper:

Inheritance graph
[legend]
Collaboration diagram for vtkUnstructuredGridVolumeZSweepMapper:

Collaboration graph
[legend]

List of all members.


Detailed Description

Unstructured grid volume mapper based the ZSweep Algorithm.

This is a volume mapper for unstructured grid implemented with the ZSweep algorithm. This is a software projective method.

See also:
vtkVolumetMapper
Background:
The algorithm is described in the following paper: Ricardo Farias, Joseph S. B. Mitchell and Claudio T. Silva. ZSWEEP: An Efficient and Exact Projection Algorithm for Unstructured Volume Rendering. In 2000 Volume Visualization Symposium, pages 91--99. October 2000. http://www.cse.ogi.edu/~csilva/papers/volvis2000.pdf
Tests:
vtkUnstructuredGridVolumeZSweepMapper (Tests)

Definition at line 72 of file vtkUnstructuredGridVolumeZSweepMapper.h.


Public Types

typedef
vtkUnstructuredGridVolumeMapper 
Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
int GetMaxPixelListSize ()
void SetMaxPixelListSize (int size)
virtual int * GetImageInUseSize ()
virtual void GetImageInUseSize (int data[2])
virtual int * GetImageOrigin ()
virtual void GetImageOrigin (int data[2])
virtual int * GetImageViewportSize ()
virtual void GetImageViewportSize (int data[2])
virtual void SetImageSampleDistance (float)
virtual float GetImageSampleDistance ()
virtual void SetMinimumImageSampleDistance (float)
virtual float GetMinimumImageSampleDistance ()
virtual void SetMaximumImageSampleDistance (float)
virtual float GetMaximumImageSampleDistance ()
virtual void SetAutoAdjustSampleDistances (int)
virtual int GetAutoAdjustSampleDistances ()
virtual void AutoAdjustSampleDistancesOn ()
virtual void AutoAdjustSampleDistancesOff ()
virtual void SetIntermixIntersectingGeometry (int)
virtual int GetIntermixIntersectingGeometry ()
virtual void IntermixIntersectingGeometryOn ()
virtual void IntermixIntersectingGeometryOff ()
virtual void SetRayIntegrator (vtkUnstructuredGridVolumeRayIntegrator *ri)
virtual
vtkUnstructuredGridVolumeRayIntegrator
GetRayIntegrator ()
void Render (vtkRenderer *ren, vtkVolume *vol)

Static Public Member Functions

static int IsTypeOf (const char *type)
static
vtkUnstructuredGridVolumeZSweepMapper
SafeDownCast (vtkObject *o)
static
vtkUnstructuredGridVolumeZSweepMapper
New ()

Protected Member Functions

 vtkUnstructuredGridVolumeZSweepMapper ()
 ~vtkUnstructuredGridVolumeZSweepMapper ()
void BuildUseSets ()
void CreateAndCleanPixelList ()
void MainLoop (vtkRenderWindow *renWin)
void CompositeFunction (double zTarget)
unsigned char ColorComponentRealToByte (float color)
void RasterizeFace (vtkIdType faceIds[3], int externalSide)
void StoreRenderTime (vtkRenderer *ren, vtkVolume *vol, float t)
float RetrieveRenderTime (vtkRenderer *ren, vtkVolume *vol)
double GetMinimumBoundsDepth (vtkRenderer *ren, vtkVolume *vol)
void AllocateUseSet (vtkIdType size)
void AllocateVertices (vtkIdType size)
void SavePixelListFrame ()
int ReorderTriangle (vtkIdType v[3], vtkIdType w[3])
void ProjectAndSortVertices (vtkRenderer *ren, vtkVolume *vol)
void RasterizeTriangle (vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve0, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve1, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve2, bool exitFace)
void RasterizeSpan (int y, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *left, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *right, bool exitFace)
void RasterizeLine (vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v0, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v1, bool exitFace)
double GetZBufferValue (int x, int y)

Protected Attributes

int MaxPixelListSize
float ImageSampleDistance
float MinimumImageSampleDistance
float MaximumImageSampleDistance
int AutoAdjustSampleDistances
vtkRayCastImageDisplayHelperImageDisplayHelper
int ImageViewportSize [2]
int ImageMemorySize [2]
int ImageInUseSize [2]
int ImageOrigin [2]
unsigned char * Image
float * RealRGBAImage
float * RenderTimeTable
vtkVolume ** RenderVolumeTable
vtkRenderer ** RenderRendererTable
int RenderTableSize
int RenderTableEntries
int IntermixIntersectingGeometry
float * ZBuffer
int ZBufferSize [2]
int ZBufferOrigin [2]
vtkDataArrayScalars
int CellScalars
double FaceScalars [2]
int FaceSide
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan * Span
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListFrame * PixelListFrame
vtkGenericCellCell
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkUseSet * UseSet
vtkPriorityQueueEventList
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertices * Vertices
vtkTransformPerspectiveTransform
vtkMatrix4x4PerspectiveMatrix
int MaxPixelListSizeReached
int XBounds [2]
int YBounds [2]
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge * SimpleEdge
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge * DoubleEdge
vtkUnstructuredGridVolumeRayIntegratorRayIntegrator
vtkUnstructuredGridVolumeRayIntegratorRealRayIntegrator
vtkTimeStamp SavedTriangleListMTime
vtkDoubleArrayIntersectionLengths
vtkDoubleArrayNearIntersections
vtkDoubleArrayFarIntersections
vtkIdType MaxRecordedPixelListSize
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListEntryMemory * MemoryManager

Member Typedef Documentation

Reimplemented from vtkUnstructuredGridVolumeMapper.

Definition at line 75 of file vtkUnstructuredGridVolumeZSweepMapper.h.


Constructor & Destructor Documentation

vtkUnstructuredGridVolumeZSweepMapper::vtkUnstructuredGridVolumeZSweepMapper (  )  [protected]

vtkUnstructuredGridVolumeZSweepMapper::~vtkUnstructuredGridVolumeZSweepMapper (  )  [protected]


Member Function Documentation

virtual const char* vtkUnstructuredGridVolumeZSweepMapper::GetClassName (  )  [virtual]

Reimplemented from vtkUnstructuredGridVolumeMapper.

static int vtkUnstructuredGridVolumeZSweepMapper::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 vtkUnstructuredGridVolumeMapper.

virtual int vtkUnstructuredGridVolumeZSweepMapper::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 vtkUnstructuredGridVolumeMapper.

static vtkUnstructuredGridVolumeZSweepMapper* vtkUnstructuredGridVolumeZSweepMapper::SafeDownCast ( vtkObject o  )  [static]

Reimplemented from vtkUnstructuredGridVolumeMapper.

void vtkUnstructuredGridVolumeZSweepMapper::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 vtkUnstructuredGridVolumeMapper.

static vtkUnstructuredGridVolumeZSweepMapper* vtkUnstructuredGridVolumeZSweepMapper::New (  )  [static]

Set MaxPixelListSize to 32.

Reimplemented from vtkAlgorithm.

virtual void vtkUnstructuredGridVolumeZSweepMapper::SetImageSampleDistance ( float   )  [virtual]

Sampling distance in the XY image dimensions. Default value of 1 meaning 1 ray cast per pixel. If set to 0.5, 4 rays will be cast per pixel. If set to 2.0, 1 ray will be cast for every 4 (2 by 2) pixels.

virtual float vtkUnstructuredGridVolumeZSweepMapper::GetImageSampleDistance (  )  [virtual]

Sampling distance in the XY image dimensions. Default value of 1 meaning 1 ray cast per pixel. If set to 0.5, 4 rays will be cast per pixel. If set to 2.0, 1 ray will be cast for every 4 (2 by 2) pixels.

virtual void vtkUnstructuredGridVolumeZSweepMapper::SetMinimumImageSampleDistance ( float   )  [virtual]

This is the minimum image sample distance allow when the image sample distance is being automatically adjusted

virtual float vtkUnstructuredGridVolumeZSweepMapper::GetMinimumImageSampleDistance (  )  [virtual]

This is the minimum image sample distance allow when the image sample distance is being automatically adjusted

virtual void vtkUnstructuredGridVolumeZSweepMapper::SetMaximumImageSampleDistance ( float   )  [virtual]

This is the maximum image sample distance allow when the image sample distance is being automatically adjusted

virtual float vtkUnstructuredGridVolumeZSweepMapper::GetMaximumImageSampleDistance (  )  [virtual]

This is the maximum image sample distance allow when the image sample distance is being automatically adjusted

virtual void vtkUnstructuredGridVolumeZSweepMapper::SetAutoAdjustSampleDistances ( int   )  [virtual]

If AutoAdjustSampleDistances is on, the the ImageSampleDistance will be varied to achieve the allocated render time of this prop (controlled by the desired update rate and any culling in use).

virtual int vtkUnstructuredGridVolumeZSweepMapper::GetAutoAdjustSampleDistances (  )  [virtual]

If AutoAdjustSampleDistances is on, the the ImageSampleDistance will be varied to achieve the allocated render time of this prop (controlled by the desired update rate and any culling in use).

virtual void vtkUnstructuredGridVolumeZSweepMapper::AutoAdjustSampleDistancesOn (  )  [virtual]

If AutoAdjustSampleDistances is on, the the ImageSampleDistance will be varied to achieve the allocated render time of this prop (controlled by the desired update rate and any culling in use).

virtual void vtkUnstructuredGridVolumeZSweepMapper::AutoAdjustSampleDistancesOff (  )  [virtual]

If AutoAdjustSampleDistances is on, the the ImageSampleDistance will be varied to achieve the allocated render time of this prop (controlled by the desired update rate and any culling in use).

virtual void vtkUnstructuredGridVolumeZSweepMapper::SetIntermixIntersectingGeometry ( int   )  [virtual]

If IntermixIntersectingGeometry is turned on, the zbuffer will be captured and used to limit the traversal of the rays.

virtual int vtkUnstructuredGridVolumeZSweepMapper::GetIntermixIntersectingGeometry (  )  [virtual]

If IntermixIntersectingGeometry is turned on, the zbuffer will be captured and used to limit the traversal of the rays.

virtual void vtkUnstructuredGridVolumeZSweepMapper::IntermixIntersectingGeometryOn (  )  [virtual]

If IntermixIntersectingGeometry is turned on, the zbuffer will be captured and used to limit the traversal of the rays.

virtual void vtkUnstructuredGridVolumeZSweepMapper::IntermixIntersectingGeometryOff (  )  [virtual]

If IntermixIntersectingGeometry is turned on, the zbuffer will be captured and used to limit the traversal of the rays.

int vtkUnstructuredGridVolumeZSweepMapper::GetMaxPixelListSize (  ) 

Maximum size allowed for a pixel list. Default is 32. During the rendering, if a list of pixel is full, incremental compositing is performed. Even if it is a user setting, it is an advanced parameter. You have to understand how the algorithm works to change this value.

void vtkUnstructuredGridVolumeZSweepMapper::SetMaxPixelListSize ( int  size  ) 

Change the maximum size allowed for a pixel list. It is an advanced parameter.

Precondition:
positive_size: size>1

virtual void vtkUnstructuredGridVolumeZSweepMapper::SetRayIntegrator ( vtkUnstructuredGridVolumeRayIntegrator ri  )  [virtual]

Set/Get the helper class for integrating rays. If set to NULL, a default integrator will be assigned.

virtual vtkUnstructuredGridVolumeRayIntegrator* vtkUnstructuredGridVolumeZSweepMapper::GetRayIntegrator (  )  [virtual]

Set/Get the helper class for integrating rays. If set to NULL, a default integrator will be assigned.

void vtkUnstructuredGridVolumeZSweepMapper::Render ( vtkRenderer ren,
vtkVolume vol 
) [virtual]

WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERING PROCESS Render the volume

Implements vtkUnstructuredGridVolumeMapper.

virtual int* vtkUnstructuredGridVolumeZSweepMapper::GetImageInUseSize (  )  [virtual]

virtual void vtkUnstructuredGridVolumeZSweepMapper::GetImageInUseSize ( int  data[2]  )  [virtual]

virtual int* vtkUnstructuredGridVolumeZSweepMapper::GetImageOrigin (  )  [virtual]

virtual void vtkUnstructuredGridVolumeZSweepMapper::GetImageOrigin ( int  data[2]  )  [virtual]

virtual int* vtkUnstructuredGridVolumeZSweepMapper::GetImageViewportSize (  )  [virtual]

virtual void vtkUnstructuredGridVolumeZSweepMapper::GetImageViewportSize ( int  data[2]  )  [virtual]

void vtkUnstructuredGridVolumeZSweepMapper::BuildUseSets (  )  [protected]

For each vertex, find the list of incident faces.

int vtkUnstructuredGridVolumeZSweepMapper::ReorderTriangle ( vtkIdType  v[3],
vtkIdType  w[3] 
) [protected]

Reorder vertices `v' in increasing order in `w'. Return if the orientation has changed.

void vtkUnstructuredGridVolumeZSweepMapper::ProjectAndSortVertices ( vtkRenderer ren,
vtkVolume vol 
) [protected]

Project and sort the vertices by z-coordinates in view space in the "event list" (an heap).

Precondition:
empty_list: this->EventList->GetNumberOfItems()==0

void vtkUnstructuredGridVolumeZSweepMapper::CreateAndCleanPixelList (  )  [protected]

Create an empty "pixel list" for each pixel of the screen.

void vtkUnstructuredGridVolumeZSweepMapper::MainLoop ( vtkRenderWindow renWin  )  [protected]

MainLoop of the Zsweep algorithm.

Postcondition:
empty_list: this->EventList->GetNumberOfItems()==0

void vtkUnstructuredGridVolumeZSweepMapper::CompositeFunction ( double  zTarget  )  [protected]

Do delayed compositing from back to front, stopping at zTarget for each pixel inside the bounding box.

unsigned char vtkUnstructuredGridVolumeZSweepMapper::ColorComponentRealToByte ( float  color  )  [protected]

Convert and clamp a float color component into a unsigned char.

void vtkUnstructuredGridVolumeZSweepMapper::RasterizeFace ( vtkIdType  faceIds[3],
int  externalSide 
) [protected]

Perform scan conversion of a triangle face.

void vtkUnstructuredGridVolumeZSweepMapper::RasterizeTriangle ( vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *  ve0,
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *  ve1,
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *  ve2,
bool  exitFace 
) [protected]

Perform scan conversion of a triangle defined by its vertices.

Precondition:
ve0_exists: ve0!=0

ve1_exists: ve1!=0

ve2_exists: ve2!=0

void vtkUnstructuredGridVolumeZSweepMapper::RasterizeSpan ( int  y,
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *  left,
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *  right,
bool  exitFace 
) [protected]

Perform scan conversion of an horizontal span from left ro right at line y.

Precondition:
left_exists: left!=0

right_exists: right!=0

void vtkUnstructuredGridVolumeZSweepMapper::RasterizeLine ( vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *  v0,
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *  v1,
bool  exitFace 
) [protected]

Scan conversion of a straight line defined by endpoints v0 and v1.

Precondition:
v0_exists: v0!=0

v1_exists: v1!=0

y_ordered v0->GetScreenY()<=v1->GetScreenY()

void vtkUnstructuredGridVolumeZSweepMapper::StoreRenderTime ( vtkRenderer ren,
vtkVolume vol,
float  t 
) [protected]

float vtkUnstructuredGridVolumeZSweepMapper::RetrieveRenderTime ( vtkRenderer ren,
vtkVolume vol 
) [protected]

double vtkUnstructuredGridVolumeZSweepMapper::GetZBufferValue ( int  x,
int  y 
) [protected]

Return the value of the z-buffer at screen coordinates (x,y).

double vtkUnstructuredGridVolumeZSweepMapper::GetMinimumBoundsDepth ( vtkRenderer ren,
vtkVolume vol 
) [protected]

void vtkUnstructuredGridVolumeZSweepMapper::AllocateUseSet ( vtkIdType  size  )  [protected]

Allocate an array of usesets of size `size' only if the current one is not large enough. Otherwise clear each use set of each vertex.

void vtkUnstructuredGridVolumeZSweepMapper::AllocateVertices ( vtkIdType  size  )  [protected]

Allocate a vertex array of size `size' only if the current one is not large enough.

void vtkUnstructuredGridVolumeZSweepMapper::SavePixelListFrame (  )  [protected]

For debugging purpose, save the pixel list frame as a dataset.


Member Data Documentation

Definition at line 247 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 249 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 250 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 251 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 252 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 254 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 257 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 263 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 269 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 273 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 276 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 279 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 281 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 282 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 283 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 284 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 285 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 287 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 289 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 290 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 291 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 293 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 294 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 299 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 300 of file vtkUnstructuredGridVolumeZSweepMapper.h.

vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan* vtkUnstructuredGridVolumeZSweepMapper::Span [protected]

Definition at line 303 of file vtkUnstructuredGridVolumeZSweepMapper.h.

vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListFrame* vtkUnstructuredGridVolumeZSweepMapper::PixelListFrame [protected]

Definition at line 304 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 307 of file vtkUnstructuredGridVolumeZSweepMapper.h.

vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkUseSet* vtkUnstructuredGridVolumeZSweepMapper::UseSet [protected]

Definition at line 309 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 311 of file vtkUnstructuredGridVolumeZSweepMapper.h.

vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertices* vtkUnstructuredGridVolumeZSweepMapper::Vertices [protected]

Definition at line 312 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 314 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 315 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 318 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 319 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 320 of file vtkUnstructuredGridVolumeZSweepMapper.h.

vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge* vtkUnstructuredGridVolumeZSweepMapper::SimpleEdge [protected]

Definition at line 322 of file vtkUnstructuredGridVolumeZSweepMapper.h.

vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge* vtkUnstructuredGridVolumeZSweepMapper::DoubleEdge [protected]

Definition at line 323 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 325 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 326 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 328 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 331 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 332 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 333 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 336 of file vtkUnstructuredGridVolumeZSweepMapper.h.

vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListEntryMemory* vtkUnstructuredGridVolumeZSweepMapper::MemoryManager [protected]

Definition at line 339 of file vtkUnstructuredGridVolumeZSweepMapper.h.


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

Generated on Wed Jun 3 19:43:34 2009 for VTK by  doxygen 1.5.6