jaulib v1.3.8
Jau Support Library (C++, Java, ..)
Loading...
Searching...
No Matches
jau::math::Vector2F< Value_type, > Class Template Reference

2D vector using two value_type components. More...

#include <vec2f.hpp>

Inheritance diagram for jau::math::Vector2F< Value_type, >:
Collaboration diagram for jau::math::Vector2F< Value_type, >:

Public Types

typedef const value_typeconst_iterator
 
typedef const value_typeconst_pointer
 
typedef const value_typeconst_reference
 
typedef value_typeiterator
 
typedef value_typepointer
 
typedef value_typereference
 
typedef Value_type value_type
 

Public Member Functions

constexpr Vector2F () noexcept
 
constexpr Vector2F (const value_type v) noexcept
 
constexpr Vector2F (const value_type x_, const value_type y_) noexcept
 
constexpr Vector2F (const Vector2F &o) noexcept=default
 
constexpr Vector2F (Vector2F &&o) noexcept=default
 
constexpr Vector2Fadd (const value_type dx, const value_type dy) noexcept
 this = this + {dx, dy}, component wise.
 
constexpr Vector2Fadd (const Vector2F &d) noexcept
 this = this + {d.x, d.y}, component wise.
 
constexpr_cxx26 value_type angle () const noexcept
 Return the direction angle of this vector in radians.
 
constexpr_cxx26 value_type angle (const Vector2F &o) const noexcept
 Return the angle between two vectors in radians.
 
constexpr iterator begin () noexcept
 
constexpr const_iterator cbegin () const noexcept
 
constexpr Vector2F copy () noexcept
 
constexpr value_type cos_angle (const Vector2F &o) const noexcept
 Return the cosines of the angle between two vectors.
 
constexpr value_type cross (const Vector2F &o) const noexcept
 Returns cross product of this vectors and the given one, i.e.
 
constexpr value_type dist (const Vector2F &o) const noexcept
 Return the distance between this vector and the given one.
 
constexpr value_type dist_sq (const Vector2F &o) const noexcept
 Return the squared distance between this vector and the given one.
 
constexpr value_type dot (const Vector2F &o) const noexcept
 Return the dot product of this vector and the given one.
 
constexpr iterator get (iterator xy) const noexcept
 xy = this, returns xy.
 
constexpr_cxx23 bool intersects (const Vector2F &o) const noexcept
 
constexpr bool is_zero () const noexcept
 
constexpr value_type length () const noexcept
 Return the length of this vector, a.k.a the norm or magnitude
 
constexpr value_type length_sq () const noexcept
 Return the squared length of this vector, a.k.a the squared norm or squared magnitude
 
constexpr Vector2Fmul (const value_type sx, const value_type sy) noexcept
 this = this * {sx, sy}, component wise.
 
constexpr Vector2Fmul (const Vector2F &s) noexcept
 this = this * {s.x, s.y}, component wise.
 
constexpr Vector2F normal_ccw () const noexcept
 Return the counter-clock-wise (CCW) normal of this vector, i.e.
 
constexpr Vector2Fnormalize () noexcept
 Normalize this vector in place, returns *this.
 
 operator const_pointer () const noexcept
 
 operator pointer () noexcept
 
constexpr Vector2Foperator*= (const value_type s) noexcept
 this = this * s, component wise.
 
constexpr Vector2Foperator*= (const Vector2F &s) noexcept
 this = this * {s.x, s.y}, component wise.
 
constexpr Vector2Foperator+= (const Vector2F &rhs) noexcept
 this = this + rhs, component wise.
 
constexpr Vector2Foperator-= (const Vector2F &rhs) noexcept
 this = this - rhs, component wise.
 
constexpr Vector2Foperator/= (const value_type s) noexcept
 this = this / s, component wise.
 
constexpr Vector2Foperator/= (const Vector2F &s) noexcept
 this = this / {s.x, s.y}, component wise.
 
constexpr Vector2Foperator= (const Vector2F &) noexcept=default
 
constexpr Vector2Foperator= (Vector2F &&) noexcept=default
 
constexpr bool operator== (const Vector2F &rhs) const noexcept
 
constexpr value_type operator[] (size_t i) const noexcept
 Returns read-only component.
 
constexpr reference operator[] (size_t i) noexcept
 Returns writeable reference to component.
 
constexpr_cxx26 Vector2Frotate (const value_type radians) noexcept
 Rotates this vector in place, returns *this.
 
constexpr_cxx26 Vector2Frotate (const value_type radians, const Vector2F &ctr) noexcept
 Rotates this vector in place, returns *this.
 
constexpr Vector2Frotate (const value_type sin, const value_type cos) noexcept
 Rotates this vector in place, returns *this.
 
constexpr Vector2Frotate (const value_type sin, const value_type cos, const Vector2F &ctr) noexcept
 Rotates this vector in place, returns *this.
 
constexpr Vector2Fscale (const value_type s) noexcept
 this = this * s, component wise.
 
constexpr Vector2Fset (const value_type vx, const value_type vy) noexcept
 TODO constexpr std::strong_ordering operator<=>(const vec2f_t& rhs) const noexcept { return ... }.
 
constexpr Vector2Fset (const_iterator xy) noexcept
 this = xy, returns this.
 
std::string toString () const noexcept
 

Static Public Member Functions

static constexpr_cxx26 Vector2F from_length_angle (const value_type magnitude, const value_type radians) noexcept
 

Public Attributes

value_type x
 
value_type y
 

Static Public Attributes

static constexpr const size_t byte_size = components * sizeof(value_type)
 Size in bytes with value_alignment.
 
static constexpr const size_t components = 2
 Number of value_type components.
 
static constexpr const value_type one = value_type(1)
 
static constexpr int value_alignment = sizeof(value_type)
 value alignment is sizeof(value_type)
 
static constexpr const value_type zero = value_type(0)
 

Detailed Description

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
class jau::math::Vector2F< Value_type, >

2D vector using two value_type components.

Component and overall alignment is natural as sizeof(value_type), i.e. sizeof(value_type) == alignof(value_type)

Definition at line 41 of file vec2f.hpp.

Member Typedef Documentation

◆ value_type

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
typedef Value_type jau::math::Vector2F< Value_type, >::value_type

Definition at line 43 of file vec2f.hpp.

◆ pointer

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
typedef value_type* jau::math::Vector2F< Value_type, >::pointer

Definition at line 44 of file vec2f.hpp.

◆ const_pointer

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
typedef const value_type* jau::math::Vector2F< Value_type, >::const_pointer

Definition at line 45 of file vec2f.hpp.

◆ reference

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
typedef value_type& jau::math::Vector2F< Value_type, >::reference

Definition at line 46 of file vec2f.hpp.

◆ const_reference

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
typedef const value_type& jau::math::Vector2F< Value_type, >::const_reference

Definition at line 47 of file vec2f.hpp.

◆ iterator

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
typedef value_type* jau::math::Vector2F< Value_type, >::iterator

Definition at line 48 of file vec2f.hpp.

◆ const_iterator

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
typedef const value_type* jau::math::Vector2F< Value_type, >::const_iterator

Definition at line 49 of file vec2f.hpp.

Constructor & Destructor Documentation

◆ Vector2F() [1/5]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
jau::math::Vector2F< Value_type, >::Vector2F ( )
inlineconstexprnoexcept

Definition at line 70 of file vec2f.hpp.

Here is the caller graph for this function:

◆ Vector2F() [2/5]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
jau::math::Vector2F< Value_type, >::Vector2F ( const value_type v)
inlineconstexprnoexcept

Definition at line 73 of file vec2f.hpp.

◆ Vector2F() [3/5]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
jau::math::Vector2F< Value_type, >::Vector2F ( const value_type x_,
const value_type y_ )
inlineconstexprnoexcept

Definition at line 76 of file vec2f.hpp.

◆ Vector2F() [4/5]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
jau::math::Vector2F< Value_type, >::Vector2F ( const Vector2F< Value_type, > & o)
constexprdefaultnoexcept

◆ Vector2F() [5/5]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
jau::math::Vector2F< Value_type, >::Vector2F ( Vector2F< Value_type, > && o)
constexprdefaultnoexcept

Member Function Documentation

◆ from_length_angle()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
static constexpr_cxx26 Vector2F jau::math::Vector2F< Value_type, >::from_length_angle ( const value_type magnitude,
const value_type radians )
inlinestaticnoexcept

Definition at line 66 of file vec2f.hpp.

◆ operator=() [1/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::operator= ( const Vector2F< Value_type, > & )
constexprdefaultnoexcept

◆ operator=() [2/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::operator= ( Vector2F< Value_type, > && )
constexprdefaultnoexcept

◆ copy()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F jau::math::Vector2F< Value_type, >::copy ( )
inlineconstexprnoexcept

Definition at line 84 of file vec2f.hpp.

◆ operator[]() [1/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::operator[] ( size_t i) const
inlineconstexprnoexcept

Returns read-only component.

Definition at line 87 of file vec2f.hpp.

◆ operator const_pointer()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
jau::math::Vector2F< Value_type, >::operator const_pointer ( ) const
inlineexplicitnoexcept

Definition at line 92 of file vec2f.hpp.

◆ cbegin()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
const_iterator jau::math::Vector2F< Value_type, >::cbegin ( ) const
inlineconstexprnoexcept

Definition at line 93 of file vec2f.hpp.

◆ operator[]() [2/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
reference jau::math::Vector2F< Value_type, >::operator[] ( size_t i)
inlineconstexprnoexcept

Returns writeable reference to component.

Definition at line 96 of file vec2f.hpp.

◆ operator pointer()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
jau::math::Vector2F< Value_type, >::operator pointer ( )
inlineexplicitnoexcept

Definition at line 101 of file vec2f.hpp.

◆ begin()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
iterator jau::math::Vector2F< Value_type, >::begin ( )
inlineconstexprnoexcept

Definition at line 102 of file vec2f.hpp.

◆ get()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
iterator jau::math::Vector2F< Value_type, >::get ( iterator xy) const
inlineconstexprnoexcept

xy = this, returns xy.

Definition at line 105 of file vec2f.hpp.

◆ operator==()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
bool jau::math::Vector2F< Value_type, >::operator== ( const Vector2F< Value_type, > & rhs) const
inlineconstexprnoexcept

Definition at line 111 of file vec2f.hpp.

◆ set() [1/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::set ( const value_type vx,
const value_type vy )
inlineconstexprnoexcept

TODO constexpr std::strong_ordering operator<=>(const vec2f_t& rhs) const noexcept { return ... }.

Definition at line 122 of file vec2f.hpp.

◆ set() [2/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::set ( const_iterator xy)
inlineconstexprnoexcept

this = xy, returns this.

Definition at line 126 of file vec2f.hpp.

◆ add() [1/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::add ( const Vector2F< Value_type, > & d)
inlineconstexprnoexcept

this = this + {d.x, d.y}, component wise.

Returns this.

Definition at line 130 of file vec2f.hpp.

◆ add() [2/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::add ( const value_type dx,
const value_type dy )
inlineconstexprnoexcept

this = this + {dx, dy}, component wise.

Returns this.

Definition at line 134 of file vec2f.hpp.

◆ mul() [1/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::mul ( const Vector2F< Value_type, > & s)
inlineconstexprnoexcept

this = this * {s.x, s.y}, component wise.

Returns this.

Definition at line 138 of file vec2f.hpp.

◆ mul() [2/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::mul ( const value_type sx,
const value_type sy )
inlineconstexprnoexcept

this = this * {sx, sy}, component wise.

Returns this.

Definition at line 142 of file vec2f.hpp.

◆ scale()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::scale ( const value_type s)
inlineconstexprnoexcept

this = this * s, component wise.

Returns this.

Definition at line 146 of file vec2f.hpp.

◆ operator+=()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::operator+= ( const Vector2F< Value_type, > & rhs)
inlineconstexprnoexcept

this = this + rhs, component wise.

Returns this.

Definition at line 150 of file vec2f.hpp.

◆ operator-=()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::operator-= ( const Vector2F< Value_type, > & rhs)
inlineconstexprnoexcept

this = this - rhs, component wise.

Returns this.

Definition at line 156 of file vec2f.hpp.

◆ operator*=() [1/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::operator*= ( const Vector2F< Value_type, > & s)
inlineconstexprnoexcept

this = this * {s.x, s.y}, component wise.

Parameters
sscale factor
Returns
this instance

Definition at line 166 of file vec2f.hpp.

◆ operator/=() [1/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::operator/= ( const Vector2F< Value_type, > & s)
inlineconstexprnoexcept

this = this / {s.x, s.y}, component wise.

Parameters
sscale factor
Returns
this instance

Definition at line 175 of file vec2f.hpp.

◆ operator*=() [2/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::operator*= ( const value_type s)
inlineconstexprnoexcept

this = this * s, component wise.

Parameters
sscale factor
Returns
this instance

Definition at line 185 of file vec2f.hpp.

◆ operator/=() [2/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::operator/= ( const value_type s)
inlineconstexprnoexcept

this = this / s, component wise.

Parameters
sscale factor
Returns
this instance

Definition at line 195 of file vec2f.hpp.

◆ rotate() [1/4]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
constexpr_cxx26 Vector2F & jau::math::Vector2F< Value_type, >::rotate ( const value_type radians,
const Vector2F< Value_type, > & ctr )
inlinenoexcept

Rotates this vector in place, returns *this.

Definition at line 201 of file vec2f.hpp.

Here is the caller graph for this function:

◆ rotate() [2/4]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::rotate ( const value_type sin,
const value_type cos,
const Vector2F< Value_type, > & ctr )
inlineconstexprnoexcept

Rotates this vector in place, returns *this.

Definition at line 206 of file vec2f.hpp.

◆ rotate() [3/4]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
constexpr_cxx26 Vector2F & jau::math::Vector2F< Value_type, >::rotate ( const value_type radians)
inlinenoexcept

Rotates this vector in place, returns *this.

Definition at line 215 of file vec2f.hpp.

◆ rotate() [4/4]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::rotate ( const value_type sin,
const value_type cos )
inlineconstexprnoexcept

Rotates this vector in place, returns *this.

Definition at line 220 of file vec2f.hpp.

◆ toString()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
std::string jau::math::Vector2F< Value_type, >::toString ( ) const
inlinenoexcept

Definition at line 227 of file vec2f.hpp.

◆ is_zero()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
bool jau::math::Vector2F< Value_type, >::is_zero ( ) const
inlineconstexprnoexcept

Definition at line 229 of file vec2f.hpp.

◆ length_sq()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::length_sq ( ) const
inlineconstexprnoexcept

Return the squared length of this vector, a.k.a the squared norm or squared magnitude

Definition at line 236 of file vec2f.hpp.

Here is the caller graph for this function:

◆ length()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::length ( ) const
inlineconstexprnoexcept

Return the length of this vector, a.k.a the norm or magnitude

Definition at line 243 of file vec2f.hpp.

Here is the caller graph for this function:

◆ normalize()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F & jau::math::Vector2F< Value_type, >::normalize ( )
inlineconstexprnoexcept

Normalize this vector in place, returns *this.

Definition at line 248 of file vec2f.hpp.

◆ angle() [1/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
constexpr_cxx26 value_type jau::math::Vector2F< Value_type, >::angle ( ) const
inlinenoexcept

Return the direction angle of this vector in radians.

Definition at line 264 of file vec2f.hpp.

Here is the caller graph for this function:

◆ dist_sq()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::dist_sq ( const Vector2F< Value_type, > & o) const
inlineconstexprnoexcept

Return the squared distance between this vector and the given one.

When comparing the relative distance between two points it is usually sufficient to compare the squared distances, thus avoiding an expensive square root operation.

Definition at line 276 of file vec2f.hpp.

Here is the caller graph for this function:

◆ dist()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::dist ( const Vector2F< Value_type, > & o) const
inlineconstexprnoexcept

Return the distance between this vector and the given one.

Definition at line 285 of file vec2f.hpp.

◆ dot()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::dot ( const Vector2F< Value_type, > & o) const
inlineconstexprnoexcept

Return the dot product of this vector and the given one.

Returns
the dot product as value_type

Definition at line 293 of file vec2f.hpp.

Here is the caller graph for this function:

◆ cross()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::cross ( const Vector2F< Value_type, > & o) const
inlineconstexprnoexcept

Returns cross product of this vectors and the given one, i.e.

*this x o.

The 2D cross product is identical with the 2D perp dot product.

Returns
the resulting scalar

Definition at line 304 of file vec2f.hpp.

◆ cos_angle()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::cos_angle ( const Vector2F< Value_type, > & o) const
inlineconstexprnoexcept

Return the cosines of the angle between two vectors.

Definition at line 311 of file vec2f.hpp.

Here is the caller graph for this function:

◆ angle() [2/2]

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
constexpr_cxx26 value_type jau::math::Vector2F< Value_type, >::angle ( const Vector2F< Value_type, > & o) const
inlinenoexcept

Return the angle between two vectors in radians.

Definition at line 318 of file vec2f.hpp.

◆ normal_ccw()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
Vector2F jau::math::Vector2F< Value_type, >::normal_ccw ( ) const
inlineconstexprnoexcept

Return the counter-clock-wise (CCW) normal of this vector, i.e.

perp(endicular) vector

Definition at line 325 of file vec2f.hpp.

◆ intersects()

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
constexpr_cxx23 bool jau::math::Vector2F< Value_type, >::intersects ( const Vector2F< Value_type, > & o) const
inlinenoexcept

Definition at line 329 of file vec2f.hpp.

Member Data Documentation

◆ value_alignment

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
int jau::math::Vector2F< Value_type, >::value_alignment = sizeof(value_type)
staticconstexpr

value alignment is sizeof(value_type)

Definition at line 52 of file vec2f.hpp.

◆ components

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
const size_t jau::math::Vector2F< Value_type, >::components = 2
staticconstexpr

Number of value_type components.

Definition at line 55 of file vec2f.hpp.

◆ byte_size

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
const size_t jau::math::Vector2F< Value_type, >::byte_size = components * sizeof(value_type)
staticconstexpr

Size in bytes with value_alignment.

Definition at line 58 of file vec2f.hpp.

◆ zero

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
const value_type jau::math::Vector2F< Value_type, >::zero = value_type(0)
staticconstexpr

Definition at line 60 of file vec2f.hpp.

◆ one

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
const value_type jau::math::Vector2F< Value_type, >::one = value_type(1)
staticconstexpr

Definition at line 61 of file vec2f.hpp.

◆ x

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::x

Definition at line 63 of file vec2f.hpp.

◆ y

template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type > &&sizeof(Value_type)==alignof(Value_type), bool > = true>
value_type jau::math::Vector2F< Value_type, >::y

Definition at line 64 of file vec2f.hpp.


The documentation for this class was generated from the following file: