24 #ifndef vtkUnstructuredGridPreIntegration_h
25 #define vtkUnstructuredGridPreIntegration_h
27 #include "vtkRenderingVolumeModule.h"
32 VTK_ABI_NAMESPACE_BEGIN
61 vtkSetMacro(IntegrationTableScalarResolution,
int);
62 vtkGetMacro(IntegrationTableScalarResolution,
int);
63 vtkSetMacro(IntegrationTableLengthResolution,
int);
64 vtkGetMacro(IntegrationTableLengthResolution,
int);
71 virtual double GetIntegrationTableScalarShift(
int component = 0);
72 virtual double GetIntegrationTableScalarScale(
int component = 0);
73 virtual double GetIntegrationTableLengthScale();
83 vtkGetMacro(IncrementalPreIntegration,
vtkTypeBool);
84 vtkSetMacro(IncrementalPreIntegration,
vtkTypeBool);
85 vtkBooleanMacro(IncrementalPreIntegration,
vtkTypeBool);
99 virtual float* GetPreIntegrationTable(
int component = 0);
105 float* GetTableEntry(
double scalar_front,
double scalar_back,
double length,
int component = 0);
112 float* GetIndexedTableEntry(
113 int scalar_front_index,
int scalar_back_index,
int length_index,
int component = 0);
137 virtual void BuildPreIntegrationTables(
vtkDataArray* scalars);
145 int scalar_front_index,
int scalar_back_index,
int length_index,
int component)
150 scalar_front_index =
std::max(scalar_front_index, 0);
152 scalar_back_index =
std::max(scalar_back_index, 0);
154 length_index =
std::max(length_index, 0);
161 scalar_front_index));
175 VTK_ABI_NAMESPACE_END
176 #endif // vtkUnstructuredGridPreIntegration_h
represents a volume (data & properties) in a rendered scene
float * GetIndexedTableEntry(int scalar_front_index, int scalar_back_index, int length_index, int component=0)
Like GetTableEntry, except the inputs are scaled indices into the table rather than than the actual s...
virtual void Initialize(vtkVolume *volume, vtkDataArray *scalars)=0
Set up the integrator with the given properties and scalars.
vtkUnstructuredGridVolumeRayIntegrator * Integrator
record modification and/or execution time
vtkTimeStamp IntegrationTableBuilt
int IntegrationTableScalarResolution
dynamic, self-adjusting array of double
double * IntegrationTableScalarShift
a superclass for volume ray integration functions
double IntegrationTableLengthScale
a simple class to control print indentation
vtkVolumeProperty * Property
abstract superclass for arrays of numeric data
performs ray integration with pre-integration tables.
float ** IntegrationTable
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
float * GetTableEntry(double scalar_front, double scalar_back, double length, int component=0)
Get an entry (RGBA) in one of the pre-integration tables.
represents the common properties for rendering a volume.
int IntegrationTableLengthResolution
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkTypeBool IncrementalPreIntegration
double * IntegrationTableScalarScale
virtual void Integrate(vtkDoubleArray *intersectionLengths, vtkDataArray *nearIntersections, vtkDataArray *farIntersections, float color[4])=0
Given a set of intersections (defined by the three arrays), compute the piecewise integration of the ...