Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::Math::SegmentSimd< T, N > Struct Template Reference

#include <Segment.h>

Collaboration diagram for Harlinn::Math::SegmentSimd< T, N >:
[legend]

Classes

class  PointDistanceResult
 

Public Types

using Point = typename Math::Point<T, N>::Simd
 
using Vector = Math::Vector<T, N>::Simd
 
using ArrayType = Point::ArrayType
 
using Segment = Math::Segment<T, N>
 
using value_type = T
 

Public Member Functions

 SegmentSimd () noexcept
 
 SegmentSimd (const std::array< Point, 2 > &pts) noexcept
 
 SegmentSimd (const Point &p1, const Point &p2) noexcept
 
 SegmentSimd (const Segment &segment) noexcept
 
void Assign (const Point &center, const Vector &direction, value_type extent) noexcept
 
void Extract (Point &center, Vector &direction, value_type &extent) const noexcept
 
PointDistanceResult Distance (const Point &point) const noexcept
 Retrieves the closest point and distance from point to the segment.
 

Public Attributes

std::array< Point, 2 > points
 

Static Public Attributes

static constexpr value_type Zero = static_cast< value_type >( 0 )
 
static constexpr value_type One = static_cast< value_type >( 1 )
 
static constexpr value_type Half = static_cast< value_type >( .5 )
 

Member Typedef Documentation

◆ ArrayType

template<FloatingPointType T, size_t N>
using Harlinn::Math::SegmentSimd< T, N >::ArrayType = Point::ArrayType

◆ Point

template<FloatingPointType T, size_t N>
using Harlinn::Math::SegmentSimd< T, N >::Point = typename Math::Point<T, N>::Simd

◆ Segment

template<FloatingPointType T, size_t N>
using Harlinn::Math::SegmentSimd< T, N >::Segment = Math::Segment<T, N>

◆ value_type

template<FloatingPointType T, size_t N>
using Harlinn::Math::SegmentSimd< T, N >::value_type = T

◆ Vector

template<FloatingPointType T, size_t N>
using Harlinn::Math::SegmentSimd< T, N >::Vector = Math::Vector<T, N>::Simd

Constructor & Destructor Documentation

◆ SegmentSimd() [1/4]

template<FloatingPointType T, size_t N>
Harlinn::Math::SegmentSimd< T, N >::SegmentSimd ( )
inlinenoexcept

◆ SegmentSimd() [2/4]

template<FloatingPointType T, size_t N>
Harlinn::Math::SegmentSimd< T, N >::SegmentSimd ( const std::array< Point, 2 > & pts)
inlinenoexcept

◆ SegmentSimd() [3/4]

template<FloatingPointType T, size_t N>
Harlinn::Math::SegmentSimd< T, N >::SegmentSimd ( const Point & p1,
const Point & p2 )
inlinenoexcept

◆ SegmentSimd() [4/4]

template<FloatingPointType T, size_t N>
Harlinn::Math::SegmentSimd< T, N >::SegmentSimd ( const Segment & segment)
inlinenoexcept

Member Function Documentation

◆ Assign()

template<FloatingPointType T, size_t N>
void Harlinn::Math::SegmentSimd< T, N >::Assign ( const Point & center,
const Vector & direction,
value_type extent )
inlinenoexcept

◆ Distance()

template<FloatingPointType T, size_t N>
PointDistanceResult Harlinn::Math::SegmentSimd< T, N >::Distance ( const Point & point) const
inlinenoexcept

Retrieves the closest point and distance from point to the segment.

◆ Extract()

template<FloatingPointType T, size_t N>
void Harlinn::Math::SegmentSimd< T, N >::Extract ( Point & center,
Vector & direction,
value_type & extent ) const
inlinenoexcept

Member Data Documentation

◆ Half

template<FloatingPointType T, size_t N>
value_type Harlinn::Math::SegmentSimd< T, N >::Half = static_cast< value_type >( .5 )
staticconstexpr

◆ One

template<FloatingPointType T, size_t N>
value_type Harlinn::Math::SegmentSimd< T, N >::One = static_cast< value_type >( 1 )
staticconstexpr

◆ points

template<FloatingPointType T, size_t N>
std::array<Point, 2> Harlinn::Math::SegmentSimd< T, N >::points

◆ Zero

template<FloatingPointType T, size_t N>
value_type Harlinn::Math::SegmentSimd< T, N >::Zero = static_cast< value_type >( 0 )
staticconstexpr

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