43#ifndef LASS_GUARDIAN_OF_INCLUSION_PRIM_RAY_3D_TRANSFORMATION_3D_H
44#define LASS_GUARDIAN_OF_INCLUSION_PRIM_RAY_3D_TRANSFORMATION_3D_H
57 template <
typename NP>
struct RayParameterRescaler;
60 struct RayParameterRescaler<prim::Unnormalized>
63 template <
typename T,
typename VectorType>
64 static void rescale(T& ,
const VectorType& )
70 struct RayParameterRescaler<prim::Normalized>
74 template <
typename T,
typename VectorType>
75 static void rescale(T& tRay,
const VectorType& unnormalizedNewDirection)
77 tRay *= unnormalizedNewDirection.norm();
87template<
typename T,
class NP,
class PP>
110template<
typename T,
class NP,
class PP>
115 const typename TRay::TPoint support =
transform(subject.
support(), transformation);
116 const typename TRay::TVector direction =
transform(subject.
direction(), transformation);
117 impl::RayParameterRescaler<NP>::rescale(tRay, direction);
const TVector & direction() const
Return direction of ray.
const TPoint & support() const
return origin of ray.
implementation details of lass::prim
set of geometrical primitives
Library for Assembled Shared Sources.