#pragma once #include #include #include "XY.h" class Museum; class Canvas; class Pathfinder { public: typedef std::forward_list Path; public: Pathfinder(Museum &); virtual void find_between(const XY &, const XY &) = 0; virtual const Path & get_path() = 0; virtual bool is_visited(const XY &); protected: virtual void clear(); virtual void set_visited(const XY &); private: std::vector visisted; protected: Museum & museum; };