8 #ifndef META_OCEAN_RENDERING_GI_RAY_INTERSECTION_H
9 #define META_OCEAN_RENDERING_GI_RAY_INTERSECTION_H
25 namespace GlobalIllumination
32 class RayIntersection;
117 explicit inline operator bool()
const;
144 intersectionPosition(0, 0, 0),
145 intersectionDirection(0, 0, 0),
146 intersectionNormal(0, 0, 0),
147 intersectionTextureCoordinate(0, 0),
148 intersectionDistance(
Numeric::maxValue()),
149 intersectionTracingObject(nullptr)
155 intersectionPosition(position),
156 intersectionDirection(direction),
157 intersectionNormal(normal),
158 intersectionTextureCoordinate(textureCoordinate),
159 intersectionDistance(distance),
160 intersectionTracingObject(tracingObject),
161 intersectionLightSources(lightSources)
208 inline RayIntersection::operator bool()
const
This class provides basic numeric functionalities.
Definition: Numeric.h:57
static bool isEqual(const T first, const T second)
Returns whether two values are equal up to a small epsilon.
Definition: Numeric.h:2386
static constexpr T maxValue()
Returns the max scalar value.
Definition: Numeric.h:3244
This class implements a ray intersection object.
Definition: RayIntersection.h:44
const Normal & normal() const
Returns the normal.
Definition: RayIntersection.h:177
bool operator<(const RayIntersection &intersection) const
Compares two objects.
Definition: RayIntersection.h:203
TextureCoordinate intersectionTextureCoordinate
Intersection texture coordinate.
Definition: RayIntersection.h:131
const TracingObject * intersectionTracingObject
Renderable object.
Definition: RayIntersection.h:137
const Vector3 & position() const
Returns the intersection position.
Definition: RayIntersection.h:167
const Vector3 & direction() const
Returns the intersection direction.
Definition: RayIntersection.h:172
Normal intersectionNormal
Intersection normal.
Definition: RayIntersection.h:128
const LightSources & lightSources() const
Returns the light sources.
Definition: RayIntersection.h:198
const TextureCoordinate & textureCoordinate() const
Returns the intersection texture coordinate.
Definition: RayIntersection.h:182
Scalar intersectionDistance
Intersection distance.
Definition: RayIntersection.h:134
const TracingObject * tracingObject() const
Returns the renderable object.
Definition: RayIntersection.h:192
LightSources intersectionLightSources
Light sources.
Definition: RayIntersection.h:140
Vector3 intersectionDirection
Intersection direction.
Definition: RayIntersection.h:125
Scalar distance() const
Returns the distance.
Definition: RayIntersection.h:187
Vector3 intersectionPosition
Intersection position.
Definition: RayIntersection.h:122
RayIntersection()
Creates an empty ray intersection object.
Definition: RayIntersection.h:143
This class is the abstract base class for all tracing objects.
Definition: TracingObject.h:39
T length() const
Returns the length of the vector.
Definition: Vector3.h:664
float Scalar
Definition of a scalar type.
Definition: Math.h:128
std::vector< LightPair > LightSources
Definition of a vector holding light pairs.
Definition: GILightSource.h:40
std::vector< RayIntersection > RayIntersections
Definition of a vector holding ray intersection objects.
Definition: RayIntersection.h:32
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15