43#ifndef vtkUnstructuredGridLinearRayIntegrator_h
44#define vtkUnstructuredGridLinearRayIntegrator_h
46#include "vtkRenderingVolumeModule.h"
49class vtkLinearRayIntegratorTransferFunction;
63 vtkDataArray* farIntersections,
float color[4])
override;
70 static void IntegrateRay(
double length,
double intensity_front,
double attenuation_front,
71 double intensity_back,
double attenuation_back,
float color[4]);
72 static void IntegrateRay(
double length,
const double color_front[3],
double attenuation_front,
73 const double color_back[3],
double attenuation_back,
float color[4]);
80 static float Psi(
float length,
float attenuation_front,
float attenuation_back);
abstract superclass for arrays of numeric data
dynamic, self-adjusting array of double
a simple class to control print indentation
record modification and/or execution time
performs piecewise linear ray integration.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkUnstructuredGridLinearRayIntegrator * New()
static float Psi(float length, float attenuation_front, float attenuation_back)
Computes Psi (as defined by Moreland and Angel, "A Fast High Accuracy Volume Renderer for Unstructure...
void Integrate(vtkDoubleArray *intersectionLengths, vtkDataArray *nearIntersections, vtkDataArray *farIntersections, float color[4]) override
Given a set of intersections (defined by the three arrays), compute the piecewise integration of the ...
static void IntegrateRay(double length, const double color_front[3], double attenuation_front, const double color_back[3], double attenuation_back, float color[4])
Integrates a single ray segment.
int NumIndependentComponents
vtkUnstructuredGridLinearRayIntegrator()
static void IntegrateRay(double length, double intensity_front, double attenuation_front, double intensity_back, double attenuation_back, float color[4])
Integrates a single ray segment.
vtkVolumeProperty * Property
vtkTimeStamp TransferFunctionsModified
void Initialize(vtkVolume *volume, vtkDataArray *scalars) override
Set up the integrator with the given properties and scalars.
~vtkUnstructuredGridLinearRayIntegrator() override
vtkLinearRayIntegratorTransferFunction * TransferFunctions
a superclass for volume ray integration functions
represents the common properties for rendering a volume.
represents a volume (data & properties) in a rendered scene