more refactoring and breaking things
This commit is contained in:
+12
-62
@@ -7,8 +7,6 @@
|
||||
#include "datatypes.h"
|
||||
#include "draggable.h"
|
||||
#include "graph-item.h"
|
||||
#include "interaction-event.h"
|
||||
#include "state.h"
|
||||
#include "vmath.h"
|
||||
|
||||
namespace VISEQ::GRAPH::EDGES{
|
||||
@@ -43,66 +41,18 @@ namespace VISEQ::GRAPH::NODES {
|
||||
int mode = 0;
|
||||
|
||||
virtual void trigger() {}
|
||||
virtual void setMode(int _mode) {mode = _mode;}
|
||||
|
||||
std::shared_ptr<Node> getPtr(){
|
||||
return shared_from_this();
|
||||
}
|
||||
|
||||
virtual bool hovering() override {
|
||||
return CheckCollisionPointCircle(SCREEN_MOUSE, position, radius);
|
||||
}
|
||||
|
||||
void addConnector() {
|
||||
connectors.emplace_back(std::make_shared<Connector>(getPtr(), position, radius + 5.0f));
|
||||
}
|
||||
|
||||
void removeConnector(std::weak_ptr<Connector> connector){
|
||||
std::erase(connectors, connector.lock());
|
||||
}
|
||||
|
||||
virtual NodeType getNodeType() const {return nodeType;}
|
||||
|
||||
void deselect() override {
|
||||
selected = false;
|
||||
}
|
||||
|
||||
GraphItemType getType() override{
|
||||
return GraphItemType::NODE;
|
||||
}
|
||||
|
||||
void clearConnectors(){
|
||||
connectors.clear();
|
||||
update();
|
||||
}
|
||||
|
||||
void update() override{
|
||||
if(hovering()) state->pushEvent({getPtr(), APP::Interaction::HOVER});
|
||||
if(hovering() && clicked()) state->pushEvent({getPtr(), APP::Interaction::PICKUP});
|
||||
if(pickedUp()) state->pushEvent({getPtr(), APP::Interaction::DRAG});
|
||||
if(picked_up && released()) state->pushEvent({getPtr(), APP::Interaction::PUTDOWN});
|
||||
if(hovering() && MOUSE_RIGHT.clicked) {
|
||||
selected = true;
|
||||
config = true;
|
||||
state->pushEvent({getPtr(), APP::Interaction::RIGHTCLICK});
|
||||
}
|
||||
int free_connectors = 0;
|
||||
for(auto c : connectors){
|
||||
if(c->partner.expired()) free_connectors++;
|
||||
c->setPosition(position);
|
||||
c->setOrbit(radius + 8.0f);
|
||||
c->update();
|
||||
}
|
||||
if(free_connectors == 0) addConnector();
|
||||
}
|
||||
|
||||
void draw(Vec2Df mp, Camera2D cam) override {}
|
||||
|
||||
void draw() override{
|
||||
for(auto c : connectors){
|
||||
c->draw();
|
||||
}
|
||||
}
|
||||
virtual void setMode(int _mode);
|
||||
std::shared_ptr<Node> getPtr();
|
||||
virtual bool hovering() override;
|
||||
void addConnector();
|
||||
void removeConnector(std::weak_ptr<Connector> connector);
|
||||
virtual NodeType getNodeType() const;
|
||||
void deselect() override;
|
||||
GraphItemType getType() override;
|
||||
void clearConnectors();
|
||||
void update() override;
|
||||
void draw(Vec2Df mp, Camera2D cam) override;
|
||||
void draw() override;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user