using System; using GeoAPI.Operations.Buffer; namespace GeoAPI.Geometries { /// /// /// public interface IGeometry : ICloneable, IComparable, IComparable, IEquatable { IGeometryFactory Factory { get; } IPrecisionModel PrecisionModel { get; } int SRID { get; set; } string GeometryType { get; } /// /// A ISurface method moved in IGeometry /// double Area { get; } /// /// A ICurve method moved in IGeometry /// double Length { get; } /// /// A IGeometryCollection method moved in IGeometry /// int NumGeometries { get; } /// /// A ILineString method moved to IGeometry /// int NumPoints { get; } IGeometry Boundary { get; set; } Dimensions BoundaryDimension { get; set; } /// /// A ISurface method moved in IGeometry /// IPoint Centroid { get; } ICoordinate Coordinate { get; } ICoordinate[] Coordinates { get; } Dimensions Dimension { get; set; } IGeometry Envelope { get; } IEnvelope EnvelopeInternal { get; } IPoint InteriorPoint { get; } /// /// A ISurface method moved in IGeometry /// IPoint PointOnSurface { get; } object UserData { get; set; } bool IsEmpty { get; } bool IsRectangle { get; } bool IsSimple { get; } bool IsValid { get; } /// /// A IGeometryCollection method moved in IGeometry /// /// /// IGeometry GetGeometryN(int n); void Normalize(); byte[] AsBinary(); string AsText(); IGeometry ConvexHull(); IntersectionMatrix Relate(IGeometry g); IGeometry Difference(IGeometry other); IGeometry SymmetricDifference(IGeometry other); IGeometry Buffer(double distance); IGeometry Buffer(double distance, int quadrantSegments); IGeometry Buffer(double distance, BufferStyle endCapStyle); IGeometry Buffer(double distance, int quadrantSegments, BufferStyle endCapStyle); IGeometry Intersection(IGeometry other); IGeometry Union(IGeometry other); bool EqualsExact(IGeometry other); bool EqualsExact(IGeometry other, double tolerance); bool Within(IGeometry g); bool Contains(IGeometry g); bool IsWithinDistance(IGeometry geom, double distance); bool CoveredBy(IGeometry g); bool Covers(IGeometry g); bool Crosses(IGeometry g); bool Intersects(IGeometry g); bool Overlaps(IGeometry g); bool Relate(IGeometry g, string intersectionPattern); bool Touches(IGeometry g); bool Disjoint(IGeometry g); double Distance(IGeometry g); void Apply(ICoordinateFilter filter); void Apply(IGeometryFilter filter); void Apply(IGeometryComponentFilter filter); void GeometryChanged(); void GeometryChangedAction(); } }