1 #ifndef FACADE_DELIVERY_SYSTEM_H_     2 #define FACADE_DELIVERY_SYSTEM_H_     4 #include "EntityProject/facade/common.h"    49     virtual const std::vector<IEntity*>& 
GetEntities() 
const = 0;
    51     virtual void Update(
float dt) = 0;
 virtual void AddEntity(IEntity *entity)=0
Adds an entity to an entity vector member. Once added, entities can be affected by the system...
 
virtual void SetGraph(const IGraph *graph)=0
Adds the graph used for dynamic routing in the delivery system. 
 
The abstract facade of a drone delivery subsystem. 
Definition: delivery_system.h:13
 
An abstract class that represents an entity system that contains entities and updates over time...
Definition: entity_system.h:10
 
virtual void Update(float dt)=0
Updates the drone system time by dt. 
 
Definition: asubject.cc:3
 
virtual void AddObserver(IEntityObserver *observer)=0
Add an observer to a specific entity. 
 
Represents a read only graph object. 
Definition: graph.h:12
 
virtual ~IDeliverySystem()
Destructor. 
Definition: delivery_system.h:16
 
virtual const std::vector< IEntity * > & GetEntities() const =0
Returns all the entities that are added to the drone system. 
 
virtual IEntity * CreateEntity(const picojson::object &val)=0
Creates an entity based on a JSON object passed in. 
 
Definition: entity_factory.h:12
 
virtual void ScheduleDelivery(IEntity *package, IEntity *dest)=0
Schedule a drone delivery for a package to be delivered to a customer. 
 
A movable object in a scene. Entities have position, direction and size. 
Definition: entity.h:15
 
virtual void RemoveObserver(IEntityObserver *observer)=0
Remove an observer from a specific entity. 
 
Observers entity events when they occur. 
Definition: entity_observer.h:14
 
virtual void AddFactory(IEntityFactory *factory)=0
Adds an entity factory to a composite factory for creating new entities. 
 
virtual void RunScript(const picojson::array &script, IEntitySystem *system) const =0
Translates a set of JSON commands into method calls for the drone delivery system.