Provides access to members that extend IPolycurve with additional splitting and densification methods.
Members
Name | Description | |
---|---|---|
Densify | Converts this polycurve into a piecewise linear approximation of itself. | |
DensifyByAngle | Converts this polycurve into a piecewise linear approximation of itself. Vertices are introduced at points where the included angle between tangents at those point is maxAngleDeviation. | |
Dimension | The topological dimension of this geometry. | |
Envelope | Creates a copy of this geometry's envelope and returns it. | |
FromPoint | The 'from' point of the curve. | |
Generalize | Generalizes this polycurve using the Douglas-Peucker algorithm. | |
GeometryType | The type of this geometry. | |
GeoNormalize | Shifts longitudes, if need be, into a continuous range of 360 degrees. | |
GeoNormalizeFromLongitude | Normalizes longitudes into a continuous range containing the longitude. This method is obsolete. | |
GetSubcurve | Extracts a portion of this curve into a new curve. | |
IsClosed | Indicates if 'from' and 'to' points (of each part) are identical. | |
IsEmpty | Indicates whether this geometry contains any points. | |
Length | The length of the curve. | |
Project | Projects this geometry into a new spatial reference. | |
QueryEnvelope | Copies this geometry's envelope properties into the specified envelope. | |
QueryFromPoint | Copies this curve's 'from' point to the input point. | |
QueryNormal | Constructs a line normal to a curve from a point at a specified distance along the curve. | |
QueryPoint | Copies to outPoint the properties of a point on the curve at a specified distance from the beginning of the curve. | |
QueryPointAndDistance | Finds the point on the curve closest to inPoint, then copies that point to outPoint; optionally calculates related items. | |
QueryTangent | Constructs a line tangent to a curve from a point at a specified distance along the curve. | |
QueryToPoint | Copies the curve's 'to' point into the input point. | |
ReverseOrientation | Reverses the parameterization of the curve ('from' point becomes 'to' point, first segment becomes last segment, etc). | |
SetEmpty | Removes all points from this geometry. | |
Smooth | Converts this curve into a smooth curve containing only Bezier curve segments. | |
SnapToSpatialReference | Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system. | |
SpatialReference | The spatial reference associated with this geometry. | |
SplitAtDistance | Introduces a new vertex into this polyline at a specified distance from the beginning of the polyline. | |
SplitAtDistances | Introduces new vertices into this polyline at specified distances from the beginning of the polyline. | |
SplitAtPoint | Introduces a new vertex into this polyline at the location on it closest to the input point. | |
SplitAtPoints | Introduces new vertices into this polyline at the locations on it closest to the input points. Do not consider points farther than cutoffDistance from the polyline. | |
ToPoint | The 'to' point of the curve. | |
Weed | Generalizes using a small tolerance based upon either the system units of the geometry's spatial reference, or the geometry's bounding box. |
IPolycurve2.DensifyByAngle Method
Converts this polycurve into a piecewise linear approximation of itself. Vertices are introduced at points where the included angle between tangents at those point is maxAngleDeviation.
Public Sub DensifyByAngle ( _
ByVal maxSegmentLength As Double, _
ByVal maxAngleDeviation As Double _
)
public void DensifyByAngle (
double maxSegmentLength,
double maxAngleDeviation
);
Description
Converts a Polycurve into a Polycurve composed of Line segments with length maxSegmentLength (or less) that are within maxDeviation of the original polycurve. If maxDeviation = 0, maxDeviation is ignored and Line segments with length maxSegmentLength are constructed with vertices located on the original curve. All of the segments in the final polyline will be Lines. The maxDeviation is an angle in radians.
Remarks
If the maxSegmentLength is negative IGeometryEnvironment::AutoDensifyTolerance is used. IGeometryEnvironment::AutoDensifyTolerance default value is 0. This value can be explicitly set via IGeometryEnvironment::AutoDensifyTolerance.
If the maxDeviation is negative IGeometryEnvironment::AngularAutoDensifyTolerance is used. The default value is Pi / 18.0. That value can be explicitly set via IGeometryEnvironment::AngularAutoDensifyTolerance.
In order to avoid the creation of too many segments, the geometry system uses a maxDeviation = 2*XYresolution * 100 (or 2/XYUnits * 100) as the default value if maxSegmentLength is 0 and the maxDeviation is 0.
The maximum number of segments that can be produced is 2000, an external user cannot modify that value.
NOTE: The default values given in this topic are subject to change without notice. If you have specific values that you want to be maintained, we recommend using the methods on IGeometryEnvironment to set them explicitly.
The start and end points are always honored and remain the same as for the original feature.
IPolycurve2.SplitAtDistances Method
Introduces new vertices into this polyline at specified distances from the beginning of the polyline.
Public Function SplitAtDistances ( _
ByVal distanceCount As Integer, _
ByRef distances As Double, _
ByVal asRatios As Boolean, _
ByVal createParts As Boolean _
) As IEnumSplitPoint
public IEnumSplitPoint SplitAtDistances (
int distanceCount,
ref double distances,
ref bool asRatios,
ref bool createParts
);
When using C# you must use the IGeometryBridge interface to call this method.
When using VBNET you must use the IGeometryBridge interface to call this method.
IPolycurve2.SplitAtPoints Method
Introduces new vertices into this polyline at the locations on it closest to the input points. Do not consider points farther than cutoffDistance from the polyline.
Public Function SplitAtPoints ( _
ByVal splitPoints As IEnumVertex, _
ByVal projectOnto As Boolean, _
ByVal createParts As Boolean, _
ByVal cutoffDistance As Double _
) As IEnumSplitPoint
public IEnumSplitPoint SplitAtPoints (
IEnumVertex splitPoints,
bool projectOnto,
bool createParts,
double cutoffDistance
);
Description
The SplitAtPoints method allows splitting a polycurve (polygon or polyline) in sections using a set of points.
Remarks
Parameters description:
splitPoints: Input IEnumVertex object. It represents the points to be used to split the polycurve.
projectOnto: The projectOnto is an input parameter that determines if the output point will be located on the polycurve. If projectOnto is true and the input point is not already on the polycurve then the point is projected on the curve. If false, the polycurve is split and modified to pass trough the point.
createParts: The createParts is an input parameter that determines if parts (paths) have to be created. createPart must be FALSE for polygons. For polylines, if createPart is TRUE, the part on which the new split point falls is split into two parts with the newly added vertex serving as the end of the first part and the beginning of the second.
cutoffDistance: Input Double that represents the distance from the curve from where points are not considered anymore has being valid split points.
Note: The IEnumSplitPoint contains the input points.
Inherited Interfaces
Interfaces | Description |
---|---|
IPolycurve | Provides access to members that define operations common to polylines and the boundaries of polygons. |
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 IPolycurve2
Classes | Description |
---|---|
Polygon | A collection of rings ordered by their containment relationship; optionally has measure, height and ID attributes. |
Polyline | An ordered collection of paths; optionally has measure, height and ID attributes. |