Helios++
Helios software for LiDAR simulations
KDGroveRaycaster.h
1 #pragma once
2 
3 #include <Raycaster.h>
4 #include <KDGrove.h>
5 #include <Primitive.h>
6 
7 #include <glm/glm.hpp>
8 
19 class KDGroveRaycaster : public Raycaster{
20 protected:
21  // *** ATTRIBUTES *** //
22  // ******************** //
26  std::shared_ptr<KDGrove> grove;
27 
28 public:
29  // *** CONSTRUCTION / DESTRUCTION *** //
30  // ************************************ //
35  KDGroveRaycaster(std::shared_ptr<KDGrove> grove) : grove(grove) {}
36  virtual ~KDGroveRaycaster() = default;
37 
38  // *** RAYCASTING METHODS *** //
39  // **************************** //
43  std::map<double, Primitive*> searchAll(
44  glm::dvec3 rayOrigin,
45  glm::dvec3 rayDir,
46  double tmin,
47  double tmax,
48  bool groundOnly
49  ) override;
54  glm::dvec3 rayOrigin,
55  glm::dvec3 rayDir,
56  double tmin,
57  double tmax,
58  bool groundOnly
59  ) override;
60 
61  // *** KDGROVE RELATED METHODS *** //
62  // ********************************* //
73  virtual std::shared_ptr<KDGroveRaycaster> makeTemporalClone() const;
74 
75  // *** GETTERs and SETTERs *** //
76  // ***************************** //
82  inline std::shared_ptr<KDGrove> getGrove() {return grove;}
83 };
Class representing a KDGrove ray caster.
Definition: KDGroveRaycaster.h:19
KDGroveRaycaster(std::shared_ptr< KDGrove > grove)
Definition: KDGroveRaycaster.h:35
std::shared_ptr< KDGrove > grove
The KDGrove for the ray casting.
Definition: KDGroveRaycaster.h:26
virtual std::shared_ptr< KDGroveRaycaster > makeTemporalClone() const
Make a temporal clone of the KDGroveRaycaster.
Definition: KDGroveRaycaster.cpp:50
std::map< double, Primitive * > searchAll(glm::dvec3 rayOrigin, glm::dvec3 rayDir, double tmin, double tmax, bool groundOnly) override
Definition: KDGroveRaycaster.cpp:5
std::shared_ptr< KDGrove > getGrove()
Obtain the KDGrove associated to the KDGroveRaycaster.
Definition: KDGroveRaycaster.h:82
RaySceneIntersection * search(glm::dvec3 rayOrigin, glm::dvec3 rayDir, double tmin, double tmax, bool groundOnly) override
Definition: KDGroveRaycaster.cpp:23
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