public void normalizeMultiPolygonAlreadyNormalized() { GeoCoord[] verts1 = { new GeoCoord(0, 0), new GeoCoord(0, 1), new GeoCoord(1, 1) }; LinkedGeo.LinkedGeoLoop outer1 = new LinkedGeo.LinkedGeoLoop(); Assert.NotNull(outer1); createLinkedLoop(ref outer1, verts1.ToList(), 3); GeoCoord[] verts2 = { new GeoCoord(2, 2), new GeoCoord(2, 3), new GeoCoord(3, 3) }; LinkedGeo.LinkedGeoLoop outer2 = new LinkedGeo.LinkedGeoLoop(); Assert.NotNull(outer2); createLinkedLoop(ref outer2, verts2.ToList(), 3); LinkedGeo.LinkedGeoPolygon polygon = new LinkedGeo.LinkedGeoPolygon(); LinkedGeo.addLinkedLoop(ref polygon, ref outer1); LinkedGeo.LinkedGeoPolygon next = LinkedGeo.addNewLinkedPolygon(ref polygon); LinkedGeo.addLinkedLoop(ref next, ref outer2); // Should be a no-op int result = LinkedGeo.normalizeMultiPolygon(ref polygon); Assert.True(result == LinkedGeo.NORMALIZATION_ERR_MULTIPLE_POLYGONS, "Expected error code returned"); Assert.True(LinkedGeo.countLinkedPolygons(ref polygon) == 2, "Polygon count correct"); Assert.True(LinkedGeo.countLinkedLoops(ref polygon) == 1, "Loop count on first polygon correct"); Assert.True(polygon.first == outer1, "Got expected outer loop"); Assert.True(LinkedGeo.countLinkedLoops(ref polygon.next) == 1, "Loop count on second polygon correct"); Assert.True(polygon.next.first == outer2, "Got expected outer loop"); }
public void createLinkedGeo() { LinkedGeo.LinkedGeoPolygon polygon = new LinkedGeo.LinkedGeoPolygon(); LinkedGeo.LinkedGeoLoop loop = new LinkedGeo.LinkedGeoLoop(); LinkedGeo.LinkedGeoCoord coord = new LinkedGeo.LinkedGeoCoord(); loop = LinkedGeo.addNewLinkedLoop(ref polygon); Assert.True(loop != null, "Loop created"); coord = LinkedGeo.addLinkedCoord(ref loop, ref vertex1); Assert.True(coord != null, "Coord created"); coord = LinkedGeo.addLinkedCoord(ref loop, ref vertex2); Assert.True(coord != null, "Coord created"); coord = LinkedGeo.addLinkedCoord(ref loop, ref vertex3); Assert.True(coord != null, "Coord created"); loop = LinkedGeo.addNewLinkedLoop(ref polygon); Assert.True(loop != null, "Loop createed"); coord = LinkedGeo.addLinkedCoord(ref loop, ref vertex2); Assert.True(coord != null, "Coord created"); coord = LinkedGeo.addLinkedCoord(ref loop, ref vertex4); Assert.True(coord != null, "Coord created"); Assert.True(LinkedGeo.countLinkedPolygons(ref polygon) == 1, "Polygon count correct"); Assert.True(LinkedGeo.countLinkedLoops(ref polygon) == 2, "Loop count correct"); Assert.True(LinkedGeo.countLinkedCoords(ref polygon.first) == 3, "Coord count 1 correct"); Assert.True(LinkedGeo.countLinkedCoords(ref polygon.last) == 2, "Coord count 2 correct"); LinkedGeo.LinkedGeoPolygon nextPolygon = LinkedGeo.addNewLinkedPolygon(ref polygon); Assert.True(nextPolygon != null, "polygon created"); Assert.True(LinkedGeo.countLinkedPolygons(ref polygon) == 2, "Polygon count correct"); LinkedGeo.destroyLinkedPolygon(ref polygon); polygon = null; }