MeshLib
 
Loading...
Searching...
No Matches
MRImGuiVectorOperators.h File Reference
#include <concepts>
#include <type_traits>
#include <imgui.h>

Go to the source code of this file.

Classes

struct  MR::ImGuiMath::detail::VecSize< T >
 
struct  MR::ImGuiMath::detail::VecSize< ImVec2 >
 
struct  MR::ImGuiMath::detail::VecSize< ImVec4 >
 
struct  MR::ImGuiMath::detail::VecFromSize< N >
 
struct  MR::ImGuiMath::detail::VecFromSize< 2 >
 
struct  MR::ImGuiMath::detail::VecFromSize< 4 >
 
struct  MR::ImGuiMath::detail::CommonVecSize< P >
 
struct  MR::ImGuiMath::detail::CommonVecSize< T, P... >
 
struct  MR::ImGuiMath::BasicVectorCompareHelper< Derived, A, All >
 
struct  MR::ImGuiMath::CompareAll< A >
 
struct  MR::ImGuiMath::CompareAny< A >
 

Namespaces

namespace  MR
 
namespace  MR::ImGuiMath
 
namespace  MR::ImGuiMath::detail
 

Concepts

concept  MR::ImGuiMath::detail::Scalar
 
concept  MR::ImGuiMath::detail::Vector
 
concept  MR::ImGuiMath::detail::VectorOrScalar
 
concept  MR::ImGuiMath::detail::VectorOrScalarMaybeCvref
 
concept  MR::ImGuiMath::detail::ValidOperands
 

Functions

template<detail::VectorOrScalarMaybeCvref T>
constexpr auto && MR::ImGuiMath::getElem (int i, T &&value)
 
template<typename F , typename ... P>
requires detail::ValidOperands<P...>
constexpr auto MR::ImGuiMath::applyElementwise (F &&func, P &&... params) -> typename detail::VecFromSize< detail::CommonVecSize< P... >::value >::type
 
template<typename F , detail::VectorOrScalarMaybeCvref T>
constexpr auto MR::ImGuiMath::reduce (F &&func, T &&value)
 
template<MR::ImGuiMath::detail::Vector A>
constexpr A operator+ (A a)
 
template<MR::ImGuiMath::detail::Vector A>
constexpr A operator- (A a)
 
template<typename A , typename B >
requires MR::ImGuiMath::detail::ValidOperands<A, B>
constexpr auto operator+ (A a, B b)
 
template<typename A , typename B >
requires MR::ImGuiMath::detail::ValidOperands<A, B>
constexpr auto operator- (A a, B b)
 
template<typename A , typename B >
requires MR::ImGuiMath::detail::ValidOperands<A, B>
constexpr auto operator* (A a, B b)
 
template<typename A , typename B >
requires MR::ImGuiMath::detail::ValidOperands<A, B>
constexpr auto operator/ (A a, B b)
 
template<MR::ImGuiMath::detail::Vector A, MR::ImGuiMath::detail::VectorOrScalar B>
constexpr Aoperator+= (A &a, B b)
 
template<MR::ImGuiMath::detail::Vector A, MR::ImGuiMath::detail::VectorOrScalar B>
constexpr Aoperator-= (A &a, B b)
 
template<MR::ImGuiMath::detail::Vector A, MR::ImGuiMath::detail::VectorOrScalar B>
constexpr Aoperator*= (A &a, B b)
 
template<MR::ImGuiMath::detail::Vector A, MR::ImGuiMath::detail::VectorOrScalar B>
constexpr Aoperator/= (A &a, B b)
 
constexpr bool operator== (ImVec2 a, ImVec2 b)
 
constexpr bool operator== (ImVec4 a, ImVec4 b)
 
template<detail::Vector A>
constexpr A MR::ImGuiMath::round (A a)
 
template<detail::Vector A>
constexpr A MR::ImGuiMath::floor (A a)
 
template<detail::Vector A>
constexpr A MR::ImGuiMath::ceil (A a)
 
template<detail::Vector A>
constexpr auto MR::ImGuiMath::dot (A a, A b)
 
template<detail::Vector A>
constexpr auto MR::ImGuiMath::lengthSq (A a)
 
template<detail::Vector A>
constexpr auto MR::ImGuiMath::length (A a)
 
template<detail::Vector A>
constexpr A MR::ImGuiMath::normalize (A a)
 
constexpr ImVec2 MR::ImGuiMath::rot90 (ImVec2 a)
 
template<detail::Vector A, detail::Scalar B>
constexpr A MR::ImGuiMath::mix (B t, A a, A b)
 
template<typename A , typename B >
requires detail::ValidOperands<A, B>
constexpr auto MR::ImGuiMath::min (A a, B b)
 
template<typename A , typename B >
requires detail::ValidOperands<A, B>
constexpr auto MR::ImGuiMath::max (A a, B b)
 
template<detail::Vector T, typename A , typename B >
requires detail::ValidOperands<T, A, B>
constexpr T MR::ImGuiMath::clamp (T value, A a, B b)
 
template<detail::VectorOrScalar A>
 MR::ImGuiMath::CompareAll (A) -> CompareAll< A >
 
template<detail::VectorOrScalar A>
 MR::ImGuiMath::CompareAny (A) -> CompareAny< A >
 

Function Documentation

◆ operator*()

template<typename A , typename B >
requires MR::ImGuiMath::detail::ValidOperands<A, B>
auto operator* ( A a,
B b )
nodiscardconstexpr

◆ operator*=()

A & operator*= ( A & a,
B b )
constexpr

◆ operator+() [1/2]

A operator+ ( A a)
nodiscardconstexpr

◆ operator+() [2/2]

template<typename A , typename B >
requires MR::ImGuiMath::detail::ValidOperands<A, B>
auto operator+ ( A a,
B b )
nodiscardconstexpr

◆ operator+=()

A & operator+= ( A & a,
B b )
constexpr

◆ operator-() [1/2]

A operator- ( A a)
nodiscardconstexpr

◆ operator-() [2/2]

template<typename A , typename B >
requires MR::ImGuiMath::detail::ValidOperands<A, B>
auto operator- ( A a,
B b )
nodiscardconstexpr

◆ operator-=()

A & operator-= ( A & a,
B b )
constexpr

◆ operator/()

template<typename A , typename B >
requires MR::ImGuiMath::detail::ValidOperands<A, B>
auto operator/ ( A a,
B b )
nodiscardconstexpr

◆ operator/=()

A & operator/= ( A & a,
B b )
constexpr

◆ operator==() [1/2]

bool operator== ( ImVec2 a,
ImVec2 b )
nodiscardconstexpr

◆ operator==() [2/2]

bool operator== ( ImVec4 a,
ImVec4 b )
nodiscardconstexpr