31 lines
664 B
C++
31 lines
664 B
C++
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "SFML/Graphics/CircleShape.hpp"
|
||
|
|
#include "SFML/Graphics/Color.hpp"
|
||
|
|
#include "SFML/Graphics/RenderWindow.hpp"
|
||
|
|
#include "datatypes.h"
|
||
|
|
#include "moveable.h"
|
||
|
|
|
||
|
|
class Signal : public Movable{
|
||
|
|
public:
|
||
|
|
|
||
|
|
Signal();
|
||
|
|
Signal(float x, float y, float r) : Movable(Vec2D<float>(x, y), Vec2D<float>(0,0), 0.0), radius(r) {}
|
||
|
|
|
||
|
|
int id = 0;
|
||
|
|
|
||
|
|
int target_node_id = 1;
|
||
|
|
int source_node_id = 0;
|
||
|
|
|
||
|
|
float radius;
|
||
|
|
|
||
|
|
void update() { position += direction.norm() * speed;};
|
||
|
|
|
||
|
|
void draw(sf::RenderWindow *window) {
|
||
|
|
sf::CircleShape circle(radius);
|
||
|
|
circle.setFillColor(sf::Color::Red);
|
||
|
|
circle.setPosition(position.x, position.y);
|
||
|
|
window->draw(circle);
|
||
|
|
};
|
||
|
|
};
|