37 #ifndef __vtkUnstructuredGridVolumeZSweepMapper_h
38 #define __vtkUnstructuredGridVolumeZSweepMapper_h
62 class vtkPixelListFrame;
65 class vtkSimpleScreenEdge;
66 class vtkDoubleScreenEdge;
68 class vtkPixelListEntryMemory;
85 vtkSetClampMacro( ImageSampleDistance,
float, 0.1f, 100.0f );
86 vtkGetMacro( ImageSampleDistance,
float );
92 vtkSetClampMacro( MinimumImageSampleDistance,
float, 0.1f, 100.0f );
93 vtkGetMacro( MinimumImageSampleDistance,
float );
99 vtkSetClampMacro( MaximumImageSampleDistance,
float, 0.1f, 100.0f );
100 vtkGetMacro( MaximumImageSampleDistance,
float );
107 vtkSetClampMacro( AutoAdjustSampleDistances,
int, 0, 1 );
108 vtkGetMacro( AutoAdjustSampleDistances,
int );
109 vtkBooleanMacro( AutoAdjustSampleDistances,
int );
115 vtkSetClampMacro( IntermixIntersectingGeometry,
int, 0, 1 );
116 vtkGetMacro( IntermixIntersectingGeometry,
int );
117 vtkBooleanMacro( IntermixIntersectingGeometry,
int );
124 int GetMaxPixelListSize();
128 void SetMaxPixelListSize(
int size);
145 vtkGetVectorMacro( ImageInUseSize,
int, 2 );
146 vtkGetVectorMacro( ImageOrigin,
int, 2 );
147 vtkGetVectorMacro( ImageViewportSize,
int , 2 );
173 void CreateAndCleanPixelList();
181 void CompositeFunction(
double zTarget);
184 unsigned char ColorComponentRealToByte(
float color);
187 void RasterizeFace(
vtkIdType faceIds[3],
int externalSide);
193 void RasterizeTriangle(
194 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve0,
195 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve1,
196 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve2,
203 void RasterizeSpan(
int y,
204 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *left,
205 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *right,
214 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v0,
215 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v1,
229 double GetZBufferValue(
int x,
245 void SavePixelListFrame();
257 int ImageViewportSize[2];
263 int ImageMemorySize[2];
269 int ImageInUseSize[2];
291 int ZBufferOrigin[2];
299 double FaceScalars[2];
303 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan *
Span;
304 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListFrame *
PixelListFrame;
309 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkUseSet *
UseSet;
312 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertices *
Vertices;
322 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge *
SimpleEdge;
323 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge *
DoubleEdge;
339 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListEntryMemory *
MemoryManager;
vtkPriorityQueue * EventList
vtkRayCastImageDisplayHelper * ImageDisplayHelper
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan * Span
represents a volume (data & properties) in a rendered scene
vtkTimeStamp SavedTriangleListMTime
represent and manipulate 4x4 transformation matrices
virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0
float ImageSampleDistance
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListEntryMemory * MemoryManager
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge * SimpleEdge
record modification and/or execution time
vtkVolume ** RenderVolumeTable
abstract specification for renderers
provides thread-safe access to cells
vtkUnstructuredGridVolumeRayIntegrator * RealRayIntegrator
helper class that draws the image to the screen
vtkMatrix4x4 * PerspectiveMatrix
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertices * Vertices
dynamic, self-adjusting array of double
an list of ids arranged in priority order
a superclass for volume ray integration functions
abstract class to specify cell behavior
float MinimumImageSampleDistance
int MaxPixelListSizeReached
a simple class to control print indentation
vtkIdType MaxRecordedPixelListSize
Abstract class for a unstructured grid volume mapper.
list of point or cell ids
vtkTransform * PerspectiveTransform
abstract superclass for arrays of numeric data
vtkRenderer ** RenderRendererTable
vtkDoubleArray * IntersectionLengths
represents the common properties for rendering a volume.
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListFrame * PixelListFrame
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkUseSet * UseSet
create a window for renderers to draw into
static vtkAlgorithm * New()
int IntermixIntersectingGeometry
float MaximumImageSampleDistance
vtkDoubleArray * NearIntersections
int AutoAdjustSampleDistances
Unstructured grid volume mapper based the ZSweep Algorithm.
vtkDoubleArray * FarIntersections
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge * DoubleEdge
void PrintSelf(ostream &os, vtkIndent indent)
vtkUnstructuredGridVolumeRayIntegrator * RayIntegrator