private static List<List<Point2d>> toList(MultiPolygonList2d pPolygon) { List<List<Point2d>> ret = new ArrayList<List<Point2d>>(); for (PolygonList2d polygon : pPolygon.getPolygons()) { List<Point2d> poly = polygon.getPoints(); ret.add(poly); } return ret; }
public MultiPolygonList2d getTopMultiPolygons() { MultiPolygonList2d mp = new MultiPolygonList2d(); Set<PolygonList2d> polygons = mp.getPolygons(); for (SplitPolygon s : this.splitPolygons) { polygons.addAll(s.getTopMultiPolygons().getPolygons()); } return mp; }
public MultiPolygonList2d getBottomMultiPolygons() { MultiPolygonList2d mp = new MultiPolygonList2d(); Set<PolygonList2d> polygons = mp.getPolygons(); for (SplitPolygon s : this.splitPolygons) { polygons.addAll(s.getBottomMultiPolygons().getPolygons()); } return mp; }
public static PlygonSplitUtil.SplitResult split(MultiPolygonList2d multiPolygon, LinePoints2d splittingLine) { final List<List<Point2d>> leftPolygons = new ArrayList<List<Point2d>>(); final List<List<Point2d>> rightPolygons = new ArrayList<List<Point2d>>(); for (PolygonList2d polygon : multiPolygon.getPolygons()) { // FIXME XXX holes are missing! SplitResult split = PlygonSplitUtil.split(polygon.getPoints(), splittingLine); leftPolygons.addAll(split.getLeftPolygons()); rightPolygons.addAll(split.getRightPolygons()); } return new PlygonSplitUtil.SplitResult(leftPolygons, rightPolygons); }
public MultiPolygonList2d getBottomMultiPolygons() { MultiPolygonList2d mp = new MultiPolygonList2d(); Set<PolygonList2d> polygons = mp.getPolygons(); for (List<Integer> p : this.polygonsLeft) { List<Point2d> polygon = makeListFromIndex(this.polygonExtanded, p); PolygonList2d polygonList = new PolygonList2d(polygon); polygons.add(polygonList); } return mp; }
public MultiPolygonList2d getTopMultiPolygons() { MultiPolygonList2d mp = new MultiPolygonList2d(); Set<PolygonList2d> polygons = mp.getPolygons(); for (List<Integer> p : this.polygonsRight) { List<Point2d> polygon = makeListFromIndex(this.polygonExtanded, p); PolygonList2d polygonList = new PolygonList2d(polygon); polygons.add(polygonList); } return mp; }
/** * Calculate union of left site of polygon cut multiple times by different * splitting lines. The result is on left site of at least of one splitting * lines. * * @param multiPolygon * the polygon to cut * @param lines * splitting lines * @return the polygon which is on left site of each of splitting lines */ public static MultiPolygonList2d unionOfLeftSideOfMultipleCuts(MultiPolygonList2d multiPolygon, LinePoints2d... lines) { MultiPolygonList2d leftMultiPolygon = new MultiPolygonList2d(); MultiPolygonList2d rightMultiPolygon = multiPolygon; for (LinePoints2d line : lines) { MultiPolygonSplitResult splitResult = splitMultiPolygon(rightMultiPolygon, line); leftMultiPolygon.getPolygons().addAll(splitResult.getLeftMultiPolygon().getPolygons()); rightMultiPolygon = splitResult.getRightMultiPolygon(); } return leftMultiPolygon; }
for (PolygonList2d polygon : pMultiPolygons.getPolygons()) {
mPoly.getPolygons().addAll(createUnderRoofPolygons(startPoint, endPoint, wallHeight, roofHeightCalculator)); catchFaceFactory, tm, counterClockwise); for (PolygonList2d polygon : mPoly.getPolygons()) {
for (PolygonList2d polygon : centerMP.getPolygons()) {