#pragma once

#include "Entity.hpp"
#include <map>

class EntityMap {
public:
	EntityMap();
	EntityMap(std::vector<std::shared_ptr<Entity>>);
	~EntityMap();

	void addEntity(Entity);
	std::shared_ptr<Entity> getEntityByName(std::string);
	std::shared_ptr<Entity> getEntityByFaceTopologyId(int);
	std::shared_ptr<Entity> getEntityBySolidTopologyId(int);

	std::vector< std::shared_ptr<Entity>> getEntities();

	int size();

	//for testing
	void print();

private:
	std::vector< std::shared_ptr<Entity>> entities;

};