ISegment Interface

Provides access to members that identify a segment. A segment is a way of getting between two endpoints.

Members

Name Description
Method ConvertDistanceMeasureToRatio Converts the distance measure to a ratio of the total distance.
Method Densify Densify segment into the specified number of smaller segments. This method is intended for internal use only.
Read-only property Dimension The topological dimension of this geometry.
Read-only property Envelope Creates a copy of this geometry's envelope and returns it.
Method EnvelopeIntersection Finds intersections with clipping envelope; boundaryOverlap is ignored for non-linear segments.
Read/write property FromPoint The 'from' point of the curve.
Method GeographicShift Shift longitudes to the right of splitLongitude. This method is obsolete.
Read-only property GeometryType The type of this geometry.
Method GeoNormalize Shifts longitudes, if need be, into a continuous range of 360 degrees.
Method GeoNormalizeFromLongitude Normalizes longitudes into a continuous range containing the longitude. This method is obsolete.
Method GetDistanceAtVertexAttribute Gets the distance corresponding to the attribute value along the segment.
Method GetPointsAtVertexAttribute Gets the point at the location corresponding to the attribute value.
Method GetSubcurve Extracts a portion of this curve into a new curve.
Method GetSubSegmentBetweenVertexAttributes Gets the segment corresponding to the extent along the segment between the 'from' and 'to' attribute values.
Method GetVertexAttributeAtDistance Gets the attribute value corresponding to the distance along the segment.
Method HasVertexAttributes Returns two booleans telling if the segment as from attribute and to attribute values.
Method HorizontalIntersectionCount Returns the number of horizontal intersections.
Method InterpolateVertexAttributes Interpolates Z and M values at distanceAlongSegment and stores the results at point.
Read-only property IsClosed Indicates if 'from' and 'to' points (of each part) are identical.
Read-only property IsEmpty Indicates whether this geometry contains any points.
Read-only property Length The length of the curve.
Method MaxDistanceFromLine Returns the maximum distance from the line.
Method Project Projects this geometry into a new spatial reference.
Method PutAttributes Sets some attributes from this point and copies them to another point. Awareness is not considered.
Method PutVertexAttributes Sets the 'from' and the 'to' attribute values.
Method QueryAreaCorrection Queries the area correction value.
Method QueryAttributes Gets some attributes from this point and copies them to another point. Awareness is not considered.
Method QueryCentroidCorrection Queries the centroid correction value.
Method QueryCurvature Finds curvature and unit vector starting at point on segment and directed to embedded circle center.
Method QueryEnvelope Copies this geometry's envelope properties into the specified envelope.
Method QueryFromPoint Copies this curve's 'from' point to the input point.
Method QueryNormal Constructs a line normal to a curve from a point at a specified distance along the curve.
Method QueryPoint Copies to outPoint the properties of a point on the curve at a specified distance from the beginning of the curve.
Method QueryPointAndDistance Finds the point on the curve closest to inPoint, then copies that point to outPoint; optionally calculates related items.
Method QueryTangent Constructs a line tangent to a curve from a point at a specified distance along the curve.
Method QueryToPoint Copies the curve's 'to' point into the input point.
Method QueryVertexAttributes Gets the 'from' and the 'to' attribute values.
Method QueryWKSEnvelope Queries the WKS Envelope.
Method QueryWKSFromPoint Query the WKSPoint at the 'from' point.
Method QueryWKSToPoint Query the WKSPoint at the 'to' point.
Method ReturnTurnDirection Finds turn direction between two connected segments.
Method ReverseOrientation Reverses the parameterization of the curve ('from' point becomes 'to' point, first segment becomes last segment, etc).
Method SetEmpty Removes all points from this geometry.
Method SnapToSpatialReference Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system.
Read/write property SpatialReference The spatial reference associated with this geometry.
Method SplitAtDistance Split segment at specified distance.
Method SplitAtVertexAttribute Splits the segment in two segments at the location corresponding to the attribute value.
Method SplitDivideLength Divide segment into smaller segments of the specified length.
Method SynchronizeEmptyAttributes Synchronize Empty Attributes.
Read/write property ToPoint The 'to' point of the curve.
Read/write property VertexAttributeAware Indicates if the segment is aware of the specified attribute type.
Method VertexAttributeOn Indicates if attributeValue is located on this segment.

ISegment.ConvertDistanceMeasureToRatio Method

Converts the distance measure to a ratio of the total distance.

Public Sub ConvertDistanceMeasureToRatio ( _
    ByVal distanceMeasure As Double, _
    ByRef distanceRatio As Double _
)
public void ConvertDistanceMeasureToRatio (
    double distanceMeasure,
    ref double distanceRatio
);

ISegment.Densify Method

Densify segment into the specified number of smaller segments. This method is intended for internal use only.

Public Sub Densify ( _
    ByVal cInSlots As Integer, _
    ByVal maxDeviation As Double, _
    ByRef pcOutSegments As Integer, _
    ByRef segments As ILine _
)
public void Densify (
    int cInSlots,
    double maxDeviation,
    ref int pcOutSegments,
    ref ILine segments
);

Remarks

Densifying individual segments can be accomplished in client code by add the segment to a temporary polyline, then densifying the polyline using one of the methods on IPolycurve. Alternatively, the IGeometryBridge interface on the GeometryEnvironment object can be used.

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.

ISegment.EnvelopeIntersection Method

Finds intersections with clipping envelope; boundaryOverlap is ignored for non-linear segments.

Public Sub EnvelopeIntersection ( _
    ByVal intersectionEnvelope As IEnvelope, _
    ByVal boundaryOverlap As Boolean, _
    ByRef segmentParams As Double, _
    ByRef envelopeDistances As Double, _
    ByRef numIntersections As Integer, _
    ByRef outcode As Integer _
)
public void EnvelopeIntersection (
    IEnvelope intersectionEnvelope,
    bool boundaryOverlap,
    ref double segmentParams,
    ref double envelopeDistances,
    ref int numIntersections,
    ref int outcode
);

ISegment.GeographicShift Method

Shift longitudes to the right of splitLongitude. This method is obsolete.

Public Sub GeographicShift ( _
    ByVal splitLongitude As Double _
)
public void GeographicShift (
    double splitLongitude
);

ISegment.GetDistanceAtVertexAttribute Method

Gets the distance corresponding to the attribute value along the segment.

Public Function GetDistanceAtVertexAttribute ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByVal attributeValue As Double, _
    ByVal asRatio As Boolean _
) As Double
public double GetDistanceAtVertexAttribute (
    esriGeometryAttributes attributeType,
    double attributeValue,
    bool asRatio
);

ISegment.GetPointsAtVertexAttribute Method

Gets the point at the location corresponding to the attribute value.

Public Sub GetPointsAtVertexAttribute ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByVal attributeValue As Double, _
    ByVal lateralOffset As Double, _
    ByRef outPoints As IPointCollection _
)
public void GetPointsAtVertexAttribute (
    esriGeometryAttributes attributeType,
    double attributeValue,
    double lateralOffset,
    ref IPointCollection outPoints
);

ISegment.GetSubSegmentBetweenVertexAttributes Method

Gets the segment corresponding to the extent along the segment between the 'from' and 'to' attribute values.

Public Sub GetSubSegmentBetweenVertexAttributes ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByVal fromAttribute As Double, _
    ByVal toAttribute As Double, _
    ByRef outSegment As ISegment _
)
public void GetSubSegmentBetweenVertexAttributes (
    esriGeometryAttributes attributeType,
    double fromAttribute,
    double toAttribute,
    ref ISegment outSegment
);

ISegment.GetVertexAttributeAtDistance Method

Gets the attribute value corresponding to the distance along the segment.

Public Function GetVertexAttributeAtDistance ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByVal distance As Double, _
    ByVal asRatio As Boolean _
) As Double
public double GetVertexAttributeAtDistance (
    esriGeometryAttributes attributeType,
    double distance,
    bool asRatio
);

ISegment.HasVertexAttributes Method

Returns two booleans telling if the segment as from attribute and to attribute values.

Public Sub HasVertexAttributes ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByRef hasFromAttribute As Boolean, _
    ByRef hasToAttribute As Boolean _
)
public void HasVertexAttributes (
    esriGeometryAttributes attributeType,
    ref bool hasFromAttribute,
    ref bool hasToAttribute
);

ISegment.HorizontalIntersectionCount Method

Returns the number of horizontal intersections.

Public Function HorizontalIntersectionCount ( _
    ByRef p As WKSPoint, _
    ByRef pointOnLine As Boolean _
) As Integer
public int HorizontalIntersectionCount (
    ref WKSPoint p,
    ref bool pointOnLine
);

ISegment.InterpolateVertexAttributes Method

Interpolates Z and M values at distanceAlongSegment and stores the results at point.

Public Sub InterpolateVertexAttributes ( _
    ByVal distanceAlongSegment As Double, _
    ByVal asRatio As Boolean, _
    ByVal atPoint As IPoint _
)
public void InterpolateVertexAttributes (
    double distanceAlongSegment,
    bool asRatio,
    IPoint atPoint
);

ISegment.MaxDistanceFromLine Method

Returns the maximum distance from the line.

Public Sub MaxDistanceFromLine ( _
    ByRef baseFrom As WKSPoint, _
    ByRef baseTo As WKSPoint, _
    ByVal minOffset As Double, _
    ByVal fromArcDistance As Double, _
    ByVal toArcDistance As Double, _
    ByRef maxOffset As Double, _
    ByRef atArcDistance As Double, _
    ByRef farPoint As WKSPoint _
)
public void MaxDistanceFromLine (
    ref WKSPoint baseFrom,
    ref WKSPoint baseTo,
    ref double minOffset,
    ref double fromArcDistance,
    ref double toArcDistance,
    ref double maxOffset,
    ref double atArcDistance,
    ref WKSPoint farPoint
);

ISegment.PutAttributes Method

Sets some attributes from this point and copies them to another point. Awareness is not considered.

Public Sub PutAttributes ( _
    ByVal PutAttributes As Boolean, _
    ByVal putAwareness As Boolean, _
    ByRef from As esriPointAttributes, _
    ByRef to As esriPointAttributes _
)
public void PutAttributes (
    bool PutAttributes,
    bool putAwareness,
    ref esriPointAttributes from,
    ref esriPointAttributes to
);

ISegment.PutVertexAttributes Method

Sets the 'from' and the 'to' attribute values.

Public Sub PutVertexAttributes ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByVal fromAttribute As Double, _
    ByVal toAttribute As Double _
)
public void PutVertexAttributes (
    esriGeometryAttributes attributeType,
    double fromAttribute,
    double toAttribute
);

ISegment.QueryAreaCorrection Method

Queries the area correction value.

Public Sub QueryAreaCorrection ( _
    ByRef areaCorrection As Double _
)
public void QueryAreaCorrection (
    ref double areaCorrection
);

ISegment.QueryAttributes Method

Gets some attributes from this point and copies them to another point. Awareness is not considered.

Public Sub QueryAttributes ( _
    ByVal getAttributes As Boolean, _
    ByVal getAwareness As Boolean, _
    ByRef from As esriPointAttributes, _
    ByRef to As esriPointAttributes _
)
public void QueryAttributes (
    bool getAttributes,
    bool getAwareness,
    ref esriPointAttributes from,
    ref esriPointAttributes to
);

ISegment.QueryCentroidCorrection Method

Queries the centroid correction value.

Public Sub QueryCentroidCorrection ( _
    ByRef weightedCentroidX As Double, _
    ByRef weightedCentroidY As Double, _
    ByRef areaCorrection As Double _
)
public void QueryCentroidCorrection (
    ref double weightedCentroidX,
    ref double weightedCentroidY,
    ref double areaCorrection
);

ISegment.QueryCurvature Method

Finds curvature and unit vector starting at point on segment and directed to embedded circle center.

Public Sub QueryCurvature ( _
    ByVal DistanceAlongCurve As Double, _
    ByVal asRatio As Boolean, _
    ByRef curvature As Double, _
    ByVal unitVector As ILine _
)
public void QueryCurvature (
    double DistanceAlongCurve,
    bool asRatio,
    ref double curvature,
    ref ILine unitVector
);

Description

Returns the curvature at a specified distance along the segment. The distance can be given explicitly or as a ratio of the entire length of the segment. The curvature is returned as a Line representing a directional unit vector (in the direction going from the From Point to the To Point) and a double representing the magnitude of the vector of curvature.

Remarks

The unit vector returned by QueryCurvature points toward the center of the circle that has the same first and second derivative at the queried point with a curvature value equal to 1 / Radius of that circle.

QueryCurvature Example

ISegment.QueryVertexAttributes Method

Gets the 'from' and the 'to' attribute values.

Public Sub QueryVertexAttributes ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByRef fromAttribute As Double, _
    ByRef toAttribute As Double _
)
public void QueryVertexAttributes (
    esriGeometryAttributes attributeType,
    ref double fromAttribute,
    ref double toAttribute
);

ISegment.QueryWKSEnvelope Method

Queries the WKS Envelope.

Public Sub QueryWKSEnvelope ( _
    ByRef Envelope As WKSEnvelope _
)
public void QueryWKSEnvelope (
    ref WKSEnvelope Envelope
);

ISegment.QueryWKSFromPoint Method

Query the WKSPoint at the 'from' point.

Public Sub QueryWKSFromPoint ( _
    ByRef p As WKSPoint _
)
public void QueryWKSFromPoint (
    ref WKSPoint p
);

ISegment.QueryWKSToPoint Method

Query the WKSPoint at the 'to' point.

Public Sub QueryWKSToPoint ( _
    ByRef p As WKSPoint _
)
public void QueryWKSToPoint (
    ref WKSPoint p
);

ISegment.ReturnTurnDirection Method

Finds turn direction between two connected segments.

Public Function ReturnTurnDirection ( _
    ByVal otherSegment As ISegment _
) As Integer
public int ReturnTurnDirection (
    ISegment otherSegment
);

Description

Returns the Turn Direction of the Segment immediately following the current Segment. The two segments must be connected between the To Point of the first segment and the From Point of the second segment. ReturnTurnDirection returns a long corresponding to an esriTurnDirectionEnum or a combination of esriNoTurn or esriUTurn and esriRightTurn or esriLeftTurn. If the two segments are tangential at the point of connection and not completely colinear, then a combination of esriTurnDirectionEnums are returned.

Remarks

ReturnTurnDirection is only available for Lines and CircularArcs, not BezierCurves or EllipticArcs.

ReturnTurnDirection Example

ISegment.SplitAtDistance Method

Split segment at specified distance.

Public Sub SplitAtDistance ( _
    ByVal distances As Double, _
    ByVal asRatio As Boolean, _
    ByRef fromSegment As ISegment, _
    ByRef toSegment As ISegment _
)
public void SplitAtDistance (
    double distances,
    bool asRatio,
    ref ISegment fromSegment,
    ref ISegment toSegment
);

Description

Splits the input Segment at the given distance and returns the Segment between the original From Point and the split point as well as the Segment between the split point and the original To Point. The split distance may be specified as a ratio of the total distance if AsRatio = TRUE, otherwise the distance is in the same units as the Length of the Segment.

Remarks

SplitAtDistance Example

ISegment.SplitAtVertexAttribute Method

Splits the segment in two segments at the location corresponding to the attribute value.

Public Sub SplitAtVertexAttribute ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByVal attributeValue As Double, _
    ByRef fromSegment As ISegment, _
    ByRef toSegment As ISegment _
)
public void SplitAtVertexAttribute (
    esriGeometryAttributes attributeType,
    double attributeValue,
    ref ISegment fromSegment,
    ref ISegment toSegment
);

ISegment.SplitDivideLength Method

Divide segment into smaller segments of the specified length.

Public Sub SplitDivideLength ( _
    ByVal Offset As Double, _
    ByVal Length As Double, _
    ByVal asRatio As Boolean, _
    ByRef numSplitSegments As Integer, _
    ByRef splitSegments As ISegment _
)
public void SplitDivideLength (
    double Offset,
    double Length,
    bool asRatio,
    ref int numSplitSegments,
    ref ISegment splitSegments
);

Description

Outputs an array of Segments of a desired input length starting at an offset distance along the curve and continuing until the end of the Segment is reached. The offset and length may be specified as a ratio of the total length of the Segment. SplitDivideLength outputs an array of Segments and the number of Segments in that array. All of the output Segments in the array have the desired input length with the exception of the final Segment which has a length less than or equal to the input length (the remainder of the Segment).

Remarks

SplitDivideLength Example

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.

ISegment.SynchronizeEmptyAttributes Method

Synchronize Empty Attributes.

Public Sub SynchronizeEmptyAttributes ( _
    ByVal toSegment As ISegment _
)
public void SynchronizeEmptyAttributes (
    ISegment toSegment
);

ISegment.VertexAttributeAware Property

Indicates if the segment is aware of the specified attribute type.

Public Function get_VertexAttributeAware ( _
    ByVal attributeType As esriGeometryAttributes _
) As Boolean
Public Sub set_VertexAttributeAware ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByVal attributeAware As Boolean _
)
public bool get_VertexAttributeAware (
    esriGeometryAttributes attributeType
);
public void set_VertexAttributeAware (
    esriGeometryAttributes attributeType,
    bool attributeAware
);

ISegment.VertexAttributeOn Method

Indicates if attributeValue is located on this segment.

Public Function VertexAttributeOn ( _
    ByVal attributeType As esriGeometryAttributes, _
    ByVal attributeValue As Double _
) As Integer
public int VertexAttributeOn (
    esriGeometryAttributes attributeType,
    double attributeValue
);

Inherited Interfaces

Interfaces Description
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 ISegment

Classes Description
BezierCurve A cubic Bezier curve defined between two points; optionally has measure, height and ID attributes at each endpoint.
CircularArc A portion of a circle that connects two points optionally has measure, height and ID attributes at each endpoint.
EllipticArc A portion of the boundary of a 2D ellipse that connects two points; optionally has measure, height and ID attributes at each endpoint.
Line A 2D straight line between a pair of 2D endpoints; can optionally have height, measure and ID attributes at each endpoint.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.