public void CanGetInteriorVerticesFrom3PointLine() { var polyLine3 = GeometryFactory.CreatePolyline( new[] { new WKSPointZ { X = 100, Y = 1000, Z = 10 }, new WKSPointZ { X = 200, Y = 2000, Z = 20 }, new WKSPointZ { X = 300, Y = 3000, Z = 30 } }, null); var points = (IPointCollection)GeometryComponentUtils.GetGeometryComponent( polyLine3, GeometryComponent.InteriorVertices); Assert.IsNotNull(points); Assert.AreEqual(1, points.PointCount); Assert.AreEqual(200, points.Point[0].X); Assert.AreEqual(2000, points.Point[0].Y); Assert.AreEqual(20, points.Point[0].Z); }
private static void AssertEmpty(GeometryComponent geometryComponent, IGeometry geometry) { var component = GeometryComponentUtils.GetGeometryComponent(geometry, geometryComponent); Assert.NotNull(component); Assert.IsTrue(component.IsEmpty); }
public static int ReportIntersections( [NotNull] IRow row1, int tableIndex1, [NotNull] IRow row2, int tableIndex2, [NotNull] IErrorReporting errorReporting, [CanBeNull] IssueCode issueCode, [CanBeNull] IValidRelationConstraint validRelationConstraint, bool reportIndividualParts, [CanBeNull] GeometryConstraint validIntersectionGeometryConstraint = null, GeometryComponent geomComponent1 = GeometryComponent.EntireGeometry, GeometryComponent geomComponent2 = GeometryComponent.EntireGeometry) { Assert.ArgumentNotNull(row1, nameof(row1)); Assert.ArgumentNotNull(row2, nameof(row2)); Assert.ArgumentNotNull(errorReporting, nameof(errorReporting)); if (row1 == row2) { return(_noError); } string errorDescription; if (HasFulfilledConstraint(row1, tableIndex1, row2, tableIndex2, validRelationConstraint, "Features intersect", out errorDescription)) { return(_noError); } IGeometry shape1 = ((IFeature)row1).Shape; IGeometry shape2 = ((IFeature)row2).Shape; var g1 = GeometryComponentUtils.GetGeometryComponent(shape1, geomComponent1); var g2 = GeometryComponentUtils.GetGeometryComponent(shape2, geomComponent2); var errorCount = 0; if (g1 != null && g2 != null) { foreach (IGeometry errorGeometry in IntersectionUtils.GetAllIntersections(g1, g2)) { if (validIntersectionGeometryConstraint == null || !validIntersectionGeometryConstraint.IsFulfilled(errorGeometry)) { errorCount += errorReporting.Report(errorDescription, errorGeometry, issueCode, reportIndividualParts, row1, row2); } } } return(errorCount); }
public void CanGetInteriorVerticesFrom2PointLine() { var polyLine3 = GeometryFactory.CreatePolyline( new[] { new WKSPointZ { X = 100, Y = 1000, Z = 10 }, new WKSPointZ { X = 200, Y = 2000, Z = 20 } }, null); var points = GeometryComponentUtils.GetGeometryComponent( polyLine3, GeometryComponent.InteriorVertices); Assert.IsNotNull(points); Assert.IsTrue(points.IsEmpty); }