com.esri.arcgis.geometry
Interface IPolycurve3D

All Superinterfaces:
Serializable
All Known Implementing Classes:
Polygon, Polyline

public interface IPolycurve3D
extends Serializable

Provides access to members that define operations common to polycurves with Zs.

Description

Provides methods allowing one to add vertices where they do not already exist (Densify), remove existing vertices based on the Douglas-Poiker algorithm (Generalize), and remove existing vertices based on a tolerance obtained from the system units of the geometry’s spatial reference or bounding box (Weed). In contrast to IPolycurve, Z values are taken into account when performing Densify, Generalize, and Weed operations.


Product Availability

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


Method Summary
 void densify3D(double maxSegmentLength, double maxDeviation)
          Converts this Polycurve into a piecewise linear approximation of itself.
 void generalize3D(double maxAllowableOffset)
          Generalizes this polycurve using the Douglas-Poiker algorithm.
 void weed3D(double maxAllowableOffsetFactor)
          Generalizes using a small tolerance based upon either the system units of the geometry's spatial reference, or the geometry's bounding box.
 

Method Detail

densify3D

void densify3D(double maxSegmentLength,
               double maxDeviation)
               throws IOException,
                      AutomationException
Converts this Polycurve into a piecewise linear approximation of itself.

Description

Converts Polycurve into a Polycurve composed of Line segments with 3D 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 laying on the original curve. All of the segments in the final polyline will be 3D Lines.

Product Availability

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

Parameters:
maxSegmentLength - The maxSegmentLength (in)
maxDeviation - The maxDeviation (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

generalize3D

void generalize3D(double maxAllowableOffset)
                  throws IOException,
                         AutomationException
Generalizes this polycurve using the Douglas-Poiker algorithm.

Description

Generalizes each part of a Polycurve into a generalized collection of Line segments. Generalize3D performs a Douglas-Poiker Generalization algorithm, extended to operate in 3D space, with a specified maximum offset tolerance, given in 3D, 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.

Product Availability

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

Parameters:
maxAllowableOffset - The maxAllowableOffset (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

weed3D

void weed3D(double maxAllowableOffsetFactor)
            throws IOException,
                   AutomationException
Generalizes using a small tolerance based upon either the system units of the geometry's spatial reference, or the geometry's bounding box.

Description

Weed generalizes each part of a Polycurve into a generalized collection of z aware Line segments. Weed performs a Douglas-Poiker Generalization algorithm, extended to operate in 3D space, with a specified multiple of the internal 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.

Product Availability

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

Parameters:
maxAllowableOffsetFactor - The maxAllowableOffsetFactor (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.