/*- * Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart * * This file is part of CityDoctor2. * * CityDoctor2 is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * CityDoctor2 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with CityDoctor2. If not, see . */ package de.hft.stuttgart.citydoctor2.datastructure; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType; public class GeometryTestUtils { private GeometryTestUtils() { } public static Geometry createDummyGeometry(GeometryType type) { return createDummyGeometry(type, Lod.LOD2); } public static Geometry createDummyGeometry(GeometryType type, Lod lod) { Geometry geom = new Geometry(type, lod); ConcretePolygon polygon = new ConcretePolygon(); geom.getPolygons().add(polygon); polygon.setParent(geom); LinearRing lr = new LinearRing(LinearRingType.EXTERIOR); polygon.setExteriorRing(lr); Vertex v1 = new Vertex(427583.301, 6003502.571, 9.711); lr.getVertices().add(v1); Vertex v2 = new Vertex(427583.304, 6003502.574, 9.713); lr.getVertices().add(v2); Vertex v3 = new Vertex(427583.304, 6003502.574, 4.097); lr.getVertices().add(v3); Vertex v4 = new Vertex(427583.301, 6003502.571, 4.097); lr.getVertices().add(v4); lr.getVertices().add(v1); geom.updateEdgesAndVertices(); return geom; } public static Geometry createDummyGeometryWithInnerRingWithNeighboringPolygon(GeometryType type, Lod lod) { Geometry geom = new Geometry(type, lod); ConcretePolygon polygon = new ConcretePolygon(); geom.getPolygons().add(polygon); polygon.setParent(geom); LinearRing lr = new LinearRing(LinearRingType.EXTERIOR); polygon.setExteriorRing(lr); Vertex v1 = new Vertex(0, 0, 0); lr.getVertices().add(v1); Vertex v2 = new Vertex(0, 10, 0); lr.getVertices().add(v2); Vertex v3 = new Vertex(10, 10, 0); lr.getVertices().add(v3); Vertex v4 = new Vertex(10, 0, 0); lr.getVertices().add(v4); lr.getVertices().add(v1); LinearRing interiorRing = new LinearRing(LinearRingType.INTERIOR); polygon.addInteriorRing(interiorRing); Vertex vi1 = new Vertex(1, 1, 0); Vertex vi2 = new Vertex(9, 1, 0); Vertex vi3 = new Vertex(9, 9, 0); Vertex vi4 = new Vertex(1, 9, 0); interiorRing.getVertices().add(vi1); interiorRing.getVertices().add(vi2); interiorRing.getVertices().add(vi3); interiorRing.getVertices().add(vi4); interiorRing.getVertices().add(vi1); ConcretePolygon polygon2 = new ConcretePolygon(); geom.addPolygon(polygon2); LinearRing lr2 = new LinearRing(LinearRingType.EXTERIOR); polygon2.setExteriorRing(lr2); lr2.addVertex(v1); lr2.addVertex(v2); lr2.addVertex(new Vertex(0, 5, 10)); lr2.addVertex(v1); geom.updateEdgesAndVertices(); return geom; } }