public void adjustDetails(FullTerrainOperator op) { var dratio = new Vector2(op.fieldUnit.x / op.detailUnit.x, op.fieldUnit.y / op.detailUnit.y); var m = new FieldManipulator(min, max, op.detailUnitR, op.detailLength); var layers = m.getDetailSupportedLayers(op.td); foreach (var layer in layers) { var ds = m.getDetails(op.td, layer); for (var iy = 0; iy < m.len.y; iy++) { for (var ix = 0; ix < m.len.x; ix++) { var spos = m.getIterationPosition(ix, iy, op.detailUnit); var height = hs[(int)(iy * dratio.y), (int)(ix * dratio.x)] * op.fieldUnitHeight; var pos = new Vector3(spos.x, height, spos.y); if ((pos - center).sqrMagnitude <= sqrradius) { ds[iy, ix] = 0; } } } m.setDetails(op.td, ds, layer); } }