8 #include <RaySceneIntersection.h>
9 #include <LightKDTreeNode.h>
109 std::shared_ptr<LightKDTreeNode>
root;
127 glm::dvec3
const rayOrigin,
128 glm::dvec3
const rayDir,
131 bool const groundOnly
138 glm::dvec3
const rayOrigin,
139 glm::dvec3
const rayDir,
142 bool const groundOnly
165 KDTreeRaycasterSearch &
search
185 KDTreeRaycasterSearch &
search
Data for search operations of KDTree raycaster.
Definition: KDTreeRaycaster.h:30
double closestHitDistance
Distance of closest hit. It is numeric_limits<double>::max() by default.
Definition: KDTreeRaycaster.h:65
std::vector< double > rayOriginArray
Vector containing components of ray origin. It is filled at the start of a search operation.
Definition: KDTreeRaycaster.h:60
KDTreeRaycasterSearch(glm::dvec3 const rayDir, glm::dvec3 const rayOrigin, bool const groundOnly=false)
Default constructo for KDTreeRaycasterSearch.
Definition: KDTreeRaycaster.h:79
bool const groundOnly
Flag to specify if only ground points must be considered (true) or not (false)
Definition: KDTreeRaycaster.h:46
std::vector< double > rayDirArray
Vector containing components of ray director vector. It is filled at the start of a search operation.
Definition: KDTreeRaycaster.h:53
std::map< double, Primitive * > collectedPoints
Map of primitives identified by its distance with respect to ray origin. Only primitives which inters...
Definition: KDTreeRaycaster.h:72
glm::dvec3 const rayDir
Ray 3D director vector.
Definition: KDTreeRaycaster.h:37
glm::dvec3 const rayOrigin
Ray origin 3D coordinates.
Definition: KDTreeRaycaster.h:41
Class representing a KDTree ray caster.
Definition: KDTreeRaycaster.h:16
std::map< double, Primitive * > searchAll(glm::dvec3 const rayOrigin, glm::dvec3 const rayDir, double const tmin, double const tmax, bool const groundOnly) override
Definition: KDTreeRaycaster.cpp:6
void searchAll_recursive(LightKDTreeNode *node, double const tmin, double const tmax, KDTreeRaycasterSearch &search)
Recursive search function to assist searchAll function.
Definition: KDTreeRaycaster.cpp:62
std::shared_ptr< LightKDTreeNode > root
Shared pointer to the root node of the KDTree.
Definition: KDTreeRaycaster.h:109
KDTreeRaycaster(std::shared_ptr< LightKDTreeNode > root)
KDTree ray caster constructor.
Definition: KDTreeRaycaster.h:117
RaySceneIntersection * search(glm::dvec3 const rayOrigin, glm::dvec3 const rayDir, double const tmin, double const tmax, bool const groundOnly) override
Definition: KDTreeRaycaster.cpp:29
double epsilon
Decimal precision for the ray caster.
Definition: KDTreeRaycaster.h:105
Primitive * search_recursive(LightKDTreeNode *node, double const tmin, double const tmax, KDTreeRaycasterSearch &search) const
Recursive search function to assist search function.
Definition: KDTreeRaycaster.cpp:168
Class representing a light KDTree node. It is, the basic representation of a KDTree node with uses le...
Definition: LightKDTreeNode.h:28
Abstract class defining the common behavior for all primitives.
Definition: Primitive.h:24
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