22 #ifndef FIFE_LOCATION_H
23 #define FIFE_LOCATION_H
34 #include "model/metamodel/modelcoords.h"
35 #include "util/base/exception.h"
49 Location(
const Location& loc);
53 Location(Layer* layer);
65 Location& operator=(
const Location& rhs);
69 inline bool operator==(
const Location& loc)
const {
70 return ((m_layer == loc.m_layer) && (m_exact_layer_coords == loc.m_exact_layer_coords));
75 inline bool operator!=(
const Location& loc)
const {
76 return !(*
this == loc);
88 void setLayer(Layer* layer);
93 Layer* getLayer()
const;
101 void setExactLayerCoordinates(
const ExactModelCoordinate& coordinates);
109 void setLayerCoordinates(
const ModelCoordinate& coordinates);
114 void setMapCoordinates(
const ExactModelCoordinate& coordinates);
120 ExactModelCoordinate& getExactLayerCoordinatesRef();
125 ExactModelCoordinate getExactLayerCoordinates()
const;
133 ExactModelCoordinate getExactLayerCoordinates(
const Layer* layer)
const;
138 ModelCoordinate getLayerCoordinates()
const;
143 ModelCoordinate getLayerCoordinates(
const Layer* layer)
const;
148 ExactModelCoordinate getMapCoordinates()
const;
153 double getCellOffsetDistance()
const;
160 bool isValid()
const;
165 double getMapDistanceTo(
const Location& location)
const;
171 double getLayerDistanceTo(
const Location& location)
const;
174 bool isValid(
const Layer* layer)
const;
177 ExactModelCoordinate m_exact_layer_coords;
184 std::ostream&
operator<<(std::ostream&,
const Location&);
186 #endif //FIFE_LOCATION_H
std::ostream & operator<<(std::ostream &os, const Location &l)
bool operator!=(const SharedPtr< T > &lhs, const SharedPtr< U > &rhs)
bool operator==(const SharedPtr< T > &lhs, const SharedPtr< U > &rhs)