Move Vectormath main
C++20 game and graphics mathematics
Loading...
Searching...
No Matches
LinearQueries.hpp File Reference
#include <cmath>
#include <limits>
#include <optional>
#include <type_traits>
#include <mv/math/geometry/Plane3.hpp>
#include <mv/math/geometry/Ray3.hpp>
#include <mv/math/geometry/Triangle3.hpp>
#include <mv/math/queries/QueryTypes.hpp>

Go to the source code of this file.

Classes

struct  mv::math::RayTriangleOptions< T >
 
struct  mv::math::detail::RayPlaneSolution< T >
 
struct  mv::math::detail::RayTriangleSolution< T >
 

Namespaces

namespace  mv
 
namespace  mv::math
 
namespace  mv::math::detail
 

Typedefs

using mv::math::RayTriangleOptionsf = RayTriangleOptions< float >
 
using mv::math::RayTriangleOptionsd = RayTriangleOptions< double >
 

Enumerations

enum class  mv::math::BackFaceMode { mv::math::Include , mv::math::Cull }
 

Functions

template<typename T >
std::optional< RayPlaneSolution< T > > mv::math::detail::TryIntersectRayPlane (const Ray3< T > &ray, const Plane3< T > &plane, T parallelTolerance) noexcept
 
template<typename T >
std::optional< RayTriangleSolution< T > > mv::math::detail::TryIntersectRayTriangle (const Ray3< T > &ray, const Triangle3< T > &triangle, RayTriangleOptions< T > options) noexcept
 
template<typename T >
std::optional< RayPlaneHit3< T > > mv::math::Intersect (const Ray3< T > &ray, const Plane3< T > &plane, T parallelTolerance=std::numeric_limits< T >::epsilon() *T(8)) noexcept
 
template<typename T >
bool mv::math::Intersects (const Ray3< T > &ray, const Plane3< T > &plane, T parallelTolerance=std::numeric_limits< T >::epsilon() *T(8)) noexcept
 
template<typename T >
std::optional< RayTriangleHit3< T > > mv::math::Intersect (const Ray3< T > &ray, const Triangle3< T > &triangle, RayTriangleOptions< T > options={}) noexcept
 
template<typename T >
bool mv::math::Intersects (const Ray3< T > &ray, const Triangle3< T > &triangle, RayTriangleOptions< T > options={}) noexcept