00001 #ifndef HEADER_MARKMASK_H 00002 #define HEADER_MARKMASK_H 00003 00004 class V2; 00005 class Field; 00006 00007 #include "NoCopy.h" 00008 #include "Dir.h" 00009 #include "Cube.h" 00010 00011 /** 00012 * Marks and unmasks object from game field. 00013 */ 00014 class MarkMask : public NoCopy { 00015 private: 00016 Cube *m_model; 00017 Field *m_field; 00018 private: 00019 void writeModel(Cube *model); 00020 bool isBorderDir(Dir::eDir dir) const; 00021 bool isInRoom() const; 00022 public: 00023 MarkMask(Cube *model, Field *field); 00024 00025 Cube::t_models getResist(Dir::eDir dir) const; 00026 Cube::t_models getPlacedResist(const V2 &loc) const; 00027 void mask(); 00028 void unmask(); 00029 00030 Dir::eDir getBorderDir() const; 00031 }; 00032 00033 #endif