VTK-m
2.0
|
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) |
MeshConnectivityContainer * | GetMeshContainer () |
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... | |
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) |
ConnectivityTracer is volumetric ray tracer for unstructured grids.
Capabilities include volume rendering and integrating absorption and emission of N energy groups for simulated radiograhy.
|
inline |
|
inline |
|
private |
|
private |
void vtkm::rendering::raytracing::ConnectivityTracer::FindMeshEntry | ( | Ray< FloatType > & | rays | ) |
Find the entry point in the mesh.
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
|
inline |
vtkm::Id vtkm::rendering::raytracing::ConnectivityTracer::GetNumberOfMeshCells | ( | ) | const |
void vtkm::rendering::raytracing::ConnectivityTracer::Init | ( | ) |
|
private |
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
|
private |
void vtkm::rendering::raytracing::ConnectivityTracer::LogTimers | ( | ) |
|
private |
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
|
private |
void vtkm::rendering::raytracing::ConnectivityTracer::ResetTimers | ( | ) |
|
private |
void vtkm::rendering::raytracing::ConnectivityTracer::SetBackgroundColor | ( | const vtkm::Vec4f_32 & | backgroundColor | ) |
void vtkm::rendering::raytracing::ConnectivityTracer::SetColorMap | ( | const vtkm::cont::ArrayHandle< vtkm::Vec4f_32 > & | colorMap | ) |
|
inline |
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 | ||
) |
|
inline |
void vtkm::rendering::raytracing::ConnectivityTracer::SetSampleDistance | ( | const vtkm::Float32 & | distance | ) |
|
inline |
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 | ||
) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |