ray: style
This commit is contained in:
parent
a946b182f9
commit
d0bf00a9ac
16
ray.cpp
16
ray.cpp
@ -18,11 +18,13 @@
|
|||||||
|
|
||||||
#include "debug.hpp"
|
#include "debug.hpp"
|
||||||
|
|
||||||
|
using util::ray;
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
template <size_t S, typename T>
|
template <size_t S, typename T>
|
||||||
util::ray<S,T>::ray (util::point<S,T> _origin,
|
ray<S,T>::ray (util::point<S,T> _origin,
|
||||||
util::vector<S,T> _direction):
|
util::vector<S,T> _direction):
|
||||||
origin (_origin),
|
origin (_origin),
|
||||||
direction (_direction)
|
direction (_direction)
|
||||||
{
|
{
|
||||||
@ -37,7 +39,7 @@ util::ray<S,T>::ray (util::point<S,T> _origin,
|
|||||||
/// returns 0 if corayar
|
/// returns 0 if corayar
|
||||||
template <size_t S, typename T>
|
template <size_t S, typename T>
|
||||||
T
|
T
|
||||||
util::ray<S,T>::intersect (plane<S,T> q) const
|
ray<S,T>::intersect (plane<S,T> q) const
|
||||||
{
|
{
|
||||||
return dot (q.p - origin, q.n) / dot (direction, q.n);
|
return dot (q.p - origin, q.n) / dot (direction, q.n);
|
||||||
}
|
}
|
||||||
@ -50,7 +52,7 @@ util::ray<S,T>::intersect (plane<S,T> q) const
|
|||||||
/// returns NaN if behind
|
/// returns NaN if behind
|
||||||
template <size_t S, typename T>
|
template <size_t S, typename T>
|
||||||
T
|
T
|
||||||
util::ray<S,T>::intersect (AABB<S,T> r) const
|
ray<S,T>::intersect (AABB<S,T> r) const
|
||||||
{
|
{
|
||||||
auto t1 = (r.p0 - origin) / direction;
|
auto t1 = (r.p0 - origin) / direction;
|
||||||
auto t2 = (r.p1 - origin) / direction;
|
auto t2 = (r.p1 - origin) / direction;
|
||||||
@ -80,7 +82,7 @@ util::ray<S,T>::intersect (AABB<S,T> r) const
|
|||||||
/// returns NaN if behind
|
/// returns NaN if behind
|
||||||
template <size_t S, typename T>
|
template <size_t S, typename T>
|
||||||
T
|
T
|
||||||
util::ray<S,T>::intersect (sphere<S,T> s) const
|
ray<S,T>::intersect (sphere<S,T> s) const
|
||||||
{
|
{
|
||||||
T b = dot (direction, origin - s.centre);
|
T b = dot (direction, origin - s.centre);
|
||||||
T c = dot (origin - s.centre, origin - s.centre) - s.radius * s.radius;
|
T c = dot (origin - s.centre, origin - s.centre) - s.radius * s.radius;
|
||||||
@ -103,7 +105,7 @@ util::ray<S,T>::intersect (sphere<S,T> s) const
|
|||||||
/// returns the closest parameter along the ray to a given point
|
/// returns the closest parameter along the ray to a given point
|
||||||
template <size_t S, typename T>
|
template <size_t S, typename T>
|
||||||
T
|
T
|
||||||
util::ray<S,T>::closest (point<S,T> q) const
|
ray<S,T>::closest (point<S,T> q) const
|
||||||
{
|
{
|
||||||
// project the origin-point difference onto the direction
|
// project the origin-point difference onto the direction
|
||||||
return dot (origin - q, direction);
|
return dot (origin - q, direction);
|
||||||
@ -113,7 +115,7 @@ util::ray<S,T>::closest (point<S,T> q) const
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
template <size_t S, typename T>
|
template <size_t S, typename T>
|
||||||
util::point<S,T>
|
util::point<S,T>
|
||||||
util::ray<S,T>::at (T t) const
|
ray<S,T>::at (T t) const
|
||||||
{
|
{
|
||||||
return origin + direction * t;
|
return origin + direction * t;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user