#pragma once #include #include "Vector2f.h" struct Window { explicit Window( const std::string& title = "Title", float width = 320.0f, float height = 180.0f, bool isVSyncOn = true ); std::string title; float width; float height; bool isVSyncOn; }; // struct Vector2f // { // Vector2f( ); // explicit Vector2f( float x, float y ); // //Vector2f(int x, int y); //Stupid fix for it giving an error // // //operator // Vector2f operator+( const Vector2f& other ) const; // Vector2f operator+=( const Vector2f& other ) const; // Vector2f operator*( float other ) const; // Vector2f operator*( int other ) const; // Vector2f operator*( const Vector2f& other ) const; // Vector2f operator/( float other ) const; // Vector2f operator-( const Vector2f& other ) const; // // // float x; // float y; // }; // // Vector2f operator/(float right, const Vector2f& left); // Vector2f operator*(float right, const Vector2f& left); // // std::ostream& operator<<(std::ostream& os, const Vector2f& p); struct Rectf { Rectf( ); explicit Rectf( float left, float bottom, float width, float height ); Rectf(Vector2f pos, Vector2f size); //explicit Rectf( int left, int bottom, int width, int height ); //Stupid fix for it giving an error (same as Vector2f) Vector2f BottomLeft() const { return Vector2f{ left, bottom }; } float left; float bottom; float width; float height; }; struct Color4f { Color4f( ); explicit Color4f( float r, float g, float b, float a ); float r; float g; float b; float a; }; struct Circlef { Circlef( ); explicit Circlef( const Vector2f& center, float radius ); explicit Circlef( float centerX, float centerY, float radius ); Vector2f center; float radius; }; struct Ellipsef { Ellipsef( ); explicit Ellipsef( const Vector2f& center, float radiusX, float radiusY ); explicit Ellipsef( float centerX, float centerY, float radiusX, float radiusY ); Vector2f center; float radiusX; float radiusY; };