Public Member Functions | |
RayHit3D (MicroTick inTime=kInvalidTime) | |
void | Reset () |
void | CalcInfo (ShadingFlags &shadingFlags, boolean calcDerivatives, const Ray3D &ray) |
Public Attributes | |
real64 | ft |
t parameter along the ray: fPosition = RayOrigin + t * RayDirection | |
TVector3 | fReflectDir |
direction of reflection of the ray | |
TTransform3D | fT |
TTransform3D | fInvT |
TMatrix33 | fNormalDerivative |
derivative of the normal depending on the position in local coordinates | |
TVector3 | fUVDerivative [2] |
derivative of the UV depending on the position in local coordinates | |
MicroTick | fTime |
local time in microticks of the object hit, in most case should not be modified | |
FacetInfo * | fFacetInfo |
private data of the raytracer ( used in fCalcInfo ) | |
real | fBaryCoord [3] |
barycentric coordinates of hit point on hot facet | |
int32 | fFacetIndex |
facet hit (index in facetMesh with best Level Of Detail) | |
FacetMesh * | fFacetMesh |
pointer to the facet mesh | |
TVector3 | fEdgeSize |
A vector representing the longest edge of the face in local coordinates. | |
int32 | fInstanceIndex |
index of the instance in the instance grid list (used to identify instance to avoid self shadowing effects) | |
int32 | fSubInstanceIndex |
index used in the by some some raytracable primitives to identify a sub instance (example: a leaf in a tree) | |
void(* | fCalcInfo )(RayHit3D &me) |
function called by the renderer to finish filling this structure after a hit | |
TCalcInfoParams * | fCalcInfoParam |
a structure the primitive can initialize in rayHit and use in calcinfo | |
boolean | fShouldSetUV |
true if fUV should be set | |
boolean | fShouldSetIsoUV |
true if fIsoU and fIsoV should be set | |
boolean | fShouldSetNormalDerivative |
true if fNormalDerivate should be set ( we only need it for reflection and transparency...) | |
boolean | fNormalFlipped |
true if the normal has been flipped to face the incoming ray |
Stores the information about the intersection of a ray and an object
RayHit3D::RayHit3D | ( | MicroTick | inTime = kInvalidTime |
) | [inline] |
void RayHit3D::CalcInfo | ( | ShadingFlags & | shadingFlags, | |
boolean | calcDerivatives, | |||
const Ray3D & | ray | |||
) |
void RayHit3D::Reset | ( | ) | [inline] |
barycentric coordinates of hit point on hot facet
void(* RayHit3D::fCalcInfo)(RayHit3D &me) |
function called by the renderer to finish filling this structure after a hit
a structure the primitive can initialize in rayHit and use in calcinfo
A vector representing the longest edge of the face in local coordinates.
int32 RayHit3D::fFacetIndex |
facet hit (index in facetMesh with best Level Of Detail)
FacetInfo* RayHit3D::fFacetInfo |
private data of the raytracer ( used in fCalcInfo )
pointer to the facet mesh
int32 RayHit3D::fInstanceIndex |
index of the instance in the instance grid list (used to identify instance to avoid self shadowing effects)
derivative of the normal depending on the position in local coordinates
true if the normal has been flipped to face the incoming ray
direction of reflection of the ray
true if fIsoU and fIsoV should be set
true if fNormalDerivate should be set ( we only need it for reflection and transparency...)
true if fUV should be set
index used in the by some some raytracable primitives to identify a sub instance (example: a leaf in a tree)
t parameter along the ray: fPosition = RayOrigin + t * RayDirection
local time in microticks of the object hit, in most case should not be modified
derivative of the UV depending on the position in local coordinates