37 #ifndef vtkUnstructuredGridVolumeZSweepMapper_h
38 #define vtkUnstructuredGridVolumeZSweepMapper_h
63 class vtkPixelListFrame;
66 class vtkSimpleScreenEdge;
67 class vtkDoubleScreenEdge;
69 class vtkPixelListEntryMemory;
86 vtkSetClampMacro( ImageSampleDistance,
float, 0.1f, 100.0f );
87 vtkGetMacro( ImageSampleDistance,
float );
93 vtkSetClampMacro( MinimumImageSampleDistance,
float, 0.1f, 100.0f );
94 vtkGetMacro( MinimumImageSampleDistance,
float );
100 vtkSetClampMacro( MaximumImageSampleDistance,
float, 0.1f, 100.0f );
101 vtkGetMacro( MaximumImageSampleDistance,
float );
108 vtkSetClampMacro( AutoAdjustSampleDistances,
int, 0, 1 );
109 vtkGetMacro( AutoAdjustSampleDistances,
int );
110 vtkBooleanMacro( AutoAdjustSampleDistances,
int );
116 vtkSetClampMacro( IntermixIntersectingGeometry,
int, 0, 1 );
117 vtkGetMacro( IntermixIntersectingGeometry,
int );
118 vtkBooleanMacro( IntermixIntersectingGeometry,
int );
125 int GetMaxPixelListSize();
129 void SetMaxPixelListSize(
int size);
146 vtkGetVectorMacro( ImageInUseSize,
int, 2 );
147 vtkGetVectorMacro( ImageOrigin,
int, 2 );
148 vtkGetVectorMacro( ImageViewportSize,
int , 2 );
174 void CreateAndCleanPixelList();
182 void CompositeFunction(
double zTarget);
185 unsigned char ColorComponentRealToByte(
float color);
188 void RasterizeFace(
vtkIdType faceIds[3],
int externalSide);
194 void RasterizeTriangle(
195 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve0,
196 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve1,
197 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve2,
204 void RasterizeSpan(
int y,
205 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *left,
206 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *right,
215 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v0,
216 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v1,
230 double GetZBufferValue(
int x,
246 void SavePixelListFrame();
258 int ImageViewportSize[2];
264 int ImageMemorySize[2];
270 int ImageInUseSize[2];
292 int ZBufferOrigin[2];
300 double FaceScalars[2];
304 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan *
Span;
305 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListFrame *
PixelListFrame;
310 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkUseSet *
UseSet;
313 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertices *
Vertices;
323 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge *
SimpleEdge;
324 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge *
DoubleEdge;
340 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
#define VTKRENDERINGVOLUME_EXPORT
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
a 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