23 #ifndef vtkUnstructuredGridVolumeZSweepMapper_h
24 #define vtkUnstructuredGridVolumeZSweepMapper_h
26 #include "vtkRenderingVolumeModule.h"
29 VTK_ABI_NAMESPACE_BEGIN
48 VTK_ABI_NAMESPACE_BEGIN
51 class vtkPixelListFrame;
54 class vtkSimpleScreenEdge;
55 class vtkDoubleScreenEdge;
57 class vtkPixelListEntryMemory;
61 VTK_ABI_NAMESPACE_BEGIN
80 vtkSetClampMacro(ImageSampleDistance,
float, 0.1f, 100.0f);
81 vtkGetMacro(ImageSampleDistance,
float);
89 vtkSetClampMacro(MinimumImageSampleDistance,
float, 0.1f, 100.0f);
90 vtkGetMacro(MinimumImageSampleDistance,
float);
98 vtkSetClampMacro(MaximumImageSampleDistance,
float, 0.1f, 100.0f);
99 vtkGetMacro(MaximumImageSampleDistance,
float);
109 vtkSetClampMacro(AutoAdjustSampleDistances,
vtkTypeBool, 0, 1);
110 vtkGetMacro(AutoAdjustSampleDistances,
vtkTypeBool);
111 vtkBooleanMacro(AutoAdjustSampleDistances,
vtkTypeBool);
119 vtkSetClampMacro(IntermixIntersectingGeometry,
vtkTypeBool, 0, 1);
120 vtkGetMacro(IntermixIntersectingGeometry,
vtkTypeBool);
121 vtkBooleanMacro(IntermixIntersectingGeometry,
vtkTypeBool);
130 int GetMaxPixelListSize();
137 void SetMaxPixelListSize(
int size);
155 vtkGetVectorMacro(ImageInUseSize,
int, 2);
156 vtkGetVectorMacro(ImageOrigin,
int, 2);
157 vtkGetVectorMacro(ImageViewportSize,
int, 2);
184 void CreateAndCleanPixelList();
196 void CompositeFunction(
double zTarget);
201 unsigned char ColorComponentRealToByte(
float color);
206 void RasterizeFace(
vtkIdType faceIds[3],
int externalSide);
214 void RasterizeTriangle(vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry* ve0,
215 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry* ve1,
216 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry* ve2,
bool externalFace);
224 void RasterizeSpan(
int y, vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge* left,
225 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge* right,
bool exitFace);
233 void RasterizeLine(vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry* v0,
234 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry* v1,
bool exitFace);
243 double GetZBufferValue(
int x,
int y);
262 void SavePixelListFrame();
274 int ImageViewportSize[2];
280 int ImageMemorySize[2];
286 int ImageInUseSize[2];
308 int ZBufferOrigin[2];
316 double FaceScalars[2];
319 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan*
Span;
320 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListFrame*
PixelListFrame;
325 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkUseSet*
UseSet;
328 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertices*
Vertices;
338 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge*
SimpleEdge;
339 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge*
DoubleEdge;
354 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListEntryMemory*
MemoryManager;
361 VTK_ABI_NAMESPACE_END
vtkPriorityQueue * EventList
vtkRayCastImageDisplayHelper * ImageDisplayHelper
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan * Span
represents a volume (data & properties) in a rendered scene
vtkTimeStamp SavedTriangleListMTime
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
represent and manipulate 4x4 transformation matrices
float ImageSampleDistance
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListEntryMemory * MemoryManager
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge * SimpleEdge
record modification and/or execution time
vtkVolume ** RenderVolumeTable
abstract specification for renderers
vtkTypeBool AutoAdjustSampleDistances
void Render(vtkRenderer *ren, vtkVolume *vol) override=0
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
provides thread-safe access to cells
vtkTypeBool IntermixIntersectingGeometry
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 an 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()
float MaximumImageSampleDistance
vtkDoubleArray * NearIntersections
Unstructured grid volume mapper based the ZSweep Algorithm.
vtkDoubleArray * FarIntersections
vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge * DoubleEdge
vtkUnstructuredGridVolumeRayIntegrator * RayIntegrator