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

Unstructured grid volume mapper based the ZSweep Algorithm. More...

#include <vtkUnstructuredGridVolumeZSweepMapper.h>

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

List of all members.

Public Types

typedef
vtkUnstructuredGridVolumeMapper 
Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkUnstructuredGridVolumeZSweepMapperNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
int GetMaxPixelListSize ()
void SetMaxPixelListSize (int size)
virtual intGetImageInUseSize ()
virtual void GetImageInUseSize (int data[2])
virtual intGetImageOrigin ()
virtual void GetImageOrigin (int data[2])
virtual intGetImageViewportSize ()
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 (vtkObjectBase *o)
static
vtkUnstructuredGridVolumeZSweepMapper
New ()

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 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
floatRealRGBAImage
floatRenderTimeTable
vtkVolume ** RenderVolumeTable
vtkRenderer ** RenderRendererTable
int RenderTableSize
int RenderTableEntries
int IntermixIntersectingGeometry
floatZBuffer
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

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 73 of file vtkUnstructuredGridVolumeZSweepMapper.h.


Member Typedef Documentation

Reimplemented from vtkUnstructuredGridVolumeMapper.

Definition at line 76 of file vtkUnstructuredGridVolumeZSweepMapper.h.


Constructor & Destructor Documentation


Member Function Documentation

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 vtkTypeMacro 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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkUnstructuredGridVolumeMapper.

Reimplemented from vtkUnstructuredGridVolumeMapper.

Reimplemented from vtkUnstructuredGridVolumeMapper.

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.

Set MaxPixelListSize to 32.

Reimplemented from vtkAlgorithm.

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.

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.

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

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

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

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

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).

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).

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).

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).

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

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

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

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

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.

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

Precondition:
positive_size: size>1

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

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

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

Implements vtkUnstructuredGridVolumeMapper.

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

For each vertex, find the list of incident faces.

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

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

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

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

MainLoop of the Zsweep algorithm.

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

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

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()

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

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.

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

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


Member Data Documentation

Definition at line 248 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 253 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 255 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 258 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 264 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 270 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 274 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 277 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 280 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 286 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 288 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 290 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 291 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 292 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 294 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 295 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 300 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 301 of file vtkUnstructuredGridVolumeZSweepMapper.h.

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

Definition at line 304 of file vtkUnstructuredGridVolumeZSweepMapper.h.

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

Definition at line 305 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 308 of file vtkUnstructuredGridVolumeZSweepMapper.h.

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

Definition at line 310 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 312 of file vtkUnstructuredGridVolumeZSweepMapper.h.

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

Definition at line 313 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 315 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 316 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 319 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 320 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 321 of file vtkUnstructuredGridVolumeZSweepMapper.h.

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

Definition at line 323 of file vtkUnstructuredGridVolumeZSweepMapper.h.

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

Definition at line 324 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 326 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 327 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 329 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 332 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 333 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 334 of file vtkUnstructuredGridVolumeZSweepMapper.h.

Definition at line 337 of file vtkUnstructuredGridVolumeZSweepMapper.h.

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

Definition at line 340 of file vtkUnstructuredGridVolumeZSweepMapper.h.


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