# IEnumCurve2 Interface

## Members

Name Description Clone Returns a copy of this enumerator positioned at the same segment. CurveDistance The current distance from the start of the curve. GetSubcurve Extracts a portion of this curve into a new curve. Next Moves iterator to a specified distance along the curve. PartIndex The current part index. QueryPoint Copies a location on this curve into pointOnCurve. AsRatio is true when fromDistance is normalized to the interval [0..1]. QuerySubcurve Copies a portion of this curve into an existing subcurve. AsRatio is true when fromDistance and toDistance are normalized to the interval [0..1]. Reset Resets the iterator to the start of the curve. Segment The segment covering the current distance of this curve iterator. SegmentDistance The distance within the current segment of the current distance of this curve iterator. SegmentIndex The current segment index within the current part. StopOptions Stop options for the distance iterator. StopReason The reason for the current position of the distance iterator.

### IEnumCurve2.QueryPoint Method

Copies a location on this curve into pointOnCurve. AsRatio is true when fromDistance is normalized to the interval [0..1].

``````Public Sub QueryPoint ( _
ByVal fromDistance As Double, _
ByVal asRatio As Boolean, _
ByVal pointOnCurve As IPoint _
)
``````
``````public void QueryPoint (
double fromDistance,
bool asRatio,
IPoint pointOnCurve
);
``````

#### Description

The QueryPoint method returns a point object located on the input curve at the fromDistance calculated along the curve. This method can be used to quickly retrieve a large sequence of evenly or unevenly spaced points along a curve. This could be used to place symbols along a curve, for example railroads.

#### Remarks

Note: Gaps between parts are ignored in distance computations.

Parameters description:

fromDistance: Input Double. Input distance that determines where along the point should be created. The value of that parameter should be in map unit unless asRatio is true.asRatio: Input Boolean. The asRatio determines if the input distances should be interpreted as map unit asRatio = false distance or parametric distance asRatio = True (0 = distance of 0, 1 = full length of the curve).

Note: The output geometry must be co-created prior to the query. The output geometry is not co-created by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.

### IEnumCurve2.QuerySubcurve Method

Copies a portion of this curve into an existing subcurve. AsRatio is true when fromDistance and toDistance are normalized to the interval [0..1].

``````Public Sub QuerySubcurve ( _
ByVal fromDistance As Double, _
ByVal toDistance As Double, _
ByVal asRatio As Boolean, _
ByVal subcurve As ICurve _
)
``````
``````public void QuerySubcurve (
double fromDistance,
double toDistance,
bool asRatio,
ICurve subcurve
);
``````

#### Description

The QuerySubCurve method returns a polyline object corresponding to a portion of the input curve.

#### Remarks

Note: Gaps between parts are ignored in distance computations.

Parameters description:

fromDistance: Input Double. Input distance that determines where the subcurve should start. The value of that parameter should be in map unit unless asRatio is true.toDistance: Input Double. Input distance that determines where the subcurve should stop. The value of that parameter should be in map unit unless asRatio is true.asRatio: Input Boolean. The asRatio determines if the input distances should be interpreted as map unit asRatio = false distance or parametric distance asRatio = True (0 = distance of 0, 1 = full length of the curve).

subcurve: Output polyline object. It contains the output subcurve.

Note: The output geometry must be co-created prior to the query. The output geometry is not co-created by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.

## Inherited Interfaces

Interfaces Description
IEnumCurve Provides access to members that allow efficient construction of sequential subcurves along a polyline or polygon.

## Classes that implement IEnumCurve2

Classes Description