8 #ifndef META_OCEAN_RENDERING_GI_TRACING_GROUP_H
9 #define META_OCEAN_RENDERING_GI_TRACING_GROUP_H
20 namespace GlobalIllumination
This class implements an infinite line in 3D space.
Definition: Line3.h:70
static constexpr T maxValue()
Returns the max scalar value.
Definition: Numeric.h:3244
This class implements a color defined by red, green, blue and alpha parameters.
Definition: RGBAColor.h:41
LightingModes
Definition of individual lighting modes.
Definition: Lighting.h:47
This class implements a ray intersection object.
Definition: RayIntersection.h:44
This class implements a group of tracing objects.
Definition: TracingGroup.h:28
void findNearestIntersection(const Line3 &ray, RayIntersection &intersection, const bool frontFace, const Scalar eps, const TracingObject *excludedObject=nullptr) const override
Determines the nearest intersection with between this tracing object and a given 3D ray.
TracingObjects tracingObjects
The group of tracing objects.
Definition: TracingGroup.h:76
bool hasIntersection(const Line3 &ray, const Scalar maximalDistance=Numeric::maxValue(), const TracingObject *excludedObject=nullptr) const override
Determines whether this tracing object has an intersection with a provided 3D ray.
bool determineDampingColor(const Line3 &ray, RGBAColor &color, const Scalar maximalDistance=Numeric::maxValue()) const override
Determines the amount of light that transmits trough this object in the case e.g.,...
std::vector< const TracingObject * > TracingObjects
Definition of a vector holding tracing objects.
Definition: TracingGroup.h:34
void addObject(const TracingObject *object)
Adds a new tracing object to this group object.
Definition: TracingGroup.h:79
~TracingGroup() override
Destructs this tracking object.
bool determineColor(const Vector3 &viewPosition, const Vector3 &viewObjectDirection, const RayIntersection &intersection, const TracingGroup &group, const unsigned int bounces, const TracingObject *excludedObject, const Lighting::LightingModes lightingModes, RGBAColor &color) const override
Determines the light (the color) for a specified viewing ray this object does reflect.
This class is the abstract base class for all tracing objects.
Definition: TracingObject.h:39
float Scalar
Definition of a scalar type.
Definition: Math.h:128
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15