ArcObjects Library Reference (Geometry)  

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.

[Visual Basic .NET]
Public Sub DensifyByAngle ( _
    ByVal maxSegmentLength As Double, _
    ByVal maxAngleDeviation As Double _
)
[C#]
public void DensifyByAngle (
    double maxSegmentLength,
    double maxAngleDeviation
);
[C++]
HRESULT DensifyByAngle(
  double maxSegmentLength,
  double maxAngleDeviation
);
[C++]

Parameters

maxSegmentLength   maxSegmentLength is a parameter of type double maxAngleDeviation   maxAngleDeviation is a parameter of type double

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

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.

 

See Also

IPolycurve2 Interface