public: void markCell(Cell* cell){
		if(!isBorder(cell)) return;

		cell->setMark(getMark());
		for(int axis=0; axis<3; axis++){
			for(int dir=0; dir<2; dir++){
				Side* side = cell->getSide(axis, dir);
				if(isBorder(side->getBCell()) && isBorder(side->getFCell()))
					side->setMark(getMark());
			}

			for(int irib=0; irib<4; irib++){
				Rib* rib = cell->getRib(axis, irib);
/*
				if((rib->getCell(Cell::ur) == NULL || isBorder(rib->getCell(Cell::ur))) 
					&& (rib->getCell(Cell::ul) == NULL || isBorder(rib->getCell(Cell::ul)))
					&& (rib->getCell(Cell::dl) == NULL || isBorder(rib->getCell(Cell::dl)))
					&& (rib->getCell(Cell::dr) == NULL || isBorder(rib->getCell(Cell::dr)))
				  )
*/
					rib->setMark(getMark());
			}
		}
	}