7 #include "IPublisher.h"
8 #include "math/vector3.h"
Represents an entity in a physical system.
Definition: IEntity.h:22
virtual Vector3 getDirection() const
Gets the direction of the entity.
virtual std::string getColor() const
Gets the color of the entity.
virtual const JsonObject & getDetails() const
Gets the details of the entity.
virtual int getId() const
Gets the ID of the entity.
virtual std::string getName() const
Gets the name of the entity.
virtual Vector3 getPosition() const
Gets the position of the entity.
virtual void setPosition(Vector3 pos_)
Sets the position of the entity.
virtual ~IEntity()
Virtual destructor for IEntity.
virtual void linkModel(SimulationModel *model)
Links this entity to a simulation model, giving it access to the model's public variables and functio...
virtual void setColor(std::string col_)
Sets the color of the entity.
virtual void update(double dt)=0
Updates the entity's position in the physical system.
virtual double getSpeed() const
Gets the speed of the entity.
virtual void setDirection(Vector3 dir_)
Set the direction of the entity.
IEntity()
Constructor that assigns a unique ID to the entity.
virtual void rotate(double angle)
Rotate the entity around y axis.
IEntity(const JsonObject &details)
Constructor with JsonObject details to define the entity.
Interface for Publisher.
Definition: IPublisher.h:13
Manages a picojson::object, works with JsonValue to provide implicit casting.
Class SimulationModel handling the transit simulation. it can communicate with the controller.
Definition: SimulationModel.h:30
a simple class used for vector math, most function are self explanatory
Definition: vector3.h:12