com.esri.arcgis.geometry
Interface IRing

All Superinterfaces:
ICurve, IGeometry, IPath, Serializable
All Known Subinterfaces:
IRing2
All Known Implementing Classes:
Ring

public interface IRing
extends IPath, Serializable

Provides access to members that identify a ring and define its behavior.

Superseded By

IRing2

Description

A Ring is a type of surface patch that defines a two dimensional area and can be used to construct a MultiPatch, defined by a collection of points forming a closed Path, such that the From and To points have the same coordinates. The front side is established by orienting its vertices clockwise.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
IGeometry, IPath

Method Summary
 void close()
          Makes sure that this ring is closed by adding a line segment between the ring's 'to' and 'from' points if necessary.
 ICurve getSubcurveEx(double fromDistance, double toDistance, boolean asRatio, boolean isCCW, boolean useRingOrientation)
          Extracts a portion of this curve into a new curve.
 boolean isExterior()
          Indicates if this ring can function as the exterior ring in a polygon (ring orientation is clockwise, area > 0).
 boolean reshape(IPath reshapeSource)
          Modifies this ring by replacing some of its segments with some segments from reshapeSource.
 
Methods inherited from interface com.esri.arcgis.geometry.IPath
generalize, queryChordLengthTangents, setChordLengthTangents, smooth, smoothLocal
 
Methods inherited from interface com.esri.arcgis.geometry.ICurve
getFromPoint, getLength, getSubcurve, getToPoint, isClosed, queryFromPoint, queryNormal, queryPoint, queryPointAndDistance, queryTangent, queryToPoint, reverseOrientation, setFromPoint, setToPoint
 
Methods inherited from interface com.esri.arcgis.geometry.IGeometry
geoNormalize, geoNormalizeFromLongitude, getDimension, getEnvelope, getGeometryType, getSpatialReference, isEmpty, project, queryEnvelope, setEmpty, setSpatialReferenceByRef, snapToSpatialReference
 

Method Detail

isExterior

boolean isExterior()
                   throws IOException,
                          AutomationException
Indicates if this ring can function as the exterior ring in a polygon (ring orientation is clockwise, area > 0).

Description

IsExterior returns TRUE if the ring is oriented in a Clockwise direction. Exterior rings are always oriented clockwise, and interior rings are always oriented counterclockwise.

Remarks

Ring IsExterior Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

reshape

boolean reshape(IPath reshapeSource)
                throws IOException,
                       AutomationException
Modifies this ring by replacing some of its segments with some segments from reshapeSource.

Description

Reshape replaces the Segments in the Ring between consecutive Intersections with the input Path segments that connect those intersections. Reshape returns a boolean indicating whether or not a modification to the Ring occurred.

Remarks

To Reshape a Polygon, the Polygon must be Reshaped one Ring at a time.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
reshapeSource - A reference to a com.esri.arcgis.geometry.IPath (in)
Returns:
The reshapeHappened
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IPolyline.reshape(com.esri.arcgis.geometry.IPath), IRing.reshape(com.esri.arcgis.geometry.IPath)

close

void close()
           throws IOException,
                  AutomationException
Makes sure that this ring is closed by adding a line segment between the ring's 'to' and 'from' points if necessary.

Description

Checks whether or not the From and To Points of the Path occur at the same Point. If the From and To Point have the same X and Y coordinates, the Ring is considered closed, and no action is taken. However, if the From and To Points are not at the same X and Y coordinates, a Line segment is added at the end of the Ring between the To Point and the From Point. This Line segment completes the Ring making it closed.

Remarks

This method should generally not be called in a 3D context, due to the fact that Close() only compares X and Y and not Z vertex values. Instead, the first point in the point collection should be manually re-added as the last point in the point collection to close the geometry.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSubcurveEx

ICurve getSubcurveEx(double fromDistance,
                     double toDistance,
                     boolean asRatio,
                     boolean isCCW,
                     boolean useRingOrientation)
                     throws IOException,
                            AutomationException
Extracts a portion of this curve into a new curve. The interior of the new curve may contain the from/to point of the ring when useRingOrientation is true.

Description

The GetSubCurveEx method creates a subcurve of a ring. The subcurve may include the ring origin. The result is always a path object which may be closed.

Remarks

Parameters description:

fromDistance: (Input) A double that represents the distance along the curve which will define one of the subcurve's endpoints. The value can be positive or negative.

toDistance: (Input) A double that represents the distance along the curve which will define the other endpoint of the subcurve. The value can be positive or negative.

If the fromDistance and toDistance values are equal, the output is a closed path with fromPoint and toPoint of the path at the specified distance. The orientation may be reversed, depending upon the other parameter settings.

asRatio: (Input) A boolean value that determines whether or not the input distances are interpreted as a ratio of the total length. If 'True', a fromDistance of 0 is at the beginning of the curve and a toDistance of 1 represents the end of the curve.

isCCW: (Input) A boolean expression that decides which of the two possible paths fromfromDistance to toDistance is chosen for output: counter-clockwise or not. This does not decide the orientation of the output path.

useRingOrientation: (Input) A boolean that determines whether the output path should follow the ring orientation or not. If bUseRingOrientation is true, the output subcurve must have the same orientation as the ring, even if it means that the subcurve starts at toDistance and ends at fromDistance. If bUseRingOrientation is false, the output subcurve always starts at fromDistance and ends at toDistance; it may have the opposite orientation as the original ring.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
fromDistance - The fromDistance (in)
toDistance - The toDistance (in)
asRatio - The asRatio (in)
isCCW - The isCCW (in)
useRingOrientation - The useRingOrientation (in)
Returns:
A reference to a com.esri.arcgis.geometry.ICurve
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IRing.getSubcurveEx(double, double, boolean, boolean, boolean), ICurve.getSubcurve(double, double, boolean, com.esri.arcgis.geometry.ICurve[])