IPath Interface

Provides access to members that identify a path and define its behavior.

Description

A Path is a connected, continuous sequence of Segments. Except for the first and last Segments in the Path, each segment shares its FromPoint with the ToPoint of the previous Segment, and shares its ToPoint with the FromPoint of the following Segment.

Members

Name Description
Read-only property Dimension The topological dimension of this geometry.
Read-only property Envelope Creates a copy of this geometry's envelope and returns it.
Read/write property FromPoint The 'from' point of the curve.
Method Generalize Generalizes this path using the Douglas-Peucker algorithm.
Read-only property GeometryType The type of this geometry.
Method GeoNormalize Shifts longitudes, if need be, into a continuous range of 360 degrees.
Method GeoNormalizeFromLongitude Normalizes longitudes into a continuous range containing the longitude. This method is obsolete.
Method GetSubcurve Extracts a portion of this curve into a new curve.
Read-only property IsClosed Indicates if 'from' and 'to' points (of each part) are identical.
Read-only property IsEmpty Indicates whether this geometry contains any points.
Read-only property Length The length of the curve.
Method Project Projects this geometry into a new spatial reference.
Method QueryChordLengthTangents Returns tangent vectors (relative to corresponding endpoint) at both sides of a Bezier end point; and whether they have been set by user or by smoothing process.
Method QueryEnvelope Copies this geometry's envelope properties into the specified envelope.
Method QueryFromPoint Copies this curve's 'from' point to the input point.
Method QueryNormal Constructs a line normal to a curve from a point at a specified distance along the curve.
Method QueryPoint Copies to outPoint the properties of a point on the curve at a specified distance from the beginning of the curve.
Method QueryPointAndDistance Finds the point on the curve closest to inPoint, then copies that point to outPoint; optionally calculates related items.
Method QueryTangent Constructs a line tangent to a curve from a point at a specified distance along the curve.
Method QueryToPoint Copies the curve's 'to' point into the input point.
Method ReverseOrientation Reverses the parameterization of the curve ('from' point becomes 'to' point, first segment becomes last segment, etc).
Method SetChordLengthTangents Sets tangent vectors (relative to corresponding endpoint) at both sides of a Bezier end point; if either is Nothing, they will be set by smoothing process.
Method SetEmpty Removes all points from this geometry.
Method Smooth Converts this path into a smooth approximation of itself that contains only Bezier curve segments.
Method SmoothLocal Replaces up to four segments (two on each of the specified vertex index) with bezier curves.
Method SnapToSpatialReference Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system.
Read/write property SpatialReference The spatial reference associated with this geometry.
Read/write property ToPoint The 'to' point of the curve.

IPath.Generalize Method

Generalizes this path using the Douglas-Peucker algorithm.

Public Sub Generalize ( _
    ByVal maxAllowableOffset As Double _
)
public void Generalize (
    double maxAllowableOffset
);

Description

Generalizes the Path into a generalized collection of Line segments. Generalize performs a Douglas-Poiker Generalization algorithm with a specified maximum offset tolerance given as input. For Line segments, the Generalized output is a subset of the original input vertices. For non-Linear segments, the Generalized output contains points along all parts of the curve, not necessarily only the vertices.

Remarks

For a path with non-linear segments, the output curve may contain more vertices than the input curve, but all output segments will be linear.

IPath Generalize Example

IPath.QueryChordLengthTangents Method

Returns tangent vectors (relative to corresponding endpoint) at both sides of a Bezier end point; and whether they have been set by user or by smoothing process.

Public Sub QueryChordLengthTangents ( _
    ByVal pointIndex As Integer, _
    ByVal prevTangent As IPoint, _
    ByRef prevSetByUser As Boolean, _
    ByVal nextTangent As IPoint, _
    ByRef nextSetByUser As Boolean _
)
public void QueryChordLengthTangents (
    int pointIndex,
    IPoint prevTangent,
    ref bool prevSetByUser,
    ref IPoint nextTangent,
    ref bool nextSetByUser
);

IPath.SetChordLengthTangents Method

Sets tangent vectors (relative to corresponding endpoint) at both sides of a Bezier end point; if either is Nothing, they will be set by smoothing process.

Public Sub SetChordLengthTangents ( _
    ByVal pointIndex As Integer, _
    ByVal prevTangent As IPoint, _
    ByVal nextTangent As IPoint _
)
public void SetChordLengthTangents (
    int pointIndex,
    IPoint prevTangent,
    IPoint nextTangent
);

IPath.Smooth Method

Converts this path into a smooth approximation of itself that contains only Bezier curve segments.

Public Sub Smooth ( _
    ByVal maxAllowableOffset As Double _
)
public void Smooth (
    double maxAllowableOffset
);

Description

Converts the Path into a Path containing only BezierCurve segments. The created BezierCurve path is a Generalization of the original path that has a maximum deviation of maxDeviation from the original path. If maxDeviation = 0, all of the original vertices are maintained. At each vertex, the adjoining BezierCurves have complementary tangents which creates a continuous (smooth) transition between segments.

Remarks

IPath Smooth Example

IPath.SmoothLocal Method

Replaces up to four segments (two on each of the specified vertex index) with bezier curves.

Public Sub SmoothLocal ( _
    ByVal vertexIndex As Integer _
)
public void SmoothLocal (
    int vertexIndex
);

Description

Converts segments containing the indexed vertex into BezierCurves and performs a smoothing operation only at the two segments on either side of the input vertex. The created BezierCurves have complementary tangents at the indexed vertex.

Remarks

IPath SmoothLocal Example

Inherited Interfaces

Interfaces Description
ICurve Provides access to properties and methods of all 1 dimensional curves (polylines, segments, boundaries of polygons, etc.).
IGeometry Provides access to members that describe properties and behavior of all geometric objects.

Classes that implement IPath

Classes Description
Path A sequence of connected segments.
Ring An area bounded by one, closed sequence of connected segments; optionally has measure, height and ID attributes at each vertex.

Remarks

The Segments composing the Path do not need to be homogenous in type. A Ring is a Path that starts and ends on the same point and defines an area. Paths are the part types in Polylines.

Valid Paths

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.