Helios++
Helios software for LiDAR simulations
Raycaster.h
1 #pragma once
2 
3 #include <RaySceneIntersection.h>
4 
5 #include <glm/glm.hpp>
6 
7 #include <map>
8 
15 class Raycaster{
16 public:
17  // *** CONSTRUCTION / DESTRUCTION *** //
18  // ************************************ //
19  virtual ~Raycaster() = default;
20 
21  // *** RAYCASTING METHODS *** //
22  // **************************** //
38  virtual std::map<double, Primitive*> searchAll(
39  glm::dvec3 rayOrigin,
40  glm::dvec3 rayDir,
41  double tmin,
42  double tmax,
43  bool groundOnly
44  ) = 0;
60  glm::dvec3 rayOrigin,
61  glm::dvec3 rayDir,
62  double tmin,
63  double tmax,
64  bool groundOnly
65  ) = 0;
66 };
Class representing a the intersection of a ray over a scene made of primitives.
Definition: RaySceneIntersection.h:12
Raycaster interface declaring raycasting operations.
Definition: Raycaster.h:15
virtual RaySceneIntersection * search(glm::dvec3 rayOrigin, glm::dvec3 rayDir, double tmin, double tmax, bool groundOnly)=0
Search first intersection for specified ray.
virtual std::map< double, Primitive * > searchAll(glm::dvec3 rayOrigin, glm::dvec3 rayDir, double tmin, double tmax, bool groundOnly)=0
Search all intersections for specified ray.