|
| template<typename Self > |
| constexpr auto | squaredDistance (this const Self &self, const std::remove_cvref_t< Self > &other) noexcept -> T |
| |
| template<typename Self > |
| constexpr auto | distance (this const Self &self, const std::remove_cvref_t< Self > &other) noexcept -> RealT |
| |
| template<typename Self > |
| constexpr auto | squaredLength (this const Self &self) noexcept -> T |
| |
| template<typename Self > |
| constexpr auto | length (this const Self &self) noexcept -> RealT |
| |
template<typename Self >
requires std::floating_point<T> |
| constexpr auto | normalize (this Self &self) noexcept -> Self & |
| |
template<typename Self >
requires std::floating_point<T> |
| constexpr auto | normalized (this const Self &self) noexcept -> std::remove_cvref_t< Self > |
| |
| template<typename Self > |
| constexpr auto | dot (this const Self &self, const std::remove_cvref_t< Self > &other) noexcept -> T |
| |
template<typename Self >
requires std::floating_point<T> |
| constexpr auto | project (this const Self &self, const std::remove_cvref_t< Self > &other) noexcept -> std::remove_cvref_t< Self > |
| |
| template<typename Self > |
| constexpr auto & | operator+= (this Self &self, const std::remove_cvref_t< Self > &other) noexcept |
| |
| template<typename Self > |
| constexpr auto & | operator-= (this Self &self, const std::remove_cvref_t< Self > &other) noexcept |
| |
| template<typename Self > |
| constexpr auto & | operator*= (this Self &self, const std::remove_cvref_t< Self > &other) noexcept |
| |
| template<typename Self > |
| constexpr auto & | operator/= (this Self &self, const std::remove_cvref_t< Self > &other) noexcept |
| |
| template<typename Self > |
| constexpr auto & | operator+= (this Self &self, T scalar) noexcept |
| |
| template<typename Self > |
| constexpr auto & | operator-= (this Self &self, T scalar) noexcept |
| |
| template<typename Self > |
| constexpr auto & | operator*= (this Self &self, T scalar) noexcept |
| |
| template<typename Self > |
| constexpr auto & | operator/= (this Self &self, T scalar) noexcept |
| |
|
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator+ (ConcreteVec lhs, const ConcreteVec &rhs) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator- (ConcreteVec lhs, const ConcreteVec &rhs) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator* (ConcreteVec lhs, const ConcreteVec &rhs) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator/ (ConcreteVec lhs, const ConcreteVec &rhs) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator+ (ConcreteVec lhs, T scalar) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator- (ConcreteVec lhs, T scalar) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator* (ConcreteVec lhs, T scalar) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator/ (ConcreteVec lhs, T scalar) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator+ (T scalar, ConcreteVec rhs) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator* (T scalar, ConcreteVec rhs) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator- (T scalar, ConcreteVec rhs) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator/ (T scalar, const ConcreteVec &rhs) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| constexpr auto | operator- (ConcreteVec lhs) noexcept -> ConcreteVec |
| |
template<typename ConcreteVec >
requires std::derived_from<ConcreteVec, VecBase> |
| std::ostream & | operator<< (std::ostream &os, const ConcreteVec &v) |
| |
template<Numeric T, std::size_t N>
struct rtp::details::VecBase< T, N >
CRTP base class for vectors.
- Template Parameters
-
| T | Numeric type of the vector components |
| N | Dimension of the vector |
Provides common functionality for vectors of various dimensions using the Curiously Recurring Template Pattern (CRTP). Enables code reuse and static polymorphism for vector operations.
Definition at line 60 of file VecBase.hpp.