9#include <Common/assertion.h>
11namespace ph::math {
class RigidTransform; }
33 m_worldToLocal->
transform(ray, &localRay);
40 m_worldToLocal->
transform(ray, &localRay);
61 Ray localRay, localSrcRay;
62 m_worldToLocal->
transform(ray, &localRay);
63 m_worldToLocal->
transform(srcRay, &localSrcRay);
78 HitDetail*
const out_detail)
const override
86 m_worldToLocal->
transform(ray, &localRay);
94 *out_detail = localDetail;
Detailed information regarding a ray-primitive intersection.
Definition HitDetail.h:26
uint64 getFaceID() const
Get the face ID associated to the hit.
Definition HitDetail.h:153
math::Vector3R getUVW() const
Definition HitDetail.h:168
void setDistanceErrorFactors(real meanFactor, real maxFactor)
Definition HitDetail.h:192
std::pair< real, real > getDistanceErrorFactors() const
Definition HitDetail.h:185
real getRayT() const
Get the parametric distance from the incident ray's origin. Notice that parametric distance is not or...
Definition HitDetail.h:148
FaceTopology getFaceTopology() const
Definition HitDetail.h:158
HitDetail & setHitIntrinsics(const Primitive *primitive, const math::Vector3R &uvw, real rayT, uint64 faceID=NO_FACE_ID, FaceTopology faceTopology=FaceTopology(EFaceTopology::General))
Set essential attributes that are independent to the coordinate system.
Definition HitDetail.cpp:23
const HitInfo & getHitInfo(ECoordSys coordSys=ECoordSys::World) const
Definition HitDetail.h:173
Lightweight ray intersection testing and reporting object. If an intersection is found,...
Definition HitProbe.h:27
const Intersectable * getTopHit() const
Definition HitProbe.h:154
void popHit()
Removes the most recent hit target from the stack.
Definition HitProbe.h:127
void pushIntermediateHit(const Intersectable *hitTarget)
Adds a hit target that will participate in hit detail's calculation to the stack.
Definition HitProbe.h:112
virtual bool reintersect(const Ray &ray, HitProbe &probe, const Ray &srcRay, HitProbe &srcProbe) const =0
Intersect the intersected object again with a different ray.
virtual bool isOccluding(const Ray &ray) const
Determines whether this object blocks the ray.
Definition Intersectable.cpp:8
virtual void calcHitDetail(const Ray &ray, HitProbe &probe, HitDetail *out_detail) const =0
Calculates properties of a hit, such as coordinates and normal.
A physical shape in the scene.
Definition Primitive.h:23
virtual real calcExtendedArea() const
Calculates the area extended by this primitive. The term "extended" implies single-sided,...
Definition Primitive.h:69
virtual const PrimitiveMetadata * getMetadata() const
Definition Primitive.h:74
bool isIntersecting(const Ray &ray, HitProbe &probe) const override=0
Determine whether a given ray hits the object.
Information for the probability of generating a specific sample point on a primitive.
Definition PrimitivePosPdfQuery.h:91
Information for generating a sample point on a primitive.
Definition PrimitivePosSampleQuery.h:132
Represents a ray in space.
Definition Ray.h:21
A sample with arbitrary dimensions with fine-grained sampling control.
Definition SampleFlow.h:19
Math functions and utilities.
Definition TransformInfo.h:10
The root for all renderer implementations.
Definition EEngineProject.h:6