Go to the documentation of this file.
38 #ifndef vtkUnstructuredGridVolumeZSweepMapper_h
39 #define vtkUnstructuredGridVolumeZSweepMapper_h
41 #include "vtkRenderingVolumeModule.h"
63 class vtkPixelListFrame;
66 class vtkSimpleScreenEdge;
67 class vtkDoubleScreenEdge;
69 class vtkPixelListEntryMemory;
89 vtkSetClampMacro( ImageSampleDistance,
float, 0.1f, 100.0f );
90 vtkGetMacro( ImageSampleDistance,
float );
98 vtkSetClampMacro( MinimumImageSampleDistance,
float, 0.1f, 100.0f );
99 vtkGetMacro( MinimumImageSampleDistance,
float );
107 vtkSetClampMacro( MaximumImageSampleDistance,
float, 0.1f, 100.0f );
108 vtkGetMacro( MaximumImageSampleDistance,
float );
118 vtkSetClampMacro( AutoAdjustSampleDistances,
int, 0, 1 );
119 vtkGetMacro( AutoAdjustSampleDistances,
int );
128 vtkSetClampMacro( IntermixIntersectingGeometry,
int, 0, 1 );
129 vtkGetMacro( IntermixIntersectingGeometry,
int );
165 vtkGetVectorMacro( ImageInUseSize,
int, 2 );
166 vtkGetVectorMacro( ImageOrigin,
int, 2 );
167 vtkGetVectorMacro( ImageViewportSize,
int , 2 );
227 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve0,
228 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve1,
229 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve2,
239 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *left,
240 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *right,
250 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v0,
251 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v1,
297 int ImageViewportSize[2];
303 int ImageMemorySize[2];
309 int ImageInUseSize[2];
331 int ZBufferOrigin[2];
339 double FaceScalars[2];
342 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan *
Span;
343 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListFrame *
PixelListFrame;
348 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkUseSet *
UseSet;
351 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertices *
Vertices;
361 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge *
SimpleEdge;
362 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge *
DoubleEdge;
378 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListEntryMemory *
MemoryManager;
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListFrame * PixelListFrame
static vtkUnstructuredGridVolumeZSweepMapper * New()
Set MaxPixelListSize to 32.
void ProjectAndSortVertices(vtkRenderer *ren, vtkVolume *vol)
Project and sort the vertices by z-coordinates in view space in the "event list" (an heap).
a superclass for volume ray integration functions
vtkUnstructuredGridVolumeRayIntegrator * RealRayIntegrator
~vtkUnstructuredGridVolumeZSweepMapper()
vtkIdType MaxRecordedPixelListSize
represents a volume (data & properties) in a rendered scene
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge * DoubleEdge
helper class that draws the image to the screen
float ImageSampleDistance
vtkVolume ** RenderVolumeTable
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertices * Vertices
float MaximumImageSampleDistance
int AutoAdjustSampleDistances
vtkTimeStamp SavedTriangleListMTime
record modification and/or execution time
vtkDoubleArray * FarIntersections
void MainLoop(vtkRenderWindow *renWin)
MainLoop of the Zsweep algorithm.
a list of ids arranged in priority order
vtkPriorityQueue * EventList
void RasterizeTriangle(vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve0, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve1, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve2, bool exitFace)
Perform scan conversion of a triangle defined by its vertices.
void CreateAndCleanPixelList()
Create an empty "pixel list" for each pixel of the screen.
int ReorderTriangle(vtkIdType v[3], vtkIdType w[3])
Reorder vertices ‘v’ in increasing order in ‘w’.
abstract superclass for arrays of numeric data
void AllocateVertices(vtkIdType size)
Allocate a vertex array of size ‘size’ only if the current one is not large enough.
vtkUnstructuredGridVolumeZSweepMapper()
vtkDoubleArray * IntersectionLengths
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan * Span
double GetMinimumBoundsDepth(vtkRenderer *ren, vtkVolume *vol)
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListEntryMemory * MemoryManager
Unstructured grid volume mapper based the ZSweep Algorithm.
double GetZBufferValue(int x, int y)
Return the value of the z-buffer at screen coordinates (x,y).
vtkMatrix4x4 * PerspectiveMatrix
vtkUnstructuredGridVolumeRayIntegrator * RayIntegrator
abstract class to specify cell behavior
vtkRayCastImageDisplayHelper * ImageDisplayHelper
void RasterizeFace(vtkIdType faceIds[3], int externalSide)
Perform scan conversion of a triangle face.
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
void AllocateUseSet(vtkIdType size)
Allocate an array of usesets of size ‘size’ only if the current one is not large enough.
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkUseSet * UseSet
list of point or cell ids
void SavePixelListFrame()
For debugging purpose, save the pixel list frame as a dataset.
void CompositeFunction(double zTarget)
Do delayed compositing from back to front, stopping at zTarget for each pixel inside the bounding box...
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
int MaxPixelListSizeReached
void Render(vtkRenderer *ren, vtkVolume *vol)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
Abstract class for a unstructured grid volume mapper.
virtual void SetRayIntegrator(vtkUnstructuredGridVolumeRayIntegrator *ri)
Set/Get the helper class for integrating rays.
void RasterizeLine(vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v0, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v1, bool exitFace)
Scan conversion of a straight line defined by endpoints v0 and v1.
abstract specification for renderers
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge * SimpleEdge
void SetMaxPixelListSize(int size)
Change the maximum size allowed for a pixel list.
vtkDoubleArray * NearIntersections
provides thread-safe access to cells
void StoreRenderTime(vtkRenderer *ren, vtkVolume *vol, float t)
dynamic, self-adjusting array of double
int IntermixIntersectingGeometry
float RetrieveRenderTime(vtkRenderer *ren, vtkVolume *vol)
create a window for renderers to draw into
vtkTransform * PerspectiveTransform
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
void BuildUseSets()
For each vertex, find the list of incident faces.
void RasterizeSpan(int y, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *left, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *right, bool exitFace)
Perform scan conversion of an horizontal span from left ro right at line y.
unsigned char ColorComponentRealToByte(float color)
Convert and clamp a float color component into a unsigned char.
float MinimumImageSampleDistance
represents the common properties for rendering a volume.
vtkRenderer ** RenderRendererTable
int GetMaxPixelListSize()
Maximum size allowed for a pixel list.