public void Execute(IPlatformFactory factory, ITestLogger logger) { var build = new GeomBuild(); MgLinearRing geom1 = build.CreateLinearRing(1.0); MgLinearRing geom2 = build.CreateLinearRing(5.0); MgLinearRing geom3 = build.CreateLinearRing(1.0); MgLinearRingCollection coll = new MgLinearRingCollection(); coll.Add(geom1); coll.Add(geom2); coll.Add(geom3); Assert.AreEqual(3, coll.Count); Assert.IsTrue(geom1.Envelope().Contains(coll[0].Envelope())); Assert.IsTrue(coll[0].Envelope().Contains(coll[2].Envelope())); Assert.IsFalse(coll[0].Envelope().Contains(coll[1].Envelope())); coll[0] = coll[1]; Assert.IsTrue(coll[0].Envelope().Contains(coll[1].Envelope())); double width = 0.0; foreach (MgLinearRing geom in coll) { width += geom.Envelope().GetWidth(); } Assert.AreEqual(geom1.Envelope().GetWidth() * 3.0, width); }
public MgPolygon CreatePolygon(double offset) { // OuterRing MgCoordinate oCoord1 = factory.CreateCoordinateXY(offset + 0.0, 0.0); MgCoordinate oCoord2 = factory.CreateCoordinateXY(offset + 5.0, 0.0); MgCoordinate oCoord3 = factory.CreateCoordinateXY(offset + 5.0, 5.0); MgCoordinate oCoord4 = factory.CreateCoordinateXY(offset + 0.0, 5.0); MgCoordinate oCoord5 = factory.CreateCoordinateXY(offset + 0.0, 0.0); MgCoordinateCollection outerRingCoord = new MgCoordinateCollection(); outerRingCoord.Add(oCoord1); outerRingCoord.Add(oCoord2); outerRingCoord.Add(oCoord3); outerRingCoord.Add(oCoord4); outerRingCoord.Add(oCoord5); // Inner Ring1 MgCoordinate i1Coord1 = factory.CreateCoordinateXY(offset + 1.0, 1.0); MgCoordinate i1Coord2 = factory.CreateCoordinateXY(offset + 2.0, 1.0); MgCoordinate i1Coord3 = factory.CreateCoordinateXY(offset + 2.0, 2.0); MgCoordinate i1Coord4 = factory.CreateCoordinateXY(offset + 1.0, 1.0); MgCoordinateCollection inner1RingCoord = new MgCoordinateCollection(); inner1RingCoord.Add(i1Coord1); inner1RingCoord.Add(i1Coord2); inner1RingCoord.Add(i1Coord3); inner1RingCoord.Add(i1Coord4); // Inner Ring2 MgCoordinate i2Coord1 = factory.CreateCoordinateXY(offset + 3.0, 3.0); MgCoordinate i2Coord2 = factory.CreateCoordinateXY(offset + 4.0, 3.0); MgCoordinate i2Coord3 = factory.CreateCoordinateXY(offset + 4.0, 4.0); MgCoordinate i2Coord4 = factory.CreateCoordinateXY(offset + 3.0, 3.0); MgCoordinateCollection inner2RingCoord = new MgCoordinateCollection(); inner2RingCoord.Add(i2Coord1); inner2RingCoord.Add(i2Coord2); inner2RingCoord.Add(i2Coord3); inner2RingCoord.Add(i2Coord4); MgLinearRing extRing = factory.CreateLinearRing(outerRingCoord); MgLinearRing intRing1 = factory.CreateLinearRing(inner1RingCoord); MgLinearRing intRing2 = factory.CreateLinearRing(inner2RingCoord); MgLinearRingCollection intRings = new MgLinearRingCollection(); intRings.Add(intRing1); intRings.Add(intRing2); return(factory.CreatePolygon(extRing, intRings)); }
public void LinearRingCollection() { MgLinearRing geom1 = build.CreateLinearRing(1.0); MgLinearRing geom2 = build.CreateLinearRing(5.0); MgLinearRing geom3 = build.CreateLinearRing(1.0); MgLinearRingCollection coll = new MgLinearRingCollection(); coll.Add(geom1); coll.Add(geom2); coll.Add(geom3); Assert.AreEqual(3, coll.Count); Assert.IsTrue(geom1.Envelope().Contains(coll[0].Envelope())); Assert.IsTrue(coll[0].Envelope().Contains(coll[2].Envelope())); Assert.IsFalse(coll[0].Envelope().Contains(coll[1].Envelope())); coll[0] = coll[1]; Assert.IsTrue(coll[0].Envelope().Contains(coll[1].Envelope())); double width = 0.0; foreach (MgLinearRing geom in coll) { width += geom.Envelope().GetWidth(); } Assert.AreEqual(geom1.Envelope().GetWidth() * 3.0, width); }
public MgPolygon CreatePolygon(double offset) { // OuterRing MgCoordinate oCoord1 = factory.CreateCoordinateXY(offset + 0.0, 0.0); MgCoordinate oCoord2 = factory.CreateCoordinateXY(offset + 5.0, 0.0); MgCoordinate oCoord3 = factory.CreateCoordinateXY(offset + 5.0, 5.0); MgCoordinate oCoord4 = factory.CreateCoordinateXY(offset + 0.0, 5.0); MgCoordinate oCoord5 = factory.CreateCoordinateXY(offset + 0.0, 0.0); MgCoordinateCollection outerRingCoord = new MgCoordinateCollection(); outerRingCoord.Add(oCoord1); outerRingCoord.Add(oCoord2); outerRingCoord.Add(oCoord3); outerRingCoord.Add(oCoord4); outerRingCoord.Add(oCoord5); // Inner Ring1 MgCoordinate i1Coord1 = factory.CreateCoordinateXY(offset + 1.0, 1.0); MgCoordinate i1Coord2 = factory.CreateCoordinateXY(offset + 2.0, 1.0); MgCoordinate i1Coord3 = factory.CreateCoordinateXY(offset + 2.0, 2.0); MgCoordinate i1Coord4 = factory.CreateCoordinateXY(offset + 1.0, 1.0); MgCoordinateCollection inner1RingCoord = new MgCoordinateCollection(); inner1RingCoord.Add(i1Coord1); inner1RingCoord.Add(i1Coord2); inner1RingCoord.Add(i1Coord3); inner1RingCoord.Add(i1Coord4); // Inner Ring2 MgCoordinate i2Coord1 = factory.CreateCoordinateXY(offset + 3.0, 3.0); MgCoordinate i2Coord2 = factory.CreateCoordinateXY(offset + 4.0, 3.0); MgCoordinate i2Coord3 = factory.CreateCoordinateXY(offset + 4.0, 4.0); MgCoordinate i2Coord4 = factory.CreateCoordinateXY(offset + 3.0, 3.0); MgCoordinateCollection inner2RingCoord = new MgCoordinateCollection(); inner2RingCoord.Add(i2Coord1); inner2RingCoord.Add(i2Coord2); inner2RingCoord.Add(i2Coord3); inner2RingCoord.Add(i2Coord4); MgLinearRing extRing = factory.CreateLinearRing(outerRingCoord); MgLinearRing intRing1 = factory.CreateLinearRing(inner1RingCoord); MgLinearRing intRing2 = factory.CreateLinearRing(inner2RingCoord); MgLinearRingCollection intRings = new MgLinearRingCollection(); intRings.Add(intRing1); intRings.Add(intRing2); return factory.CreatePolygon(extRing, intRings); }