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()); } } }