com.esri.arcgis.geometry
Interface ICurve3D

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

public interface ICurve3D
extends Serializable

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

Description

This interface is new at ArcGIS 9.3.

Returns the 3D length of a curve, or the sum of the distances between adjacent XYZ points along the curve. Queries a point at a specified distance from the beginning of the curve, finds a point on the curve closest to the specified input point, and extracts a portion of the curve into a new curve. In contrast to ICurve, Z values are taken into account when performing length calculations and distance queries.

Remarks

These methods are intended to be called against top-level geometries only (Polyline, Polygon). To call a method against a Segment/Path or Ring, first add the part to a Polyline or Polygon container, respectively, and then call the appropriate method against the container.

Product Availability

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


Method Summary
 double getLength3D()
          The length of the curve.
 void getSubcurve3D(double fromDistance, double toDistance, boolean bAsRatio, ICurve3D[] ppOutSubCurve)
          Extracts a portion of this curve into a new curve.
 boolean isClosed3D()
          Indicates if 'from' and 'to' points (of each part) are identical.
 void queryPoint3D(int extension, double distanceAlongCurve, boolean bAsRatio, IPoint pOutPoint)
          Copies to outPoint the properties of a point on the curve at a specified distance from the beginning of the curve.
 void queryPointAndDistance3D(int extension, IPoint pInPoint, boolean bAsRatio, IPoint pOutPoint, double[] pDistanceAlongCurve, double[] pDistanceFromCurve)
          Finds the point on the curve closest to inPoint, then copies that point to outPoint; optionally calculates related items.
 

Method Detail

getLength3D

double getLength3D()
                   throws IOException,
                          AutomationException
The length of the curve.

Description

Returns the 3D length of the entire curve. The length of the curve is the sum of the lengths along each parameterized Segment between vertices along the curve.

Product Availability

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

Returns:
The pLength
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryPoint3D

void queryPoint3D(int extension,
                  double distanceAlongCurve,
                  boolean bAsRatio,
                  IPoint pOutPoint)
                  throws IOException,
                         AutomationException
Copies to outPoint the properties of a point on the curve at a specified distance from the beginning of the curve.

Description

Returns the Point at a given 3D distance along the curve or extended curve. If the distance is less than the length of the curve, then the returned point is the point at that distance along the curve. If the distance is less than zero, or greater than the length of the curve, then the returned point is on the curve specified by the extension method. The distance may be specified as a fixed unit of measure or a ratio of the 3D length of the curve.

Product Availability

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

Parameters:
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
distanceAlongCurve - The distanceAlongCurve (in)
bAsRatio - The bAsRatio (in)
pOutPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSubcurve3D

void getSubcurve3D(double fromDistance,
                   double toDistance,
                   boolean bAsRatio,
                   ICurve3D[] ppOutSubCurve)
                   throws IOException,
                          AutomationException
Extracts a portion of this curve into a new curve.

Description

Gets the subcurve between the specified points along the original curve and creates a new curve. The elements in the new subcurve are the same type and have the same properties as the elements of the original curve.

Product Availability

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

Parameters:
fromDistance - The fromDistance (in)
toDistance - The toDistance (in)
bAsRatio - The bAsRatio (in)
ppOutSubCurve - A reference to a com.esri.arcgis.geometry.ICurve3D (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryPointAndDistance3D

void queryPointAndDistance3D(int extension,
                             IPoint pInPoint,
                             boolean bAsRatio,
                             IPoint pOutPoint,
                             double[] pDistanceAlongCurve,
                             double[] pDistanceFromCurve)
                             throws IOException,
                                    AutomationException
Finds the point on the curve closest to inPoint, then copies that point to outPoint; optionally calculates related items.

Description

Finds the Point on the specified extended curve nearest to the input point and the distance between those points. Also returns information about the side of the curve the input point is on as well as the distance along the curve that the nearest point occurs. The operation is performed in 3D space.

Product Availability

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

Parameters:
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
pInPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
bAsRatio - The bAsRatio (in)
pOutPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
pDistanceAlongCurve - The pDistanceAlongCurve (in/out: use single element array)
pDistanceFromCurve - The pDistanceFromCurve (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isClosed3D

boolean isClosed3D()
                   throws IOException,
                          AutomationException
Indicates if 'from' and 'to' points (of each part) are identical.

Product Availability

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

Returns:
The isClosed
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.