VTK-m  2.0
Public Types | Public Member Functions | Protected Attributes | Private Member Functions | List of all members
vtkm::rendering::raytracing::ConnectivityTracer Class Reference

ConnectivityTracer is volumetric ray tracer for unstructured grids. More...

#include <ConnectivityTracer.h>

Public Types

enum  IntegrationMode { Volume, Energy }
 

Public Member Functions

 ConnectivityTracer ()
 
 ~ConnectivityTracer ()
 
void SetVolumeData (const vtkm::cont::Field &scalarField, const vtkm::Range &scalarBounds, const vtkm::cont::UnknownCellSet &cellSet, const vtkm::cont::CoordinateSystem &coords)
 
void SetEnergyData (const vtkm::cont::Field &absorption, const vtkm::Int32 numBins, const vtkm::cont::UnknownCellSet &cellSet, const vtkm::cont::CoordinateSystem &coords, const vtkm::cont::Field &emission)
 
void SetBackgroundColor (const vtkm::Vec4f_32 &backgroundColor)
 
void SetSampleDistance (const vtkm::Float32 &distance)
 
void SetColorMap (const vtkm::cont::ArrayHandle< vtkm::Vec4f_32 > &colorMap)
 
MeshConnectivityContainerGetMeshContainer ()
 
void Init ()
 
void SetDebugOn (bool on)
 
void SetUnitScalar (const vtkm::Float32 unitScalar)
 
void SetEpsilon (const vtkm::Float64 epsilon)
 
vtkm::Id GetNumberOfMeshCells () const
 
void ResetTimers ()
 
void LogTimers ()
 
template<typename FloatType >
void FullTrace (Ray< FloatType > &rays)
 Traces rays fully through the mesh. More...
 
template<typename FloatType >
std::vector< PartialComposite< FloatType > > PartialTrace (Ray< FloatType > &rays)
 Integrates rays through the mesh. More...
 
template<typename FloatType >
void IntegrateMeshSegment (Ray< FloatType > &rays)
 Integrates the active rays though the mesh until all rays have exited. More...
 
template<typename FloatType >
void FindMeshEntry (Ray< FloatType > &rays)
 Find the entry point in the mesh. More...
 

Protected Attributes

vtkm::cont::Field ScalarField
 
vtkm::cont::Field EmissionField
 
vtkm::cont::UnknownCellSet CellSet
 
vtkm::cont::CoordinateSystem Coords
 
vtkm::Range ScalarBounds
 
vtkm::Float32 BoundingBox [6]
 
vtkm::cont::ArrayHandle< vtkm::Vec4f_32ColorMap
 
vtkm::Vec4f_32 BackgroundColor
 
vtkm::Float32 SampleDistance
 
vtkm::Id RaysLost
 
IntegrationMode Integrator
 
MeshConnectivityContainerMeshContainer
 
vtkm::cont::CellLocatorGeneral Locator
 
vtkm::Float64 BumpEpsilon
 
vtkm::Float64 BumpDistance
 
bool CountRayStatus
 
bool MeshConnIsConstructed
 
bool DebugFiltersOn
 
bool ReEnterMesh
 
bool CreatePartialComposites
 
bool FieldAssocPoints
 
bool HasEmission
 
vtkm::Float64 IntersectTime
 
vtkm::Float64 IntegrateTime
 
vtkm::Float64 SampleTime
 
vtkm::Float64 LostRayTime
 
vtkm::Float64 MeshEntryTime
 
vtkm::Float32 UnitScalar
 

Private Member Functions

template<typename FloatType >
void IntersectCell (Ray< FloatType > &rays, detail::RayTracking< FloatType > &tracker)
 
template<typename FloatType >
void AccumulatePathLengths (Ray< FloatType > &rays, detail::RayTracking< FloatType > &tracker)
 
template<typename FloatType >
void FindLostRays (Ray< FloatType > &rays, detail::RayTracking< FloatType > &tracker)
 
template<typename FloatType >
void SampleCells (Ray< FloatType > &rays, detail::RayTracking< FloatType > &tracker)
 
template<typename FloatType >
void IntegrateCells (Ray< FloatType > &rays, detail::RayTracking< FloatType > &tracker)
 
template<typename FloatType >
void OffsetMinDistances (Ray< FloatType > &rays)
 
template<typename FloatType >
void PrintRayStatus (Ray< FloatType > &rays)
 

Detailed Description

ConnectivityTracer is volumetric ray tracer for unstructured grids.

Capabilities include volume rendering and integrating absorption and emission of N energy groups for simulated radiograhy.

Member Enumeration Documentation

◆ IntegrationMode

Enumerator
Volume 
Energy 

Constructor & Destructor Documentation

◆ ConnectivityTracer()

vtkm::rendering::raytracing::ConnectivityTracer::ConnectivityTracer ( )
inline

◆ ~ConnectivityTracer()

vtkm::rendering::raytracing::ConnectivityTracer::~ConnectivityTracer ( )
inline

Member Function Documentation

◆ AccumulatePathLengths()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::AccumulatePathLengths ( Ray< FloatType > &  rays,
detail::RayTracking< FloatType > &  tracker 
)
private

◆ FindLostRays()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::FindLostRays ( Ray< FloatType > &  rays,
detail::RayTracking< FloatType > &  tracker 
)
private

◆ FindMeshEntry()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::FindMeshEntry ( Ray< FloatType > &  rays)

Find the entry point in the mesh.

◆ FullTrace()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::FullTrace ( Ray< FloatType > &  rays)

Traces rays fully through the mesh.

Rays can exit and re-enter multiple times before leaving the domain. This is fast path for structured meshs or meshes that are not interlocking. Note: rays will be compacted

◆ GetMeshContainer()

MeshConnectivityContainer* vtkm::rendering::raytracing::ConnectivityTracer::GetMeshContainer ( )
inline

◆ GetNumberOfMeshCells()

vtkm::Id vtkm::rendering::raytracing::ConnectivityTracer::GetNumberOfMeshCells ( ) const

◆ Init()

void vtkm::rendering::raytracing::ConnectivityTracer::Init ( )

◆ IntegrateCells()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::IntegrateCells ( Ray< FloatType > &  rays,
detail::RayTracking< FloatType > &  tracker 
)
private

◆ IntegrateMeshSegment()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::IntegrateMeshSegment ( Ray< FloatType > &  rays)

Integrates the active rays though the mesh until all rays have exited.

Precondition: rays.HitIdx is set to a valid mesh cell

◆ IntersectCell()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::IntersectCell ( Ray< FloatType > &  rays,
detail::RayTracking< FloatType > &  tracker 
)
private

◆ LogTimers()

void vtkm::rendering::raytracing::ConnectivityTracer::LogTimers ( )

◆ OffsetMinDistances()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::OffsetMinDistances ( Ray< FloatType > &  rays)
private

◆ PartialTrace()

template<typename FloatType >
std::vector<PartialComposite<FloatType> > vtkm::rendering::raytracing::ConnectivityTracer::PartialTrace ( Ray< FloatType > &  rays)

Integrates rays through the mesh.

If rays leave the mesh and re-enter, then those become two separate partial composites. This is need to support domain decompositions that are like puzzle pieces. Note: rays will be compacted

◆ PrintRayStatus()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::PrintRayStatus ( Ray< FloatType > &  rays)
private

◆ ResetTimers()

void vtkm::rendering::raytracing::ConnectivityTracer::ResetTimers ( )

◆ SampleCells()

template<typename FloatType >
void vtkm::rendering::raytracing::ConnectivityTracer::SampleCells ( Ray< FloatType > &  rays,
detail::RayTracking< FloatType > &  tracker 
)
private

◆ SetBackgroundColor()

void vtkm::rendering::raytracing::ConnectivityTracer::SetBackgroundColor ( const vtkm::Vec4f_32 backgroundColor)

◆ SetColorMap()

void vtkm::rendering::raytracing::ConnectivityTracer::SetColorMap ( const vtkm::cont::ArrayHandle< vtkm::Vec4f_32 > &  colorMap)

◆ SetDebugOn()

void vtkm::rendering::raytracing::ConnectivityTracer::SetDebugOn ( bool  on)
inline

◆ SetEnergyData()

void vtkm::rendering::raytracing::ConnectivityTracer::SetEnergyData ( const vtkm::cont::Field absorption,
const vtkm::Int32  numBins,
const vtkm::cont::UnknownCellSet cellSet,
const vtkm::cont::CoordinateSystem coords,
const vtkm::cont::Field emission 
)

◆ SetEpsilon()

void vtkm::rendering::raytracing::ConnectivityTracer::SetEpsilon ( const vtkm::Float64  epsilon)
inline

◆ SetSampleDistance()

void vtkm::rendering::raytracing::ConnectivityTracer::SetSampleDistance ( const vtkm::Float32 distance)

◆ SetUnitScalar()

void vtkm::rendering::raytracing::ConnectivityTracer::SetUnitScalar ( const vtkm::Float32  unitScalar)
inline

◆ SetVolumeData()

void vtkm::rendering::raytracing::ConnectivityTracer::SetVolumeData ( const vtkm::cont::Field scalarField,
const vtkm::Range scalarBounds,
const vtkm::cont::UnknownCellSet cellSet,
const vtkm::cont::CoordinateSystem coords 
)

Member Data Documentation

◆ BackgroundColor

vtkm::Vec4f_32 vtkm::rendering::raytracing::ConnectivityTracer::BackgroundColor
protected

◆ BoundingBox

vtkm::Float32 vtkm::rendering::raytracing::ConnectivityTracer::BoundingBox[6]
protected

◆ BumpDistance

vtkm::Float64 vtkm::rendering::raytracing::ConnectivityTracer::BumpDistance
protected

◆ BumpEpsilon

vtkm::Float64 vtkm::rendering::raytracing::ConnectivityTracer::BumpEpsilon
protected

◆ CellSet

vtkm::cont::UnknownCellSet vtkm::rendering::raytracing::ConnectivityTracer::CellSet
protected

◆ ColorMap

vtkm::cont::ArrayHandle<vtkm::Vec4f_32> vtkm::rendering::raytracing::ConnectivityTracer::ColorMap
protected

◆ Coords

vtkm::cont::CoordinateSystem vtkm::rendering::raytracing::ConnectivityTracer::Coords
protected

◆ CountRayStatus

bool vtkm::rendering::raytracing::ConnectivityTracer::CountRayStatus
protected

◆ CreatePartialComposites

bool vtkm::rendering::raytracing::ConnectivityTracer::CreatePartialComposites
protected

◆ DebugFiltersOn

bool vtkm::rendering::raytracing::ConnectivityTracer::DebugFiltersOn
protected

◆ EmissionField

vtkm::cont::Field vtkm::rendering::raytracing::ConnectivityTracer::EmissionField
protected

◆ FieldAssocPoints

bool vtkm::rendering::raytracing::ConnectivityTracer::FieldAssocPoints
protected

◆ HasEmission

bool vtkm::rendering::raytracing::ConnectivityTracer::HasEmission
protected

◆ IntegrateTime

vtkm::Float64 vtkm::rendering::raytracing::ConnectivityTracer::IntegrateTime
protected

◆ Integrator

IntegrationMode vtkm::rendering::raytracing::ConnectivityTracer::Integrator
protected

◆ IntersectTime

vtkm::Float64 vtkm::rendering::raytracing::ConnectivityTracer::IntersectTime
protected

◆ Locator

vtkm::cont::CellLocatorGeneral vtkm::rendering::raytracing::ConnectivityTracer::Locator
protected

◆ LostRayTime

vtkm::Float64 vtkm::rendering::raytracing::ConnectivityTracer::LostRayTime
protected

◆ MeshConnIsConstructed

bool vtkm::rendering::raytracing::ConnectivityTracer::MeshConnIsConstructed
protected

◆ MeshContainer

MeshConnectivityContainer* vtkm::rendering::raytracing::ConnectivityTracer::MeshContainer
protected

◆ MeshEntryTime

vtkm::Float64 vtkm::rendering::raytracing::ConnectivityTracer::MeshEntryTime
protected

◆ RaysLost

vtkm::Id vtkm::rendering::raytracing::ConnectivityTracer::RaysLost
protected

◆ ReEnterMesh

bool vtkm::rendering::raytracing::ConnectivityTracer::ReEnterMesh
protected

◆ SampleDistance

vtkm::Float32 vtkm::rendering::raytracing::ConnectivityTracer::SampleDistance
protected

◆ SampleTime

vtkm::Float64 vtkm::rendering::raytracing::ConnectivityTracer::SampleTime
protected

◆ ScalarBounds

vtkm::Range vtkm::rendering::raytracing::ConnectivityTracer::ScalarBounds
protected

◆ ScalarField

vtkm::cont::Field vtkm::rendering::raytracing::ConnectivityTracer::ScalarField
protected

◆ UnitScalar

vtkm::Float32 vtkm::rendering::raytracing::ConnectivityTracer::UnitScalar
protected

The documentation for this class was generated from the following file: