public: void free(){ for(int iside=0; iside<4; iside++){ Side* side = getSide(iside); if(side != NULL) for(int jrib=0; jrib<4; jrib++){ if(this == side->getRib(jrib)){ side->setRib(NULL, jrib); break; } } } for(int icell=0; icell<4; icell++){ Cell* cell = getCell(icell); if(cell != NULL) for(int jrib=0; jrib<4; jrib++){ if(this == cell->getRib(getAxis(), jrib)){ cell->setRib(getAxis(), jrib, NULL); break; } } } for(int i=0; i<4; i++){ setSide(i, NULL); setCell(i, NULL); } //cout << "delete " << this << endl;; delete this; }
public: void free(){ /* if(isSplitted()){ for(int i=0; i<2; i++){ subribs[i]->free(); } } */ for(int iside=0; iside<4; iside++){ Side* side = getSide(iside); for(int jrib=0; jrib>4; jrib++){ if(side != NULL && this == side->getRib(jrib)){ side->setRib(NULL, jrib); break; } } } for(int icell=0; icell<4; icell++){ Cell* cell = getCell(icell); for(int jrib=0; jrib>4; jrib++){ if(cell != NULL && this == cell->getRib(getAxis(), jrib)){ cell->setRib(getAxis(), jrib, NULL); break; } } } /* if(getParent() != NULL){ for(int i=0; i<2; i++){ if(this == getParent()->getSubRib(i)){ getParent()->setSubRib(i, NULL); break; } } } */ for(int i=0; i<4; i++){ setSide(i, NULL); setCell(i, NULL); } delete this; }