Plasma Engine  2.0
Loading...
Searching...
No Matches
Rational.h
1
2#pragma once
3
4#include <Foundation/Basics.h>
5
13{
14public:
15 PL_DECLARE_POD_TYPE();
16
19
21 plRational(plUInt32 uiNumerator, plUInt32 uiDenominator);
22
24 bool IsIntegral() const;
25
27 bool operator==(const plRational& other) const;
28
30 bool operator!=(const plRational& other) const;
31
33 plUInt32 GetNumerator() const;
34
36 plUInt32 GetDenominator() const;
37
39 plUInt32 GetIntegralResult() const;
40
42 double GetFloatingPointResult() const;
43
45 bool IsValid() const;
46
51
52protected:
53 plUInt32 m_uiNumerator = 0;
54 plUInt32 m_uiDenominator = 1;
55};
56
57#include <Foundation/Math/Implementation/Rational_inl.h>
A class which can be used to represent rational numbers by stating their numerator and denominator.
Definition Rational.h:13
bool IsIntegral() const
returns true if the division of the numerator by the denominator would result in a full integer
Definition Rational_inl.h:12
bool operator==(const plRational &other) const
Equality operator.
Definition Rational_inl.h:20
plUInt32 GetIntegralResult() const
Returns the result of the division as an integer.
Definition Rational_inl.h:40
plUInt32 GetDenominator() const
Returns the denominator.
Definition Rational_inl.h:35
plRational()
Default constructor, initializes to 0/1.
plUInt32 GetNumerator() const
Returns the numerator of the rational number.
Definition Rational_inl.h:30
bool operator!=(const plRational &other) const
Inequality operator.
Definition Rational_inl.h:25
bool IsValid() const
Returns true if the rational is valid (follows the rules stated in the class description)
Definition Rational_inl.h:56
double GetFloatingPointResult() const
Returns the result of the division as a floating point number (double).
Definition Rational_inl.h:48
plRational ReduceIntegralFraction() const
This helper returns a reduced fraction in case of an integral input.
Definition Rational_inl.h:61