VTK-m  2.0
QuadIntersector.h
Go to the documentation of this file.
1 //============================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //============================================================================
10 #ifndef vtk_m_rendering_raytracing_Quad_Intersector_h
11 #define vtk_m_rendering_raytracing_Quad_Intersector_h
12 
13 #include <vtkm/cont/Algorithm.h>
15 
16 namespace vtkm
17 {
18 namespace rendering
19 {
20 namespace raytracing
21 {
22 namespace detail
23 {
24 }
26 {
27 protected:
29 
30 public:
32  virtual ~QuadIntersector() override;
33 
34 
35  void SetData(const vtkm::cont::CoordinateSystem& coords,
37 
38  void IntersectRays(Ray<vtkm::Float32>& rays, bool returnCellIndex = false) override;
39 
40 
41  void IntersectRays(Ray<vtkm::Float64>& rays, bool returnCellIndex = false) override;
42 
43  template <typename Precision>
44  void IntersectRaysImp(Ray<Precision>& rays, bool returnCellIndex);
45 
46 
47  template <typename Precision>
49  const vtkm::cont::Field scalarField,
50  const vtkm::Range& scalarRange);
51 
53  const vtkm::cont::Field scalarField,
54  const vtkm::Range& scalarRange = vtkm::Range()) override;
55 
57  const vtkm::cont::Field scalarField,
58  const vtkm::Range& scalarRange = vtkm::Range()) override;
59 
60  vtkm::Id GetNumberOfShapes() const override;
61 }; // class ShapeIntersector
62 }
63 }
64 } //namespace vtkm::rendering::raytracing
65 #endif //vtk_m_rendering_raytracing_Shape_Intersector_h
vtkm::cont::ArrayHandle
Manages an array-worth of data.
Definition: ArrayHandle.h:283
vtkm::rendering::raytracing::QuadIntersector::QuadIntersector
QuadIntersector()
vtkm::rendering::raytracing::QuadIntersector::IntersectionDataImp
void IntersectionDataImp(Ray< Precision > &rays, const vtkm::cont::Field scalarField, const vtkm::Range &scalarRange)
vtkm::rendering::raytracing::QuadIntersector
Definition: QuadIntersector.h:25
vtkm
Groups connected points that have the same field value.
Definition: Atomic.h:19
vtkm::rendering::raytracing::QuadIntersector::~QuadIntersector
virtual ~QuadIntersector() override
vtkm::rendering::raytracing::QuadIntersector::GetNumberOfShapes
vtkm::Id GetNumberOfShapes() const override
vtkm::rendering::raytracing::QuadIntersector::QuadIds
vtkm::cont::ArrayHandle< vtkm::Vec< vtkm::Id, 5 > > QuadIds
Definition: QuadIntersector.h:28
vtkm::Id
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
vtkm::cont::CoordinateSystem
Definition: CoordinateSystem.h:25
vtkm::rendering::raytracing::Ray
Definition: Ray.h:37
Algorithm.h
vtkm::cont::Field
A Field encapsulates an array on some piece of the mesh, such as the points, a cell set,...
Definition: cont/Field.h:31
vtkm::rendering::raytracing::QuadIntersector::IntersectRays
void IntersectRays(Ray< vtkm::Float32 > &rays, bool returnCellIndex=false) override
ShapeIntersector.h
vtkm::rendering::raytracing::QuadIntersector::IntersectionData
void IntersectionData(Ray< vtkm::Float32 > &rays, const vtkm::cont::Field scalarField, const vtkm::Range &scalarRange=vtkm::Range()) override
vtkm::Vec
A short fixed-length array.
Definition: Types.h:767
vtkm::rendering::raytracing::QuadIntersector::SetData
void SetData(const vtkm::cont::CoordinateSystem &coords, vtkm::cont::ArrayHandle< vtkm::Vec< vtkm::Id, 5 >> quadIds)
vtkm::rendering::raytracing::ShapeIntersector
Definition: ShapeIntersector.h:24
vtkm::rendering::raytracing::QuadIntersector::IntersectRaysImp
void IntersectRaysImp(Ray< Precision > &rays, bool returnCellIndex)
vtkm::Range
Represent a continuous scalar range of values.
Definition: Range.h:31