EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
EBGeometry_Vec.hpp File Reference

Declaration of 2D and 3D point/vector classes with templated precision. Used with DCEL tools. More...

#include <algorithm>
#include <array>
#include <cstddef>
#include <limits>
#include <ostream>
#include <type_traits>
#include "EBGeometry_Macros.hpp"
#include "EBGeometry_VecImplem.hpp"
Include dependency graph for EBGeometry_Vec.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  EBGeometry::Vec2T< T >
 Two-dimensional vector class with arithmetic operators. More...
 
class  EBGeometry::Vec3T< T >
 Three-dimensional vector class with arithmetic operators. More...
 

Namespaces

namespace  EBGeometry
 Namespace containing all of EBGeometry's functionality.
 

Functions

template<typename T >
constexpr Vec2T< T > EBGeometry::operator* (const T &s, const Vec2T< T > &a_other) noexcept
 Scalar-left multiplication: s * vec.
 
template<typename T >
constexpr Vec2T< T > EBGeometry::operator/ (const T &s, const Vec2T< T > &a_other) noexcept
 Component-wise scalar-left division: s / vec.
 
template<typename T >
Vec2T< T > EBGeometry::min (const Vec2T< T > &u, const Vec2T< T > &v) noexcept
 Component-wise minimum of two vectors.
 
template<typename T >
Vec2T< T > EBGeometry::max (const Vec2T< T > &u, const Vec2T< T > &v) noexcept
 Component-wise maximum of two vectors.
 
template<typename T >
EBGeometry::dot (const Vec2T< T > &u, const Vec2T< T > &v) noexcept
 Dot product of two 2D vectors.
 
template<typename T >
EBGeometry::length (const Vec2T< T > &v) noexcept
 Euclidean length of a 2D vector.
 
template<class R , typename T >
constexpr Vec3T< T > EBGeometry::operator* (const R &s, const Vec3T< T > &u) noexcept
 Scalar-left multiplication: s * vec.
 
template<typename T >
constexpr Vec3T< T > EBGeometry::operator* (const Vec3T< T > &u, const Vec3T< T > &v) noexcept
 Component-wise multiplication of two vectors.
 
template<class R , typename T >
constexpr Vec3T< T > EBGeometry::operator/ (const R &s, const Vec3T< T > &u) noexcept
 Component-wise scalar-left division: s / vec.
 
template<typename T >
constexpr Vec3T< T > EBGeometry::min (const Vec3T< T > &u, const Vec3T< T > &v) noexcept
 Component-wise minimum of two 3D vectors.
 
template<typename T >
constexpr Vec3T< T > EBGeometry::max (const Vec3T< T > &u, const Vec3T< T > &v) noexcept
 Component-wise maximum of two 3D vectors.
 
template<typename T >
constexpr Vec3T< T > EBGeometry::clamp (const Vec3T< T > &v, const Vec3T< T > &lo, const Vec3T< T > &hi) noexcept
 Component-wise clamp of a 3D vector.
 
template<typename T >
constexprEBGeometry::dot (const Vec3T< T > &u, const Vec3T< T > &v) noexcept
 Dot product of two 3D vectors.
 
template<typename T >
constexpr Vec3T< T > EBGeometry::cross (const Vec3T< T > &u, const Vec3T< T > &v) noexcept
 Cross product of two 3D vectors.
 
template<typename T >
constexprEBGeometry::length (const Vec3T< T > &v) noexcept
 Euclidean length of a 3D vector.
 

Detailed Description

Declaration of 2D and 3D point/vector classes with templated precision. Used with DCEL tools.

Author
Robert Marskar