Box2D  3.0.0
A Real-Time-Oriented 2-D Physics Engine
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
box2d::Fixed< BASE_TYPE, FRACTION_BITS > Class Template Reference

Fixed. More...

#include <Fixed.hpp>

Public Types

enum  ComparatorResult { ComparatorResult::Incomparable, ComparatorResult::Equal, ComparatorResult::LessThan, ComparatorResult::GreaterThan }
 
using value_type = BASE_TYPE
 

Public Member Functions

 Fixed ()=default
 
constexpr Fixed (long double val) noexcept
 
constexpr Fixed (double val) noexcept
 
constexpr Fixed (float val) noexcept
 
constexpr Fixed (unsigned long long val) noexcept
 
constexpr Fixed (unsigned long val) noexcept
 
constexpr Fixed (unsigned int val) noexcept
 
constexpr Fixed (long long val) noexcept
 
constexpr Fixed (int val) noexcept
 
constexpr Fixed (short val) noexcept
 
constexpr Fixed (value_type val, unsigned int fraction) noexcept
 
template<typename BT , unsigned int FB>
constexpr Fixed (const Fixed< BT, FB > val) noexcept
 
template<typename T >
constexpr T ConvertTo () const noexcept
 
constexpr ComparatorResult Compare (const Fixed other) const noexcept
 
constexpr operator long double () const noexcept
 
constexpr operator double () const noexcept
 
constexpr operator float () const noexcept
 
constexpr operator long long () const noexcept
 
constexpr operator long () const noexcept
 
constexpr operator unsigned long long () const noexcept
 
constexpr operator unsigned long () const noexcept
 
constexpr operator unsigned int () const noexcept
 
constexpr operator int () const noexcept
 
constexpr operator short () const noexcept
 
constexpr Fixed operator- () const noexcept
 
constexpr Fixed operator+ () const noexcept
 
constexpr operator bool () const noexcept
 
constexpr bool operator! () const noexcept
 
constexpr Fixedoperator+= (Fixed val) noexcept
 
constexpr Fixedoperator-= (Fixed val) noexcept
 
constexpr Fixedoperator*= (Fixed val) noexcept
 
constexpr Fixedoperator/= (Fixed val) noexcept
 
constexpr Fixedoperator%= (Fixed val) noexcept
 

Static Public Member Functions

static constexpr Fixed GetMin () noexcept
 
static constexpr Fixed GetInfinity () noexcept
 
static constexpr Fixed GetMax () noexcept
 
static constexpr Fixed GetNaN () noexcept
 
static constexpr Fixed GetNegativeInfinity () noexcept
 
static constexpr Fixed GetLowest () noexcept
 
template<typename T >
static constexpr value_type GetFromFloat (T val) noexcept
 
template<typename T >
static constexpr value_type GetFromSignedInt (T val) noexcept
 
template<typename T >
static constexpr value_type GetFromUnsignedInt (T val) noexcept
 

Static Public Attributes

static constexpr unsigned int FractionBits = FRACTION_BITS
 
static constexpr value_type ScaleFactor = static_cast<value_type>(1u << FractionBits)
 

Detailed Description

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
class box2d::Fixed< BASE_TYPE, FRACTION_BITS >

Fixed.

This is a fixed point type template for a given base type using a given number of fraction bits.

This is a 32-bit sized fixed point type with a 18.14 format. With a 14-bit fraction part:

Member Typedef Documentation

◆ value_type

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
using box2d::Fixed< BASE_TYPE, FRACTION_BITS >::value_type = BASE_TYPE

Member Enumeration Documentation

◆ ComparatorResult

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
enum box2d::Fixed::ComparatorResult
strong
Enumerator
Incomparable 
Equal 
LessThan 
GreaterThan 

Constructor & Destructor Documentation

◆ Fixed() [1/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( )
default

◆ Fixed() [2/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( long double  val)
inlinenoexcept

◆ Fixed() [3/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( double  val)
inlinenoexcept

◆ Fixed() [4/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( float  val)
inlinenoexcept

◆ Fixed() [5/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( unsigned long long  val)
inlinenoexcept

◆ Fixed() [6/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( unsigned long  val)
inlinenoexcept

◆ Fixed() [7/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( unsigned int  val)
inlinenoexcept

◆ Fixed() [8/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( long long  val)
inlinenoexcept

◆ Fixed() [9/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( int  val)
inlinenoexcept

◆ Fixed() [10/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( short  val)
inlinenoexcept

◆ Fixed() [11/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( value_type  val,
unsigned int  fraction 
)
inlinenoexcept

◆ Fixed() [12/12]

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
template<typename BT , unsigned int FB>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Fixed ( const Fixed< BT, FB >  val)
inlinenoexcept

Member Function Documentation

◆ Compare()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr ComparatorResult box2d::Fixed< BASE_TYPE, FRACTION_BITS >::Compare ( const Fixed< BASE_TYPE, FRACTION_BITS >  other) const
inlinenoexcept

◆ ConvertTo()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
template<typename T >
constexpr T box2d::Fixed< BASE_TYPE, FRACTION_BITS >::ConvertTo ( ) const
inlinenoexcept

◆ GetFromFloat()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
template<typename T >
static constexpr value_type box2d::Fixed< BASE_TYPE, FRACTION_BITS >::GetFromFloat ( val)
inlinestaticnoexcept

◆ GetFromSignedInt()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
template<typename T >
static constexpr value_type box2d::Fixed< BASE_TYPE, FRACTION_BITS >::GetFromSignedInt ( val)
inlinestaticnoexcept

◆ GetFromUnsignedInt()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
template<typename T >
static constexpr value_type box2d::Fixed< BASE_TYPE, FRACTION_BITS >::GetFromUnsignedInt ( val)
inlinestaticnoexcept

◆ GetInfinity()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
static constexpr Fixed box2d::Fixed< BASE_TYPE, FRACTION_BITS >::GetInfinity ( )
inlinestaticnoexcept

◆ GetLowest()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
static constexpr Fixed box2d::Fixed< BASE_TYPE, FRACTION_BITS >::GetLowest ( )
inlinestaticnoexcept

◆ GetMax()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
static constexpr Fixed box2d::Fixed< BASE_TYPE, FRACTION_BITS >::GetMax ( )
inlinestaticnoexcept

◆ GetMin()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
static constexpr Fixed box2d::Fixed< BASE_TYPE, FRACTION_BITS >::GetMin ( )
inlinestaticnoexcept

◆ GetNaN()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
static constexpr Fixed box2d::Fixed< BASE_TYPE, FRACTION_BITS >::GetNaN ( )
inlinestaticnoexcept

◆ GetNegativeInfinity()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
static constexpr Fixed box2d::Fixed< BASE_TYPE, FRACTION_BITS >::GetNegativeInfinity ( )
inlinestaticnoexcept

◆ operator bool()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator bool ( ) const
inlineexplicitnoexcept

◆ operator double()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator double ( ) const
inlineexplicitnoexcept

◆ operator float()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator float ( ) const
inlineexplicitnoexcept

◆ operator int()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator int ( ) const
inlineexplicitnoexcept

◆ operator long()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator long ( ) const
inlineexplicitnoexcept

◆ operator long double()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator long double ( ) const
inlineexplicitnoexcept

◆ operator long long()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator long long ( ) const
inlineexplicitnoexcept

◆ operator short()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator short ( ) const
inlineexplicitnoexcept

◆ operator unsigned int()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator unsigned int ( ) const
inlineexplicitnoexcept

◆ operator unsigned long()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator unsigned long ( ) const
inlineexplicitnoexcept

◆ operator unsigned long long()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator unsigned long long ( ) const
inlineexplicitnoexcept

◆ operator!()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr bool box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator! ( ) const
inlinenoexcept

◆ operator%=()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr Fixed& box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator%= ( Fixed< BASE_TYPE, FRACTION_BITS >  val)
inlinenoexcept

◆ operator*=()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr Fixed& box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator*= ( Fixed< BASE_TYPE, FRACTION_BITS >  val)
inlinenoexcept

◆ operator+()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr Fixed box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator+ ( ) const
inlinenoexcept

◆ operator+=()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr Fixed& box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator+= ( Fixed< BASE_TYPE, FRACTION_BITS >  val)
inlinenoexcept

◆ operator-()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr Fixed box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator- ( ) const
inlinenoexcept

◆ operator-=()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr Fixed& box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator-= ( Fixed< BASE_TYPE, FRACTION_BITS >  val)
inlinenoexcept

◆ operator/=()

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr Fixed& box2d::Fixed< BASE_TYPE, FRACTION_BITS >::operator/= ( Fixed< BASE_TYPE, FRACTION_BITS >  val)
inlinenoexcept

Member Data Documentation

◆ FractionBits

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr unsigned int box2d::Fixed< BASE_TYPE, FRACTION_BITS >::FractionBits = FRACTION_BITS
static

◆ ScaleFactor

template<typename BASE_TYPE, unsigned int FRACTION_BITS>
constexpr value_type box2d::Fixed< BASE_TYPE, FRACTION_BITS >::ScaleFactor = static_cast<value_type>(1u << FractionBits)
static

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