VTK-m  2.0
CylinderIntersector.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_Cylinder_Intersector_h
11 #define vtk_m_rendering_raytracing_Cylinder_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:
30 
31 public:
33  virtual ~CylinderIntersector() override;
34 
35 
36  void SetData(const vtkm::cont::CoordinateSystem& coords,
39 
40  void IntersectRays(Ray<vtkm::Float32>& rays, bool returnCellIndex = false) override;
41 
42 
43  void IntersectRays(Ray<vtkm::Float64>& rays, bool returnCellIndex = false) override;
44 
45  template <typename Precision>
46  void IntersectRaysImp(Ray<Precision>& rays, bool returnCellIndex);
47 
48 
49  template <typename Precision>
51  const vtkm::cont::Field scalarField,
52  const vtkm::Range& scalarRange);
53 
55  const vtkm::cont::Field scalarField,
56  const vtkm::Range& scalarRange = vtkm::Range()) override;
57 
59  const vtkm::cont::Field scalarField,
60  const vtkm::Range& scalarRange = vtkm::Range()) override;
61 
62  vtkm::Id GetNumberOfShapes() const override;
63 }; // class ShapeIntersector
64 }
65 }
66 } //namespace vtkm::rendering::raytracing
67 #endif //vtk_m_rendering_raytracing_Shape_Intersector_h
vtkm::cont::ArrayHandle
Manages an array-worth of data.
Definition: ArrayHandle.h:283
vtkm
Groups connected points that have the same field value.
Definition: Atomic.h:19
vtkm::rendering::raytracing::CylinderIntersector::IntersectionData
void IntersectionData(Ray< vtkm::Float32 > &rays, const vtkm::cont::Field scalarField, const vtkm::Range &scalarRange=vtkm::Range()) override
vtkm::rendering::raytracing::CylinderIntersector::~CylinderIntersector
virtual ~CylinderIntersector() override
vtkm::rendering::raytracing::CylinderIntersector::CylIds
vtkm::cont::ArrayHandle< vtkm::Id3 > CylIds
Definition: CylinderIntersector.h:28
vtkm::rendering::raytracing::CylinderIntersector::CylinderIntersector
CylinderIntersector()
vtkm::Id
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
vtkm::rendering::raytracing::CylinderIntersector::GetNumberOfShapes
vtkm::Id GetNumberOfShapes() const override
vtkm::rendering::raytracing::CylinderIntersector
Definition: CylinderIntersector.h:25
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::CylinderIntersector::IntersectRaysImp
void IntersectRaysImp(Ray< Precision > &rays, bool returnCellIndex)
vtkm::rendering::raytracing::CylinderIntersector::IntersectionDataImp
void IntersectionDataImp(Ray< Precision > &rays, const vtkm::cont::Field scalarField, const vtkm::Range &scalarRange)
ShapeIntersector.h
vtkm::rendering::raytracing::CylinderIntersector::IntersectRays
void IntersectRays(Ray< vtkm::Float32 > &rays, bool returnCellIndex=false) override
vtkm::rendering::raytracing::CylinderIntersector::SetData
void SetData(const vtkm::cont::CoordinateSystem &coords, vtkm::cont::ArrayHandle< vtkm::Id3 > cylIds, vtkm::cont::ArrayHandle< vtkm::Float32 > radii)
vtkm::rendering::raytracing::ShapeIntersector
Definition: ShapeIntersector.h:24
vtkm::rendering::raytracing::CylinderIntersector::Radii
vtkm::cont::ArrayHandle< vtkm::Float32 > Radii
Definition: CylinderIntersector.h:29
vtkm::Range
Represent a continuous scalar range of values.
Definition: Range.h:31