OpenShot Library | libopenshot  0.3.3
Public Member Functions | Public Attributes | List of all members
openshot::Fraction Class Reference

This class represents a fraction. More...

#include <Fraction.h>

Public Member Functions

 Fraction ()
 Default Constructor. More...
 
 Fraction (int num, int den)
 Constructor with numerator and denominator. More...
 
 Fraction (std::map< std::string, int > mapping)
 Constructor that takes a key-value mapping (keys: 'num'. 'den') More...
 
 Fraction (std::pair< int, int > pair)
 Constructor that accepts a (num, den) pair. More...
 
 Fraction (std::vector< int > vector)
 Constructor that takes a vector of length 2 (containing {num, den}) More...
 
int GreatestCommonDenominator ()
 Calculate the greatest common denominator. More...
 
template<class numT >
numT operator* (const numT &other) const
 Multiplication in the form (openshot_Fraction * numeric_value) More...
 
openshot::Fraction operator* (openshot::Fraction other)
 Multiply two Fraction objects together. More...
 
template<class numT >
numT operator/ (const numT &other) const
 Division in the form (openshot_Fraction / numeric_value) More...
 
openshot::Fraction operator/ (openshot::Fraction other)
 Divide a Fraction by another Fraction. More...
 
Fraction Reciprocal () const
 Return the reciprocal as a Fraction. More...
 
void Reduce ()
 Reduce this fraction (i.e. 640/480 = 4/3) More...
 
double ToDouble () const
 Return this fraction as a double (i.e. 1/2 = 0.5) More...
 
float ToFloat ()
 Return this fraction as a float (i.e. 1/2 = 0.5) More...
 
int ToInt ()
 Return a rounded integer of the fraction (for example 30000/1001 returns 30) More...
 

Public Attributes

int den
 Denominator for the fraction. More...
 
int num
 Numerator for the fraction. More...
 

Detailed Description

This class represents a fraction.

Fractions are often used in video editing to represent ratios and rates, for example: pixel ratios, frames per second, timebase, and other common ratios. Fractions are preferred over decimals due to their increased precision.

Definition at line 30 of file Fraction.h.

Constructor & Destructor Documentation

◆ Fraction() [1/5]

Fraction::Fraction ( )

Default Constructor.

Definition at line 19 of file Fraction.cpp.

Referenced by Reciprocal().

◆ Fraction() [2/5]

Fraction::Fraction ( int  num,
int  den 
)

Constructor with numerator and denominator.

Definition at line 31 of file Fraction.cpp.

◆ Fraction() [3/5]

Fraction::Fraction ( std::pair< int, int >  pair)

Constructor that accepts a (num, den) pair.

Definition at line 21 of file Fraction.cpp.

◆ Fraction() [4/5]

Fraction::Fraction ( std::vector< int >  vector)

Constructor that takes a vector of length 2 (containing {num, den})

Definition at line 27 of file Fraction.cpp.

◆ Fraction() [5/5]

Fraction::Fraction ( std::map< std::string, int >  mapping)

Constructor that takes a key-value mapping (keys: 'num'. 'den')

Definition at line 24 of file Fraction.cpp.

Member Function Documentation

◆ GreatestCommonDenominator()

int Fraction::GreatestCommonDenominator ( )

Calculate the greatest common denominator.

Definition at line 50 of file Fraction.cpp.

Referenced by Reduce().

◆ operator*() [1/2]

template<class numT >
numT openshot::Fraction::operator* ( const numT &  other) const
inline

Multiplication in the form (openshot_Fraction * numeric_value)

Definition at line 82 of file Fraction.h.

◆ operator*() [2/2]

openshot::Fraction openshot::Fraction::operator* ( openshot::Fraction  other)
inline

Multiply two Fraction objects together.

Definition at line 71 of file Fraction.h.

◆ operator/() [1/2]

template<class numT >
numT openshot::Fraction::operator/ ( const numT &  other) const
inline

Division in the form (openshot_Fraction / numeric_value)

Definition at line 88 of file Fraction.h.

◆ operator/() [2/2]

openshot::Fraction openshot::Fraction::operator/ ( openshot::Fraction  other)
inline

Divide a Fraction by another Fraction.

Definition at line 76 of file Fraction.h.

◆ Reciprocal()

Fraction Fraction::Reciprocal ( ) const

◆ Reduce()

void Fraction::Reduce ( )

◆ ToDouble()

double Fraction::ToDouble ( ) const

◆ ToFloat()

float Fraction::ToFloat ( )

◆ ToInt()

int Fraction::ToInt ( )

Return a rounded integer of the fraction (for example 30000/1001 returns 30)

Definition at line 45 of file Fraction.cpp.

Member Data Documentation

◆ den

int openshot::Fraction::den

◆ num

int openshot::Fraction::num

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