You've already forked libopenshot
mirror of
https://github.com/OpenShot/libopenshot.git
synced 2026-03-02 08:53:52 -08:00
Initial check-in of OpenShot Library
This commit is contained in:
45
src/Fraction.cpp
Normal file
45
src/Fraction.cpp
Normal file
@@ -0,0 +1,45 @@
|
||||
#include "../include/Fraction.h"
|
||||
|
||||
using namespace openshot;
|
||||
|
||||
// Constructor
|
||||
Fraction::Fraction() :
|
||||
num(1), den(1) {
|
||||
}
|
||||
Fraction::Fraction(int num, int den) :
|
||||
num(num), den(den) {
|
||||
}
|
||||
|
||||
// Return this fraction as a float (i.e. 1/2 = 0.5)
|
||||
float Fraction::ToFloat() {
|
||||
return float(num) / float(den);
|
||||
}
|
||||
|
||||
// Return this fraction as a double (i.e. 1/2 = 0.5)
|
||||
double Fraction::ToDouble() {
|
||||
return double(num) / double(den);
|
||||
}
|
||||
|
||||
int Fraction::GreatestCommonDenominator() {
|
||||
int first = num;
|
||||
int second = den;
|
||||
|
||||
// Find the biggest whole number that will divide into both the numerator
|
||||
// and denominator
|
||||
int t;
|
||||
while (second != 0) {
|
||||
t = second;
|
||||
second = first % second;
|
||||
first = t;
|
||||
}
|
||||
return first;
|
||||
}
|
||||
|
||||
void Fraction::Reduce() {
|
||||
// Get the greatest common denominator
|
||||
int GCD = GreatestCommonDenominator();
|
||||
|
||||
// Reduce this fraction to the smallest possible whole numbers
|
||||
num = num / GCD;
|
||||
den = den / GCD;
|
||||
}
|
||||
Reference in New Issue
Block a user