Files
viseq/src/moveable.h
T

46 lines
987 B
C++
Raw Normal View History

2024-10-09 02:01:23 +02:00
#pragma once
#include "datatypes.h"
2024-10-09 02:01:23 +02:00
class Movable{
public:
Movable() {}
virtual ~Movable() {}
Movable(Vec2Df p, Vec2Df d, float s) : speed(s), position(p), direction(d) {}
Movable(Vec2Df p, float s) : speed(s), position(p) {}
2024-10-09 02:01:23 +02:00
float speed = 1.0f;
Vec2Df position;
Vec2Df direction;
2024-10-09 02:01:23 +02:00
Vec2Df drag_offset;
bool in_rect = false;
bool picked_up = false;
bool dragging = false;
bool hover_connect = false;
bool hovering = false;
bool connecting = false;
bool selected = false;
bool highlighted = false;
bool copied = false;
bool erase = false;
virtual void setPosition(Vec2Df _position) {position = _position;}
virtual Vec2Df getPosition() {return position;};
virtual void update(double frametime) {};
virtual void update() {};
/*virtual void to_json(json& j, const Movable& M){*/
/* j = json{{"position", M.position}, {"direction", M.direction}, {"speed", M.speed}};*/
/*}*/
2024-10-09 02:01:23 +02:00
};
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Movable, position, direction, speed)