public void R_OperateAll(DOperateVoxel fOperateVoxel) { if (IsLeaf()) { fOperateVoxel(this); return; } Childs[0, 0, 0].R_OperateAll(fOperateVoxel); Childs[0, 0, 1].R_OperateAll(fOperateVoxel); Childs[0, 1, 0].R_OperateAll(fOperateVoxel); Childs[0, 1, 1].R_OperateAll(fOperateVoxel); Childs[1, 0, 0].R_OperateAll(fOperateVoxel); Childs[1, 0, 1].R_OperateAll(fOperateVoxel); Childs[1, 1, 0].R_OperateAll(fOperateVoxel); Childs[1, 1, 1].R_OperateAll(fOperateVoxel); }
public void R_OperateSurface(DOperateVoxel fOperateVoxel) { if (IsLeaf()) { if (IsSurface) { fOperateVoxel(this); } return; } Childs[0, 0, 0].R_OperateSurface(fOperateVoxel); Childs[0, 0, 1].R_OperateSurface(fOperateVoxel); Childs[0, 1, 0].R_OperateSurface(fOperateVoxel); Childs[0, 1, 1].R_OperateSurface(fOperateVoxel); Childs[1, 0, 0].R_OperateSurface(fOperateVoxel); Childs[1, 0, 1].R_OperateSurface(fOperateVoxel); Childs[1, 1, 0].R_OperateSurface(fOperateVoxel); Childs[1, 1, 1].R_OperateSurface(fOperateVoxel); }
public void R_OperateNotFilled(DOperateVoxel fOperateVoxel) { if (IsLeaf()) { if (!filled) { fOperateVoxel(this); } return; } Childs[0, 0, 0].R_OperateNotFilled(fOperateVoxel); Childs[0, 0, 1].R_OperateNotFilled(fOperateVoxel); Childs[0, 1, 0].R_OperateNotFilled(fOperateVoxel); Childs[0, 1, 1].R_OperateNotFilled(fOperateVoxel); Childs[1, 0, 0].R_OperateNotFilled(fOperateVoxel); Childs[1, 0, 1].R_OperateNotFilled(fOperateVoxel); Childs[1, 1, 0].R_OperateNotFilled(fOperateVoxel); Childs[1, 1, 1].R_OperateNotFilled(fOperateVoxel); }