Example #1
0
	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;
	}
Example #2
0
	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;
	}