static Direction rotate_left( const Direction& dir ) { if( dir.index() > 0 ) return _l_dir[dir.index()-1]; else return _l_dir[_l_dir.size()-1]; }
static Direction rotate_right( const Direction& dir ) { if( dir.index() < (_l_dir.size() - 1) ) return _l_dir[dir.index()+1]; else return _l_dir[0]; }