mirror of
https://github.com/HowestDAE/dae16-VerhulstBram.git
synced 2025-12-16 17:51:47 +01:00
118 lines
3.4 KiB
C++
118 lines
3.4 KiB
C++
#include "base.h"
|
|
#include "structs.h"
|
|
|
|
//-----------------------------------------------------------------
|
|
// Window Constructors
|
|
//-----------------------------------------------------------------
|
|
Window::Window(const std::string& title, float width, float height, bool isVSyncOn)
|
|
: title { title }
|
|
, width { width }
|
|
, height { height }
|
|
, isVSyncOn { isVSyncOn } {
|
|
}
|
|
|
|
//-----------------------------------------------------------------
|
|
// Point2f Constructors
|
|
//-----------------------------------------------------------------
|
|
Point2f::Point2f()
|
|
: Point2f { 0.0f, 0.0f } {
|
|
}
|
|
Point2f::Point2f(float x, float y)
|
|
: x { x }, y { y } {
|
|
}
|
|
Point2f Point2f::operator+(const Point2f& other) const {
|
|
return Point2f { x + other.x, y + other.y };
|
|
}
|
|
Point2f Point2f::operator+=(const Point2f& other) const {
|
|
return Point2f { x + other.x, y + other.y };
|
|
}
|
|
Point2f Point2f::operator*(float other) const {
|
|
return Point2f { x * other, y * other };
|
|
}
|
|
Point2f Point2f::operator*(const Point2f& other) const {
|
|
return Point2f { x * other.x, y * other.y };
|
|
}
|
|
Point2f Point2f::operator*(int other) const {
|
|
return Point2f { x * float(other), y * float(other) };
|
|
}
|
|
Point2f Point2f::operator/(float other) const {
|
|
return Point2f { x / other, y / other };
|
|
}
|
|
Point2f Point2f::operator-(const Point2f& other) const {
|
|
return Point2f { x - other.x, y - other.y };
|
|
}
|
|
|
|
// Point2f::Point2f(int x, int y)
|
|
// : x { (float)x }, y { (float)y } {
|
|
// }
|
|
|
|
Point2f operator/(float right, const Point2f& left) {
|
|
return Point2f { right / left.x, right / left.y };
|
|
}
|
|
Point2f operator*(float right, const Point2f& left) {
|
|
return Point2f{ right * left.x, right * left.y };
|
|
}
|
|
//-----------------------------------------------------------------
|
|
// Rectf Constructors
|
|
//-----------------------------------------------------------------
|
|
Rectf::Rectf()
|
|
: Rectf { 0.0f, 0.0f, 0.0f, 0.0f } {
|
|
}
|
|
|
|
Rectf::Rectf(float left, float bottom, float width, float height)
|
|
: left { left }
|
|
, bottom { bottom }
|
|
, width { width }
|
|
, height { height } {
|
|
}
|
|
// Rectf::Rectf(int left, int bottom, int width, int height) : left { (float)left }, bottom { (float)bottom }, width { (float)width }, height { (float)height } {
|
|
// }
|
|
|
|
//-----------------------------------------------------------------
|
|
// Color4f Constructors
|
|
//-----------------------------------------------------------------
|
|
Color4f::Color4f()
|
|
: Color4f { 0.0f, 0.0f, 0.0f, 1.0f } {
|
|
}
|
|
|
|
Color4f::Color4f(float r, float g, float b, float a)
|
|
: r { r }
|
|
, g { g }
|
|
, b { b }
|
|
, a { a } {
|
|
}
|
|
|
|
//-----------------------------------------------------------------
|
|
// Circlef Constructors
|
|
//-----------------------------------------------------------------
|
|
Circlef::Circlef()
|
|
: Circlef { 0.0f, 0.0f, 0.0f } {
|
|
}
|
|
|
|
Circlef::Circlef(float centerX, float centerY, float radius)
|
|
: Circlef { Point2f { centerX, centerY }, radius } {
|
|
}
|
|
|
|
Circlef::Circlef(const Point2f& center, float radius)
|
|
: center { center }
|
|
, radius { radius } {
|
|
}
|
|
|
|
//-----------------------------------------------------------------
|
|
// Ellipsef Constructors
|
|
//-----------------------------------------------------------------
|
|
Ellipsef::Ellipsef()
|
|
: Ellipsef { 0.0f, 0.0f, 0.0f, 0.0f } {
|
|
}
|
|
|
|
|
|
Ellipsef::Ellipsef(const Point2f& center, float radiusX, float radiusY)
|
|
: center { center }
|
|
, radiusX { radiusX }
|
|
, radiusY { radiusY } {
|
|
}
|
|
|
|
Ellipsef::Ellipsef(float centerX, float centerY, float radiusX, float radiusY)
|
|
: Ellipsef { Point2f { centerX, centerY }, radiusX, radiusY } {
|
|
}
|