com.esri.arcgis.geometry
Class EllipticArc

java.lang.Object
  extended by com.esri.arcgis.geometry.EllipticArc
All Implemented Interfaces:
IConstructEllipticArc, ICurve, ICurve2, ICurve3, IEllipticArc, IGeometry, IProximityOperator, ISegment, ISegmentID, ISegmentM, ISegmentZ, ITransform2D, com.esri.arcgis.interop.RemoteObjRef, IClone, ISupportErrorInfo, Serializable

public class EllipticArc
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IEllipticArc, IGeometry, ITransform2D, ICurve, ICurve2, ICurve3, ISegment, IConstructEllipticArc, IProximityOperator, ISupportErrorInfo, IClone, ISegmentM, ISegmentZ, ISegmentID

A portion of the boundary of a 2D ellipse that connects two points; optionally has measure, height and ID attributes at each endpoint.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
EllipticArc()
          Constructs a EllipticArc using ArcGIS Engine.
EllipticArc(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
EllipticArc theEllipticArc = (EllipticArc) obj;
 
Method Summary
 void assign(IClone src)
          Assigns the properties of src to the receiver.
 void complement()
          Changes this ellipse into its complement; 'from' and 'to' points are unchanged.
 void constructEnvelope(IEnvelope boundingEnvelope)
          Constructs the inscribed ellipse of the given envelope.
 void constructQuarterEllipse(IPoint fromPoint, IPoint toPoint, boolean cCW)
          Construct an elliptic arc that starts at fromPoint, goes to toPoint, and spans an angle of pi/2.
 void constructTwoPointsEnvelope(IPoint fromPoint, IPoint toPoint, IEnvelope suggestedEnvelope, int orientation)
          Construct an elliptic arc that starts at fromPoint, goes to toPoint, and tries to have the embedded ellipse inscribed in the suggestedEnvelope.
 void constructUpToFivePoints(IPoint from, IPoint to, IPoint thru, IPoint point4, IPoint point5)
          Constructs an elliptic arc, given up to 5 points, such that the embedded ellipse passes through as many as possible.
 void densify(int cInSlots, double maxDeviation, int[] pcOutSegments, ILine[] segments)
          Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.densify(com.esri.arcgis.geometry.ISegment, double, int[], com.esri.arcgis.geometry.ILine[][]).
 boolean equals(Object o)
          Compare this object with another
 IClone esri_clone()
          Clones the receiver and assigns the result to *clone.
 void geographicShift(double splitLongitude)
          Shift longitudes to the right of splitLongitude.
 void geoNormalize()
          Shifts longitudes, if need be, into a continuous range of 360 degrees.
 void geoNormalizeFromLongitude(double longitude)
          Normalizes longitudes into a continuous range containing the longitude.
 void getAxes(double[] semiMajor, double[] semiMinor, double[] minorMajorRatio)
          Gets the semi-major and semi-minor axes.
 IPoint getCenterPoint()
          The center point of the arc.
 double getCentralAngle()
          The included (or central) angle.
static String getClsid()
          getClsid.
 int getDimension()
          The topological dimension of this geometry.
 IEnvelope getEnvelope()
          Creates a copy of this geometry's envelope and returns it.
 double getFromAngle(boolean ellipseStd)
          The start angle (measured from a horizontal line through the center point) defining where the arc starts.
 IPoint getFromPoint()
          The 'from' point of the curve.
 int getGeometryType()
          The type of this geometry.
 void getIDs(int[] fromID, int[] toID)
          Get the IDs on the segment's endpoints.
 double getLength()
          The length of the curve.
 void getMs(double[] fromM, double[] toM)
          Get the Ms on the segment's endpoints.
 ISpatialReference getSpatialReference()
          The spatial reference associated with this geometry.
 void getSubcurve(double fromDistance, double toDistance, boolean asRatio, ICurve[] outSubcurve)
          Extracts a portion of this curve into a new curve.
 double getToAngle(boolean ellipseStd)
          The end angle (measured from a horizontal line through the center point) defining where the arc ends.
 IPoint getToPoint()
          The 'to' point of the curve.
 void getZs(double[] fromZ, double[] toZ)
          Get the Zs on the segment's endpoints.
 int hashCode()
          the hashcode for this object
 void interfaceSupportsErrorInfo(GUID riid)
          interfaceSupportsErrorInfo
 boolean isCircular()
          Indicates if this elliptical arc is acutally circular (major and minor axes same length).
 boolean isClosed()
          Indicates if 'from' and 'to' points (of each part) are identical.
 boolean isCounterClockwise()
          Indicates if this elliptic arc is oriented counter-clockwise from its 'from' point to its 'to' point.
 boolean isEmpty()
          Indicates whether this geometry contains any points.
 boolean isEqual(IClone other)
          Indicates if the receiver and other have the same properties.
 boolean isIdentical(IClone other)
          Indicates if the receiver and other are the same object.
 boolean isLine()
          Indicates if the arc is degenerated to a line.
 boolean isMinor()
          Indicates whether the arc is a minor arc or a major arc.
 boolean isPoint()
          Indicates if the arc is degenerated to a point.
 void move(double dx, double dy)
          Moves dx units horizontally and dy units vertically.
 void moveVector(ILine v)
          Moves a direction and distance v.
 void project(ISpatialReference newReferenceSystem)
          Projects this geometry into a new spatial reference.
 void putAxes(double semiMajor, double minorMajorRatio)
          Sets the semi-major and semi-minor axes.
 void putCoords(boolean ellipseStd, IPoint center, IPoint from, IPoint to, double rotationAngle, double minorMajorRatio, int orientation)
          Sets the center point and endpoints, angle of rotation, and orientation.
 void putCoordsByAngle(boolean ellipseStd, IPoint center, double fromAngle, double centralAngle, double rotationAngle, double semiMajor, double minorMajorRatio)
          Sets the center point, starting angle, signed central angle, angle of rotation, ratio of the minor axis to the major axis, and axes.
 void putCoordsEx(IPoint from, IPoint to)
          Sets this segment's endpoints to 'from' and 'to'.
 void queryCenterPoint(IPoint center)
          Copies the center of this arc to the input point.
 void queryCoords(boolean ellipseStd, IPoint center, IPoint from, IPoint to, double[] rotationAngle, double[] minorMajorRatio, boolean[] isCCW, boolean[] minor)
          Copies the center and endpoints, angle of rotation, orientation and major/minor properties into the method parameters.
 void queryCoordsByAngle(boolean ellipseStd, IPoint center, double[] fromAngle, double[] centralAngle, double[] rotationAngle, double[] semiMajor, double[] minorMajorRatio)
          Returns the center point, starting angle, signed central angle, angle of rotation, ratio of the minor axis to the major axis, and axes.
 void queryCurvature(double distanceAlongCurve, boolean asRatio, double[] curvature, ILine unitVector)
          Finds curvature and unit vector starting at point on segment and directed to embedded circle center.
 void queryEnvelope(IEnvelope outEnvelope)
          Copies this geometry's envelope properties into the specified envelope.
 void queryFromPoint(IPoint from)
          Copies this curve's 'from' point to the input point.
 void queryNearestPoint(IPoint p, int extension, IPoint nearest)
          Copies into 'nearest' a point on this geometry nearest to the input point.
 void queryNormal(int extension, double distanceAlongCurve, boolean asRatio, double length, ILine normal)
          Constructs a line normal to a curve from a point at a specified distance along the curve.
 void queryPoint(int extension, double distanceAlongCurve, boolean asRatio, IPoint outPoint)
          Copies to outPoint the properties of a point on the curve at a specified distance from the beginning of the curve.
 void queryPointAndDistance(int extension, IPoint inPoint, boolean asRatio, IPoint outPoint, double[] distanceAlongCurve, double[] distanceFromCurve, boolean[] bRightSide)
          Finds the point on the curve closest to inPoint, then copies that point to outPoint; optionally calculates related items.
 void queryPointsAndDistances(int extension, double searchRadius, IPoint inPoint, boolean asRatio, double[] distanceFromCurve, IEnumPointAndDistance[] pointsAndDistances)
          Given an input point, calculates the minimum distance to the geometry and provides an enumerator over all closest points on the geometry, along with additional information.
 void queryTangent(int extension, double distanceAlongCurve, boolean asRatio, double length, ILine tangent)
          Constructs a line tangent to a curve from a point at a specified distance along the curve.
 void queryToPoint(IPoint to)
          Copies the curve's 'to' point into the input point.
 double returnDistance(IGeometry other)
          Returns the minimum distance between two geometries.
 IPoint returnNearestPoint(IPoint p, int extension)
          Creates and returns a point on this geometry nearest to the input point.
 int returnTurnDirection(ISegment otherSegment)
          Finds turn direction between two connected segments.
 void reverseOrientation()
          Reverses the parameterization of the curve ('from' point becomes 'to' point, first segment becomes last segment, etc).
 void rotate(IPoint origin, double rotationAngle)
          Rotates about the specified origin point.
 void scale(IPoint origin, double sx, double sy)
          Scales about the specified origin using seperate horizonal and vertical scales.
 void setCentralAngle(double centralAngle)
          The included (or central) angle.
 void setEmpty()
          Removes all points from this geometry.
 void setFromAngle(boolean ellipseStd, double fromAngle)
          The start angle (measured from a horizontal line through the center point) defining where the arc starts.
 void setFromPoint(IPoint from)
          The 'from' point of the curve.
 void setIDs(int fromID, int toID)
          Set the IDs on the segment's endpoints.
 void setIsCounterClockwise(boolean isCCW)
          Indicates if this elliptic arc is oriented counter-clockwise from its 'from' point to its 'to' point.
 void setIsMinor(boolean isMinor)
          Indicates whether the arc is a minor arc or a major arc.
 void setMs(double fromM, double toM)
          Set the Ms on the segment's endpoints.
 void setSpatialReferenceByRef(ISpatialReference spatialRef)
          The spatial reference associated with this geometry.
 void setToAngle(boolean ellipseStd, double toAngle)
          The end angle (measured from a horizontal line through the center point) defining where the arc ends.
 void setToPoint(IPoint to)
          The 'to' point of the curve.
 void setZs(double fromZ, double toZ)
          Set the Zs on the segment's endpoints.
 void snapToSpatialReference()
          Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system.
 void splitAtDistance(double distances, boolean asRatio, ISegment[] fromSegment, ISegment[] toSegment)
          Split segment at specified distance.
 void splitDivideLength(double offset, double length, boolean asRatio, int[] numSplitSegments, ISegment splitSegments)
          Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.splitDivideLength(com.esri.arcgis.geometry.ISegment, double, double, boolean, int[], com.esri.arcgis.geometry.ISegment[][]).
 void transform(int direction, ITransformation transformation)
          Applies an arbitrary transformation.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef
getJintegraDispatch, release
 

Constructor Detail

EllipticArc

public EllipticArc()
            throws IOException,
                   UnknownHostException
Constructs a EllipticArc using ArcGIS Engine.

Throws:
IOException - if there are interop problems
UnknownHostException - if there are interop problems

EllipticArc

public EllipticArc(Object obj)
            throws IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
EllipticArc theEllipticArc = (EllipticArc) obj;

Construct a EllipticArc using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to EllipticArc.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

queryCoords

public void queryCoords(boolean ellipseStd,
                        IPoint center,
                        IPoint from,
                        IPoint to,
                        double[] rotationAngle,
                        double[] minorMajorRatio,
                        boolean[] isCCW,
                        boolean[] minor)
                 throws IOException,
                        AutomationException
Copies the center and endpoints, angle of rotation, orientation and major/minor properties into the method parameters.

Description

Given the EllipseStd value, returns the Center Point, From Point, To Point, Rotation Angle, Minor Axis to Major Axis Ratio, IsCounterClockwise value, and IsMinor value of the Elliptic Arc. If EllipseStd = TRUE, the From Point and To Point locations are relative offsets from the Center Point rather than the origin.

Remarks

These are the necessary inputs for PutCoords, except in special cases (half ellipse, full ellipse, Central Angle = 0, and Minor to Major Ratio = 0) where the ArcOrientation must know which of these cases exists to ensure that the desired Elliptic Arc is unambiguous. Any of the output parameters can be set to nil if that info is not desired.

-isCCW stands for "is counter clockwise"

IEllipticArc QueryCoords Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryCoords in interface IEllipticArc
Parameters:
ellipseStd - The ellipseStd (in)
center - A reference to a com.esri.arcgis.geometry.IPoint (in)
from - A reference to a com.esri.arcgis.geometry.IPoint (in)
to - A reference to a com.esri.arcgis.geometry.IPoint (in)
rotationAngle - The rotationAngle (in/out: use single element array)
minorMajorRatio - The minorMajorRatio (in/out: use single element array)
isCCW - The isCCW (in/out: use single element array)
minor - The minor (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IEllipticArc.putCoords(boolean, com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint, double, double, int)

putCoords

public void putCoords(boolean ellipseStd,
                      IPoint center,
                      IPoint from,
                      IPoint to,
                      double rotationAngle,
                      double minorMajorRatio,
                      int orientation)
               throws IOException,
                      AutomationException
Sets the center point and endpoints, angle of rotation, and orientation.

Description

PutCoords creates an Elliptic Arc given the EllipseStd value, Center Point, From Point, To Point, Rotation Angle, Minor Axis to Major Axis Ratio, and the Arc Orientation. If EllipseStd = TRUE, the From Point and To Point locations are relative offsets from the Center Point rather than the origin.

Remarks

Unless the coordinates of the From and To Points are exactly on the defined Elliptic Arc, PutCoords is likely to create an invalid Elliptic Arc. Therefore, it is highly recommended that another Elliptic Arc creation method is used unless all of the necessary input parameters are exactly known.

IEllipticArc PutCoords Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
putCoords in interface IEllipticArc
Parameters:
ellipseStd - The ellipseStd (in)
center - A reference to a com.esri.arcgis.geometry.IPoint (in)
from - A reference to a com.esri.arcgis.geometry.IPoint (in)
to - A reference to a com.esri.arcgis.geometry.IPoint (in)
rotationAngle - The rotationAngle (in)
minorMajorRatio - The minorMajorRatio (in)
orientation - A com.esri.arcgis.geometry.esriArcOrientation constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IEllipticArc.queryCoords(boolean, com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint, double[], double[], boolean[], boolean[]), IEllipticArc.putCoordsByAngle(boolean, com.esri.arcgis.geometry.IPoint, double, double, double, double, double)

queryCoordsByAngle

public void queryCoordsByAngle(boolean ellipseStd,
                               IPoint center,
                               double[] fromAngle,
                               double[] centralAngle,
                               double[] rotationAngle,
                               double[] semiMajor,
                               double[] minorMajorRatio)
                        throws IOException,
                               AutomationException
Returns the center point, starting angle, signed central angle, angle of rotation, ratio of the minor axis to the major axis, and axes.

Description

Given the EllipseStd value, returns the Center Point, From Angle, Central Angle, Rotation Angle, semi-Major axis length, and Minor Axis to Major Axis Ratio for the Elliptic Arc. These are the same parameters used by PutCoordsByAngle to create the Elliptic Arc. If EllipseStd = TRUE, the From Angle is relative to the rotated semi-Major Axis rather than the X-Axis.

Remarks

IEllipticArc QueryCoordsByAngle Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryCoordsByAngle in interface IEllipticArc
Parameters:
ellipseStd - The ellipseStd (in)
center - A reference to a com.esri.arcgis.geometry.IPoint (in)
fromAngle - The fromAngle (in/out: use single element array)
centralAngle - The centralAngle (in/out: use single element array)
rotationAngle - The rotationAngle (in/out: use single element array)
semiMajor - The semiMajor (in/out: use single element array)
minorMajorRatio - The minorMajorRatio (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IEllipticArc.putCoordsByAngle(boolean, com.esri.arcgis.geometry.IPoint, double, double, double, double, double)

putCoordsByAngle

public void putCoordsByAngle(boolean ellipseStd,
                             IPoint center,
                             double fromAngle,
                             double centralAngle,
                             double rotationAngle,
                             double semiMajor,
                             double minorMajorRatio)
                      throws IOException,
                             AutomationException
Sets the center point, starting angle, signed central angle, angle of rotation, ratio of the minor axis to the major axis, and axes.

Description

Creates an Elliptic Arc given the EllipseStd value, Center Point, From Angle, Central Angle, Rotation Angle, semi-Major Axis length, and Minor Axis to Major Axis Ratio. If EllipseStd = TRUE, the From Angle is relative to the rotated semi-Major Axis rather than the X-Axis.

Remarks

This is the recommended way to create an arbitrary Elliptic Arc. However, due to numeric accuracy limitations of computers and trigonometric functions, the From and To Points may be very slightly offset from the expected coordinates. This is important to keep in mind when attempting to connect the endpoints to other segments.

IEllipticArc PutCoordsByAngle Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
putCoordsByAngle in interface IEllipticArc
Parameters:
ellipseStd - The ellipseStd (in)
center - A reference to a com.esri.arcgis.geometry.IPoint (in)
fromAngle - The fromAngle (in)
centralAngle - The centralAngle (in)
rotationAngle - The rotationAngle (in)
semiMajor - The semiMajor (in)
minorMajorRatio - The minorMajorRatio (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IEllipticArc.queryCoordsByAngle(boolean, com.esri.arcgis.geometry.IPoint, double[], double[], double[], double[], double[])

getCenterPoint

public IPoint getCenterPoint()
                      throws IOException,
                             AutomationException
The center point of the arc.

Description

The CenterPoint is the point where the Major Axis and Minor Axis of the EllipticArc intersect. The CenterPoint is the point from which all angles and distances are calculated to create the EllipticArc.

Remarks

EllipticArc CenterPoint Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCenterPoint in interface IEllipticArc
Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryCenterPoint

public void queryCenterPoint(IPoint center)
                      throws IOException,
                             AutomationException
Copies the center of this arc to the input point.

Description

The CenterPoint is the point where the Major Axis and Minor Axis of the EllipticArc intersect. The CenterPoint is the point from which all angles and distances are calculated to create the EllipticArc. You must instantiate the Point before calling QueryCenterPoint. For example,


Dim pPoint as IPoint

Set pPoint = New Point

Remarks

The QueryCenterPoint method should be used in performance critical situations, where the center point of several arcs needs to be retrieved. The point is populated (not created) by the method. For example, this can be used to get the center point of several arcs in a loop. Creating the point only once outside the loop may improve performance for large number of arcs.

EllipticArc QueryCenterPoint Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryCenterPoint in interface IEllipticArc
Parameters:
center - 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.

getAxes

public void getAxes(double[] semiMajor,
                    double[] semiMinor,
                    double[] minorMajorRatio)
             throws IOException,
                    AutomationException
Gets the semi-major and semi-minor axes.

Description

Returns the Major Axis, the Minor Axis, and the ratio of the Minor Axis to the Major Axis. The Major Axis is the larger of the two Axes, and the Minor Axis is the smaller Axis. The Major Axis always lies on the line between 0 and Pi Radians in EllipseStd, and the Minor Axis always lies on the line between Pi/2 and 3*Pi/2 Radian in EllipseStd.

Remarks

The Axes can be set using PutAxes.

EllipticArc GetAxes Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getAxes in interface IEllipticArc
Parameters:
semiMajor - The semiMajor (in/out: use single element array)
semiMinor - The semiMinor (in/out: use single element array)
minorMajorRatio - The minorMajorRatio (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

putAxes

public void putAxes(double semiMajor,
                    double minorMajorRatio)
             throws IOException,
                    AutomationException
Sets the semi-major and semi-minor axes.

Description

Sets the Major Axis and the Minor Axis. The Major Axis is the larger of the two Axes, and the Minor Axis is the smaller Axis. The Major Axis always lies on the line between 0 and Pi Radians in EllipseStd, and the Minor Axis always lies on the line between Pi/2 and 3*Pi/2 Radian in EllipseStd.

Remarks

The Axes can be returned using GetAxes.

EllipticArc PutAxes Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
putAxes in interface IEllipticArc
Parameters:
semiMajor - The semiMajor (in)
minorMajorRatio - The minorMajorRatio (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFromAngle

public double getFromAngle(boolean ellipseStd)
                    throws IOException,
                           AutomationException
The start angle (measured from a horizontal line through the center point) defining where the arc starts.

Product Availability

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

Specified by:
getFromAngle in interface IEllipticArc
Parameters:
ellipseStd - The ellipseStd (in)
Returns:
The fromAngle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setFromAngle

public void setFromAngle(boolean ellipseStd,
                         double fromAngle)
                  throws IOException,
                         AutomationException
The start angle (measured from a horizontal line through the center point) defining where the arc starts.

Product Availability

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

Specified by:
setFromAngle in interface IEllipticArc
Parameters:
ellipseStd - The ellipseStd (in)
fromAngle - The fromAngle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getToAngle

public double getToAngle(boolean ellipseStd)
                  throws IOException,
                         AutomationException
The end angle (measured from a horizontal line through the center point) defining where the arc ends.

Product Availability

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

Specified by:
getToAngle in interface IEllipticArc
Parameters:
ellipseStd - The ellipseStd (in)
Returns:
The toAngle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setToAngle

public void setToAngle(boolean ellipseStd,
                       double toAngle)
                throws IOException,
                       AutomationException
The end angle (measured from a horizontal line through the center point) defining where the arc ends.

Product Availability

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

Specified by:
setToAngle in interface IEllipticArc
Parameters:
ellipseStd - The ellipseStd (in)
toAngle - The toAngle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCentralAngle

public double getCentralAngle()
                       throws IOException,
                              AutomationException
The included (or central) angle.

Description

The CentralAngle describes the span of the EllipticArc. The CentralAngle is the angular measure between the FromAngle and the ToAngle. The CentralAngle is measured in Radians and is always between -2*Pi and 2*Pi. If the CentralAngle > 0, then the EllipticArc is oriented in a CounterClockwise direction.

Remarks

EllipticArc CentralAngle Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCentralAngle in interface IEllipticArc
Returns:
The centralAngle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setCentralAngle

public void setCentralAngle(double centralAngle)
                     throws IOException,
                            AutomationException
The included (or central) angle.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setCentralAngle in interface IEllipticArc
Parameters:
centralAngle - The centralAngle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isPoint

public boolean isPoint()
                throws IOException,
                       AutomationException
Indicates if the arc is degenerated to a point.

Description

IsPoint returns TRUE when the semiMajor axis = 0. IsPoint returns FALSE when the semiMajor axis > 0 (this includes when the CentralAngle = 0, as this is a well-defined EllipticArc.).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isPoint in interface IEllipticArc
Returns:
The isPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isLine

public boolean isLine()
               throws IOException,
                      AutomationException
Indicates if the arc is degenerated to a line.

Description

IsLine returns TRUE when the minorMajorRatio = 0. This is analgous to the semiMinor Axis having a length of 0.

Remarks

EllipticArc IsLine Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isLine in interface IEllipticArc
Returns:
The isLine
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCounterClockwise

public boolean isCounterClockwise()
                           throws IOException,
                                  AutomationException
Indicates if this elliptic arc is oriented counter-clockwise from its 'from' point to its 'to' point.

Description

IsCounterClockwise returns TRUE if the CentralAngle is greater than 0. If the IsCounterClockwise values differ, setting IsCounterClockwise changes the EllipticArc to its Complement.

Remarks

IsCCW Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isCounterClockwise in interface IEllipticArc
Returns:
The isCCW
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setIsCounterClockwise

public void setIsCounterClockwise(boolean isCCW)
                           throws IOException,
                                  AutomationException
Indicates if this elliptic arc is oriented counter-clockwise from its 'from' point to its 'to' point.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setIsCounterClockwise in interface IEllipticArc
Parameters:
isCCW - The isCCW (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isMinor

public boolean isMinor()
                throws IOException,
                       AutomationException
Indicates whether the arc is a minor arc or a major arc.

Description

IsMinor is TRUE when the CentralAngle < Pi (180 degrees). IsMinor also returns TRUE when the semiMajor axis = 0. If the IsMinor values differ, setting IsMinor changes the EllipticArc to its Complement.

Remarks

EllipticArc IsMinor Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isMinor in interface IEllipticArc
Returns:
The isMinor
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setIsMinor

public void setIsMinor(boolean isMinor)
                throws IOException,
                       AutomationException
Indicates whether the arc is a minor arc or a major arc.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setIsMinor in interface IEllipticArc
Parameters:
isMinor - The isMinor (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

complement

public void complement()
                throws IOException,
                       AutomationException
Changes this ellipse into its complement; 'from' and 'to' points are unchanged.

Description

The Complement of an EllipticArc is the EllipticArc between the ToPoint and the FromPoint of the original EllipticArc that creates a full ellipse when combined with the original EllipticArc. The Complement maintains the same FromPoint and ToPoint as the original EllipticArc, but has the different IsMinor and IsCounterClockwise values.

Remarks

Complement Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
complement in interface IEllipticArc
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCircular

public boolean isCircular()
                   throws IOException,
                          AutomationException
Indicates if this elliptical arc is acutally circular (major and minor axes same length).

Description

IsCircular returns TRUE when the minorMajorRatio = 1.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isCircular in interface IEllipticArc
Returns:
The isCircular
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLength

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

Description

Returns the 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.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getLength in interface ICurve
Returns:
The length
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFromPoint

public IPoint getFromPoint()
                    throws IOException,
                           AutomationException
The 'from' point of the curve.

Description

Returns or Sets the FromPoint of the first segment of the first part of the curve. While the curve may be composed of many parts and segments each with their own FromPoint, each curve only has a single From Point.

Remarks

FromPoint Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFromPoint in interface ICurve
Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IPoint, ICurve.queryFromPoint(com.esri.arcgis.geometry.IPoint), ICurve.getFromPoint(), ICurve.queryToPoint(com.esri.arcgis.geometry.IPoint), ICurve.getToPoint()

setFromPoint

public void setFromPoint(IPoint from)
                  throws IOException,
                         AutomationException
The 'from' point of the curve.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setFromPoint in interface ICurve
Parameters:
from - 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.

queryFromPoint

public void queryFromPoint(IPoint from)
                    throws IOException,
                           AutomationException
Copies this curve's 'from' point to the input point.

Description

Used to query the FromPoint of the first Segment of the first part of the curve.

Remarks

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.

QueryFromPoint Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryFromPoint in interface ICurve
Parameters:
from - 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.
See Also:
IPoint, ICurve.queryFromPoint(com.esri.arcgis.geometry.IPoint), ICurve.getFromPoint(), ICurve.queryToPoint(com.esri.arcgis.geometry.IPoint), ICurve.getToPoint()

getToPoint

public IPoint getToPoint()
                  throws IOException,
                         AutomationException
The 'to' point of the curve.

Description

Returns or Sets the ToPoint of the first Segment of the first part of the curve. While the curve may be composed of many parts and segments each with their own ToPoint, each curve only has a single To Point.

Remarks

ToPoint Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getToPoint in interface ICurve
Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IPoint, ICurve.queryFromPoint(com.esri.arcgis.geometry.IPoint), ICurve.getFromPoint(), ICurve.queryToPoint(com.esri.arcgis.geometry.IPoint), ICurve.getToPoint()

setToPoint

public void setToPoint(IPoint to)
                throws IOException,
                       AutomationException
The 'to' point of the curve.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setToPoint in interface ICurve
Parameters:
to - 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.

queryToPoint

public void queryToPoint(IPoint to)
                  throws IOException,
                         AutomationException
Copies the curve's 'to' point into the input point.

Description

Used to query the ToPoint of the first Segment of the first part of the curve.

Remarks

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.

QueryToPoint Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryToPoint in interface ICurve
Parameters:
to - 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.
See Also:
IPoint, ICurve.queryFromPoint(com.esri.arcgis.geometry.IPoint), ICurve.getFromPoint(), ICurve.queryToPoint(com.esri.arcgis.geometry.IPoint), ICurve.getToPoint()

queryPoint

public void queryPoint(int extension,
                       double distanceAlongCurve,
                       boolean asRatio,
                       IPoint outPoint)
                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 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 length of the curve.

Remarks

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.

ICurve QueryPoint Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryPoint in interface ICurve
Parameters:
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
distanceAlongCurve - The distanceAlongCurve (in)
asRatio - The asRatio (in)
outPoint - 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.
See Also:
IPoint, esriSegmentExtension

queryPointAndDistance

public void queryPointAndDistance(int extension,
                                  IPoint inPoint,
                                  boolean asRatio,
                                  IPoint outPoint,
                                  double[] distanceAlongCurve,
                                  double[] distanceFromCurve,
                                  boolean[] bRightSide)
                           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.

Remarks

AsRatio is an input parameter that only affects the DistanceAlongCurve

distanceFromCurve is an output parameter that represents the minimum distance between the curve and the input point.

DistanceAlongCurve is an output parameter that represents the distance between the Frompoint of the input curve and the returned point on the curve.

bRightSide is an output parameter that tells if the output point is on the right side of the curve. The direction of the curve determines the right and left sides.

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.

QueryPointAndDistance Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryPointAndDistance in interface ICurve
Parameters:
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
inPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
asRatio - The asRatio (in)
outPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
distanceAlongCurve - The distanceAlongCurve (in/out: use single element array)
distanceFromCurve - The distanceFromCurve (in/out: use single element array)
bRightSide - The bRightSide (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IPoint

queryTangent

public void queryTangent(int extension,
                         double distanceAlongCurve,
                         boolean asRatio,
                         double length,
                         ILine tangent)
                  throws IOException,
                         AutomationException
Constructs a line tangent to a curve from a point at a specified distance along the curve.

Description

Given a distance along the curve specified either as a ratio of the length or as a specific fixed distance, QueryTangent returns the Line tangent to the Point. The length and method of tangential extension of the tangent line are given by the user. The method of tangential extension determines the direction of the tangent line as though it were being extended at a From point or a To point.

Remarks

QueryTangent Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryTangent in interface ICurve
Parameters:
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
distanceAlongCurve - The distanceAlongCurve (in)
asRatio - The asRatio (in)
length - The length (in)
tangent - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
ILine

queryNormal

public void queryNormal(int extension,
                        double distanceAlongCurve,
                        boolean asRatio,
                        double length,
                        ILine normal)
                 throws IOException,
                        AutomationException
Constructs a line normal to a curve from a point at a specified distance along the curve.

Description

Given a distance along the curve specified either as a ratio of the Length or as a specific fixed distance, QueryNormal returns the Line normal to the Point. The length and method of tangential extension of the normal line are given by the user. The method of tangential extension determines the direction of the normal line as though it were being extended at a From point or a To point.

Remarks

QueryNormal Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNormal in interface ICurve
Parameters:
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
distanceAlongCurve - The distanceAlongCurve (in)
asRatio - The asRatio (in)
length - The length (in)
normal - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
ILine

getSubcurve

public void getSubcurve(double fromDistance,
                        double toDistance,
                        boolean asRatio,
                        ICurve[] outSubcurve)
                 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. Which means if:

Input Geometry Output Geometry
Polygon Polyline
Polyline Polyline
Ring Path
Path Path
Segment Segment

If the input geometry is a polygon, you may want to use IRing::GetSubCurveEx which has more capabilities.

Remarks

Subcurve Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSubcurve in interface ICurve
Parameters:
fromDistance - The fromDistance (in)
toDistance - The toDistance (in)
asRatio - The asRatio (in)
outSubcurve - A reference to a com.esri.arcgis.geometry.ICurve (out: use single element array)
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[])

reverseOrientation

public void reverseOrientation()
                        throws IOException,
                               AutomationException
Reverses the parameterization of the curve ('from' point becomes 'to' point, first segment becomes last segment, etc).

Description

ReverseOrientation changes the direction of the curve without changing the spatial position of the curve. The From Point and To Point of each Segment in each part of the curve are interchanged.

Remarks

The ReverseOrientation method works the same way as the Arcedit FLIP command. It reverses the order of the vertices in the Curve.

Caution should be taken in using ReverseOrientation on Polygons. Since ReverseOrientation changes the direction of each Ring within the Polygon, all Exterior Rings become Interior Rings and vice versa.

Reverse Orientation Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
reverseOrientation in interface ICurve
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isClosed

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

Description

A curve is closed if the From and To points of each part of the curve are equal.

Remarks

IsClosed may still return TRUE if the curve consists of improperly constructed geometries (ex. non-continuous paths). IsClosed only checks the location of the From and To points of each part, it does not check the internal parts for topological consistency.

ICurve IsClosed Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getGeometryType

public int getGeometryType()
                    throws IOException,
                           AutomationException
The type of this geometry.

Remarks

esriGeometryNull          = 0
esriGeometryPoint = 1
esriGeometryMultipoint = 2
esriGeometryPolyline = 3
esriGeometryPolygon = 4
esriGeometryEnvelope = 5
esriGeometryPath = 6
esriGeometryAny = 7
esriGeometryMultiPatch = 9
esriGeometryRing = 11
esriGeometryLine = 13
esriGeometryCircularArc = 14
esriGeometryBezier3Curve = 15
esriGeometryEllipticArc = 16
esriGeometryBag = 17
esriGeometryTriangleStrip = 18
esriGeometryTriangleFan = 19
esriGeometryRay = 20
esriGeometrySphere = 21
Geometry Type Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getGeometryType in interface IGeometry
Returns:
A com.esri.arcgis.geometry.esriGeometryType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDimension

public int getDimension()
                 throws IOException,
                        AutomationException
The topological dimension of this geometry.

Description

Returns the dimension of the geometry object based on the geometry's type.

Remarks


Note: At 9.0, Multipatches are now considered as two dimensional geometry. esriGeometry3Dimension will be used for an upcoming new geometry type.
Supported esriGeometryDimensions:

-1 esriGeometryNoDimension
1 esriGeometry0Dimension
2 esriGeometry1Dimension
4 esriGeometry2Dimension
5 esriGeometry25Dimension
6 esriGeometry3Dimension

Dimension Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDimension in interface IGeometry
Returns:
A com.esri.arcgis.geometry.esriGeometryDimension constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSpatialReference

public ISpatialReference getSpatialReference()
                                      throws IOException,
                                             AutomationException
The spatial reference associated with this geometry.

Description

Returns and sets the Spatial Reference in which the geometry exists. If the spatial reference has not been set the property will return an empty ISpatialReference instance.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSpatialReference in interface IGeometry
Returns:
A reference to a com.esri.arcgis.geometry.ISpatialReference
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSpatialReferenceByRef

public void setSpatialReferenceByRef(ISpatialReference spatialRef)
                              throws IOException,
                                     AutomationException
The spatial reference associated with this geometry.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setSpatialReferenceByRef in interface IGeometry
Parameters:
spatialRef - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEmpty

public boolean isEmpty()
                throws IOException,
                       AutomationException
Indicates whether this geometry contains any points.

Description

IsEmpty returns TRUE when the Geometry object does not contain geometric information beyond its original initialization state. An object may be returned to its original initialization (IsEmpty = TRUE) state using SetEmpty.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isEmpty in interface IGeometry
Returns:
The isEmpty
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setEmpty

public void setEmpty()
              throws IOException,
                     AutomationException
Removes all points from this geometry.

Description

SetEmpty returns the Geometry to its original initialization state by releasing all data referenced by the Geometry.

Remarks


Use the SetEmpty method to clear geometries and release memory. For example, a polygon with 100 rings will have an internal array of 100 pointers to ring objects. That array will go away and Release will be called on each ring. If that polygon had the only reference on those rings, then they'll go away, which releases all their segments, which may also then go away.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setEmpty in interface IGeometry
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryEnvelope

public void queryEnvelope(IEnvelope outEnvelope)
                   throws IOException,
                          AutomationException
Copies this geometry's envelope properties into the specified envelope.

Description

Returns the unique Envelope that binds the Geometry object. This is the smallest Envelope that Contains the object.

Remarks

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.

QueryEnvelope Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryEnvelope in interface IGeometry
Parameters:
outEnvelope - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEnvelope

public IEnvelope getEnvelope()
                      throws IOException,
                             AutomationException
Creates a copy of this geometry's envelope and returns it.

Description

Returns the unique Envelope that binds the Geometry object. This is the smallest Envelope that Contains the object.

Remarks

Envelope Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getEnvelope in interface IGeometry
Returns:
A reference to a com.esri.arcgis.geometry.IEnvelope
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

project

public void project(ISpatialReference newReferenceSystem)
             throws IOException,
                    AutomationException
Projects this geometry into a new spatial reference.

Description

To Project, the geometry needs to have a Spatial Reference set, and not have an UnknownCoordinateSystem. The new spatial reference system passed to the method defines the output coordinate system. If either spatial reference is Unknown, the coordinates are not changed. The Z and measure values are not changed by the Project method.

A geometry is not densified before it is projected. This can lead to the output geometries not reflecting the 'true' shape in the new coordinate system. A straight line in one coordinate system is not necessarily a straight line in a different coordinate system. Use IGeometry2::ProjectEx if you want to densify the geometries while they are projected.

The Project method must be applied on high-level geometries only. High-Level geometries are point, multipoint, polyline and polygon. To use this method with low-level geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into high-level geometry types.

If a geometry is projected to a projected coordinate system that can't represent the geographic area where the geometry is located (or if trying to move an xy coordinate from outside the projected coordinate system back into geographic), the geometry will be set to empty.

Remarks

Note: This method can only be called upon the top level geometries (Points, Multipoints, Polylines and Polygons). If the from/to spatial references have different geographic coordinate systems, the Project method looks for a GeoTransformationsOperationSet. If the set of Geotransformations is present in memory, Project will use it to perform a geographic/datum Transformation. To use a specific geotransformation, use the IGeometry2::ProjectEx method.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
project in interface IGeometry
Parameters:
newReferenceSystem - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

snapToSpatialReference

public void snapToSpatialReference()
                            throws IOException,
                                   AutomationException
Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system.

Remarks

SnapToSpatialReference rounds all coordinates to the resolution defined by the geometry's spatial reference system. This has a similar effect on the geometry as storing the geometry in a Geodatabase.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
snapToSpatialReference in interface IGeometry
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

geoNormalize

public void geoNormalize()
                  throws IOException,
                         AutomationException
Shifts longitudes, if need be, into a continuous range of 360 degrees.

Remarks

GeoNormalize acts on geometries whose geographic system coordinates are below -180 degrees longitude or over +180 degrees longitude or on geometries that span the +-180 degrees longitude.
This method requires the geometry to have a valid spatial reference (geographic or projected coordinate system).
This method is used internally as part of the projection process for polygons and polylines. It is typically not used by itself.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
geoNormalize in interface IGeometry
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

geoNormalizeFromLongitude

public void geoNormalizeFromLongitude(double longitude)
                               throws IOException,
                                      AutomationException
Normalizes longitudes into a continuous range containing the longitude. This method is obsolete.

Remarks

This method is obsolete. Use IGeometry::GeoNormalize instead.
This method requires the geometry to have a valid spatial reference (geographic or projected coordinate system).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
geoNormalizeFromLongitude in interface IGeometry
Parameters:
longitude - The longitude (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

move

public void move(double dx,
                 double dy)
          throws IOException,
                 AutomationException
Moves dx units horizontally and dy units vertically.

Description

Moves the Geometry dX units along the X-Axis and dY units along the Y-Axis. Only changes the position of the Geometry without altering any of the other characteristics. Move is a spatial offset.

Remarks

Transform2D Move Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
move in interface ITransform2D
Parameters:
dx - The dx (in)
dy - The dy (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

moveVector

public void moveVector(ILine v)
                throws IOException,
                       AutomationException
Moves a direction and distance v. v can be in a different spatial reference than the geometry being moved.

Description

Moves the Geometry dX units along the X-Axis and dY units along the Y-Axis, where dX and dY are calculated from the input vector Line. Only the Length and Angle of the vector affect the transformation. The location of the vector does not change the transformation. Only changes the position of the Geometry without altering any of the other characteristics. Move is a spatial offset.

Remarks

Transform2D MoveVector Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
moveVector in interface ITransform2D
Parameters:
v - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

scale

public void scale(IPoint origin,
                  double sx,
                  double sy)
           throws IOException,
                  AutomationException
Scales about the specified origin using seperate horizonal and vertical scales. The origin point can be in a different spatial reference than the geometry being scaled.

Description

Stretches the Geometry a factor of sX along the X-Axis and a factor of sY along the Y-Axis (where sX is the ratio of Old Width to New Width, and sY is the ratio of Old Height to New Height). The Origin point is the reference Point from which the transformation is performed (Regardless of the location of the Origin point, the Geometry resulting from the transformation is the same, except for a positional offset). The Origin is the only point in the transformation guaranted to remain in the same location after the transformation is complete.

Remarks

Note: Caution must be taken when scaling a CircularArc or a geometry containing CircularArc segments. Unless Abs(ScaleX) = Abs(ScaleY), the resulting CircularArcs will not retain the characteristics of the original geometry (since they remain CircularArcs).

Scale Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
scale in interface ITransform2D
Parameters:
origin - A reference to a com.esri.arcgis.geometry.IPoint (in)
sx - The sx (in)
sy - The sy (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rotate

public void rotate(IPoint origin,
                   double rotationAngle)
            throws IOException,
                   AutomationException
Rotates about the specified origin point. The angle is in radians. The origin can be in a different spatial reference than the geometry being rotated.

Description

Rotate performs an angular transform (rotation) on the Geometry. The Origin is the only point in the transformation guaranteed to remain in the same location after the transformation is performed. Regardless of the Origin, the transformed Geometry is the same, except for a positional offset. The RotationAngle is measured in radians.

Remarks

An Envelope cannot be Rotated.

Transform2D Rotate Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
rotate in interface ITransform2D
Parameters:
origin - A reference to a com.esri.arcgis.geometry.IPoint (in)
rotationAngle - The rotationAngle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

transform

public void transform(int direction,
                      ITransformation transformation)
               throws IOException,
                      AutomationException
Applies an arbitrary transformation. In particular, the transformation parameter can be either an affine transformation or a geographic transformation (datum shift).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
transform in interface ITransform2D
Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
transformation - A reference to a com.esri.arcgis.geometry.ITransformation (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

putCoordsEx

public void putCoordsEx(IPoint from,
                        IPoint to)
                 throws IOException,
                        AutomationException
Sets this segment's endpoints to 'from' and 'to'.

Description

PutCoordsEx allows both the fromPoint and the toPoint to be set simultaneously.
A Conformal Transformation based on the original points and the new points
is applied to the curve.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
putCoordsEx in interface ICurve2
Parameters:
from - A reference to a com.esri.arcgis.geometry.IPoint (in)
to - 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.

queryPointsAndDistances

public void queryPointsAndDistances(int extension,
                                    double searchRadius,
                                    IPoint inPoint,
                                    boolean asRatio,
                                    double[] distanceFromCurve,
                                    IEnumPointAndDistance[] pointsAndDistances)
                             throws IOException,
                                    AutomationException
Given an input point, calculates the minimum distance to the geometry and provides an enumerator over all closest points on the geometry, along with additional information.

Description

This method is similar to QueryPointsAndDistance; but it handles the case where the location of the minimum distance is not unique (See picture below). QueryPointAndDistance returns only the first location, this method returns all locations of minimum distance.

Remarks

AsRatio is an input parameter that only affects the DistanceAlongCurvereturned as part of the output IEnumPointAndDistance enumerator.

distanceFromCurve is an output parameter that represents the minimum distance between the curve and the input point.

IEnumPointAndDistance is an enumerator (it inherits from IEnumVertex) over all nearest points on the curve

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryPointsAndDistances in interface ICurve3
Parameters:
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
searchRadius - The searchRadius (in)
inPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
asRatio - The asRatio (in)
distanceFromCurve - The distanceFromCurve (in/out: use single element array)
pointsAndDistances - A reference to a com.esri.arcgis.geometry.IEnumPointAndDistance (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryCurvature

public void queryCurvature(double distanceAlongCurve,
                           boolean asRatio,
                           double[] curvature,
                           ILine unitVector)
                    throws IOException,
                           AutomationException
Finds curvature and unit vector starting at point on segment and directed to embedded circle center.

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryCurvature in interface ISegment
Parameters:
distanceAlongCurve - The distanceAlongCurve (in)
asRatio - The asRatio (in)
curvature - The curvature (out: use single element array)
unitVector - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

returnTurnDirection

public int returnTurnDirection(ISegment otherSegment)
                        throws IOException,
                               AutomationException
Finds turn direction between two connected segments.

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
returnTurnDirection in interface ISegment
Parameters:
otherSegment - A reference to a com.esri.arcgis.geometry.ISegment (in)
Returns:
The turnDirection
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

splitAtDistance

public void splitAtDistance(double distances,
                            boolean asRatio,
                            ISegment[] fromSegment,
                            ISegment[] toSegment)
                     throws IOException,
                            AutomationException
Split segment at specified distance.

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
splitAtDistance in interface ISegment
Parameters:
distances - The distances (in)
asRatio - The asRatio (in)
fromSegment - A reference to a com.esri.arcgis.geometry.ISegment (out: use single element array)
toSegment - A reference to a com.esri.arcgis.geometry.ISegment (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

splitDivideLength

public void splitDivideLength(double offset,
                              double length,
                              boolean asRatio,
                              int[] numSplitSegments,
                              ISegment splitSegments)
                       throws IOException,
                              AutomationException
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.splitDivideLength(com.esri.arcgis.geometry.ISegment, double, double, boolean, int[], com.esri.arcgis.geometry.ISegment[][]).

Divide segment into smaller segments of the specified length.

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
splitDivideLength in interface ISegment
Parameters:
offset - The offset (in)
length - The length (in)
asRatio - The asRatio (in)
numSplitSegments - The numSplitSegments (in)
splitSegments - A reference to a com.esri.arcgis.geometry.ISegment (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

densify

public void densify(int cInSlots,
                    double maxDeviation,
                    int[] pcOutSegments,
                    ILine[] segments)
             throws IOException,
                    AutomationException
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.densify(com.esri.arcgis.geometry.ISegment, double, int[], com.esri.arcgis.geometry.ILine[][]).

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

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
densify in interface ISegment
Parameters:
cInSlots - The cInSlots (in)
maxDeviation - The maxDeviation (in)
pcOutSegments - The pcOutSegments (out: use single element array)
segments - A reference to a com.esri.arcgis.geometry.ILine (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

geographicShift

public void geographicShift(double splitLongitude)
                     throws IOException,
                            AutomationException
Shift longitudes to the right of splitLongitude. This method is obsolete.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
geographicShift in interface ISegment
Parameters:
splitLongitude - The splitLongitude (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructEnvelope

public void constructEnvelope(IEnvelope boundingEnvelope)
                       throws IOException,
                              AutomationException
Constructs the inscribed ellipse of the given envelope. The ellipse is oriented counterclockwise.

Description

ConstructEnvelope creates an EllipticArc from a given Envelope. The constructed EllipticArc is the full EllipticArc that has the given Envelope as its Envelope. The EllipticArc has a Major Axis equal to the larger of the Width and Height, and the Minor Axis equal to the smaller of the Width and Height. The CenterPoint of the EllipticArc is the CenterPoint of the Envelope.

Remarks

The method ignores the Z values of the given envelope and therefore the output elliptic arc is 2D.

IConstructEllipticArc ConstructEnvelope Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
constructEnvelope in interface IConstructEllipticArc
Parameters:
boundingEnvelope - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructUpToFivePoints

public void constructUpToFivePoints(IPoint from,
                                    IPoint to,
                                    IPoint thru,
                                    IPoint point4,
                                    IPoint point5)
                             throws IOException,
                                    AutomationException
Constructs an elliptic arc, given up to 5 points, such that the embedded ellipse passes through as many as possible. The arc will start at the first point and end at the second, passing through the third.

Description

Constructs an EllipticArc using as many of the zero to five input points as possible. The first input point is always the From Point of the constructed EllipticArc. The second input point is always the To Point of the constructed EllipticArc. The third point is the Thru Point of the EllipticArc and is always guaranteed to lie on the constructed EllipticArc. The fourth and fifth points may lie on either the constructed EllipticArc or the embedded extension of the EllipticArc. The first three input points are guaranteed to be used in the construction of the EllipticArc. The fourth and fifth points are used in preferential order as long as they do not create an invalid EllipticArc. All points used to construct an EllipticArc must lie on a Convex Hull, otherwise the fourth or fifth non-convex points are discarded to maintain convexity. Zero input points defines an empty EllipticArc. One input point defines a degenerate IsPoint EllipticArc. Two disjoint input points uniquely define a degenerate IsLine EllipticArc with the points at the end of the semiMajor axis with a Minor/Major Ratio of 0. Three non-colinear input points uniquely define an IsCircular EllipticArc in the same manner as ConstructThreePoints constructs a CircularArc. Four input points on a convex hull may be sufficient to uniquely define an unrotated (or Pi / 2 rotated) EllipticArc. For cases where an unrotated EllipticArc cannot be fit to the input points, a reasonable rotated EllipticArc is constructed to fit the input points (this EllipticArc is not the only rotated EllipticArc that can be fit to the input points.).

Remarks

ConstructEllipticArc ConstructUpToFivePoints Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
constructUpToFivePoints in interface IConstructEllipticArc
Parameters:
from - A reference to a com.esri.arcgis.geometry.IPoint (in)
to - A reference to a com.esri.arcgis.geometry.IPoint (in)
thru - A reference to a com.esri.arcgis.geometry.IPoint (in)
point4 - A reference to a com.esri.arcgis.geometry.IPoint (in)
point5 - 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.

constructQuarterEllipse

public void constructQuarterEllipse(IPoint fromPoint,
                                    IPoint toPoint,
                                    boolean cCW)
                             throws IOException,
                                    AutomationException
Construct an elliptic arc that starts at fromPoint, goes to toPoint, and spans an angle of pi/2. The rotation of the ellipse will be either 0 or pi/2.

Description

ConstructQuarterEllipse constructs a quarter EllipticArc between a given From Point and To Point with the desired orientation. The From Point and the To Point lie on the ends of the EllipticArc Axes. The constructed quarter Ellipse can be thought of as being the EllipticArc within the envelope defined by the From Point and To Point with a semiMajor axis equal to the longer side of the envelope and a semiMinor axis equal to the shorter side of the envelope.

Remarks

ConstructEllipticArc ConstructQuarterEllipse Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
constructQuarterEllipse in interface IConstructEllipticArc
Parameters:
fromPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
toPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
cCW - The cCW (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructTwoPointsEnvelope

public void constructTwoPointsEnvelope(IPoint fromPoint,
                                       IPoint toPoint,
                                       IEnvelope suggestedEnvelope,
                                       int orientation)
                                throws IOException,
                                       AutomationException
Construct an elliptic arc that starts at fromPoint, goes to toPoint, and tries to have the embedded ellipse inscribed in the suggestedEnvelope. The result will have rotation of 0 or pi/2.

Description

ConstructTwoPointsEnvelope constructs an EllipticArc given the From and To Points and a suggested Envelope as input. The constructed EllipticArc has characteristics similar to the full ellipse defined by the input Envelope. The final EllipticArc may vary slightly from the input Envelope depending on how well the input Points fit the suggested EllipticArc.

Remarks

IConstructEllipticArc ConstructTwoPointsEnvelope Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
constructTwoPointsEnvelope in interface IConstructEllipticArc
Parameters:
fromPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
toPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
suggestedEnvelope - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
orientation - A com.esri.arcgis.geometry.esriArcOrientation constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryNearestPoint

public void queryNearestPoint(IPoint p,
                              int extension,
                              IPoint nearest)
                       throws IOException,
                              AutomationException
Copies into 'nearest' a point on this geometry nearest to the input point.

Description

Queries the nearest point on a geometry to the input point. Depending on the method of segment extension, the nearest point can also be found on an extension of the geometry.

Remarks

QueryNearestPoint Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNearestPoint in interface IProximityOperator
Parameters:
p - A reference to a com.esri.arcgis.geometry.IPoint (in)
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
nearest - 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.
See Also:
esriSegmentExtension, IProximityOperator.returnNearestPoint(com.esri.arcgis.geometry.IPoint, int)

returnNearestPoint

public IPoint returnNearestPoint(IPoint p,
                                 int extension)
                          throws IOException,
                                 AutomationException
Creates and returns a point on this geometry nearest to the input point.

Description

Finds and returns the nearest point on a geometry to the input point. Depending on the method of segment extension, the nearest point can also be found on an extension of the geometry.

Remarks

ReturnNearestPoint Example

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
returnNearestPoint in interface IProximityOperator
Parameters:
p - A reference to a com.esri.arcgis.geometry.IPoint (in)
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
esriSegmentExtension, IProximityOperator.queryNearestPoint(com.esri.arcgis.geometry.IPoint, int, com.esri.arcgis.geometry.IPoint)

returnDistance

public double returnDistance(IGeometry other)
                      throws IOException,
                             AutomationException
Returns the minimum distance between two geometries.

Description

Returns the minimum distance between two geometries. If the geometries intersect, the minimum distance is 0. Only returns the distance, and not the nearest points.

Remarks

ReturnDistance Example

The geometry combinations which can be used with ReturnDistance are:

Point: Point, MultiPoint, Envelope, Polyline, Polygon, Line, CircularArc, EllipticArc, BezierCurve.
Multipoint: Point, MultiPoint, Envelope, Polyline, Polygon.
Envelope: Point, MultiPoint, Envelope, Line, CircularArc, EllipticArc, BezierCurve, PolyLine, Polygon.
PolyLine: Point, Multipoint, Envelope, PolyLine, Polygon.
Polygon: Point, Multipoint, Envelope, PolyLine, Polygon.
Line: Point, Envelope, Line, CircularArc, EllipticArc, BezierCurve.
CircularArc: Point, Envelope, Line, CircularArc, EllipticArc (not implemented yet), BezierCurve.
EllipticArc: Point, Envelope, Line, CircularArc (not implemented yet), EllipticArc (not implemented yet), BezierCurve (not implemented yet).
BezierCurve: Point, Envelope, Line, CircularArc, EllipticArc (not implemented yet), BezierCurve.

Note: To get the distance between a segment (Line, CircularArc, EllipticArc, BezierCurve) and a MultiPoint, PolyLine or Polygon, add that segment to a PolyLine.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
returnDistance in interface IProximityOperator
Parameters:
other - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Returns:
The distance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interfaceSupportsErrorInfo

public void interfaceSupportsErrorInfo(GUID riid)
                                throws IOException,
                                       AutomationException
interfaceSupportsErrorInfo

Description

Indicates whether the interface supports IErrorInfo.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
interfaceSupportsErrorInfo in interface ISupportErrorInfo
Parameters:
riid - A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

esri_clone

public IClone esri_clone()
                  throws IOException,
                         AutomationException
Clones the receiver and assigns the result to *clone.

Product Availability

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

Specified by:
esri_clone in interface IClone
Returns:
A reference to a com.esri.arcgis.system.IClone
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

assign

public void assign(IClone src)
            throws IOException,
                   AutomationException
Assigns the properties of src to the receiver.

Description

Use Assign method to assign the properties of source object to receiver object. Both objects need to have the same CLSIDs. Both source and receiver objects need to be instantiated.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
assign in interface IClone
Parameters:
src - A reference to a com.esri.arcgis.system.IClone (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEqual

public boolean isEqual(IClone other)
                throws IOException,
                       AutomationException
Indicates if the receiver and other have the same properties.

Description

IsEqual returns True if the receiver and the source have the same properties. Note, this does not imply that the receiver and the source reference the same object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isEqual in interface IClone
Parameters:
other - A reference to a com.esri.arcgis.system.IClone (in)
Returns:
The equal
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isIdentical

public boolean isIdentical(IClone other)
                    throws IOException,
                           AutomationException
Indicates if the receiver and other are the same object.

Description

IsIdentical returns true if the receiver and the source reference the same object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isIdentical in interface IClone
Parameters:
other - A reference to a com.esri.arcgis.system.IClone (in)
Returns:
The identical
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMs

public void getMs(double[] fromM,
                  double[] toM)
           throws IOException,
                  AutomationException
Get the Ms on the segment's endpoints.

Description

Returns the M attributes held by the From and To point of the segment.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getMs in interface ISegmentM
Parameters:
fromM - The fromM (out: use single element array)
toM - The toM (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMs

public void setMs(double fromM,
                  double toM)
           throws IOException,
                  AutomationException
Set the Ms on the segment's endpoints.

Description

Sets the M attributes for the From and To points of the segment. These attributes can be set regardless of the attribute awareness of the segment.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setMs in interface ISegmentM
Parameters:
fromM - The fromM (in)
toM - The toM (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZs

public void getZs(double[] fromZ,
                  double[] toZ)
           throws IOException,
                  AutomationException
Get the Zs on the segment's endpoints.

Description

Returns the Z attributes held by the From and To point of the segment.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getZs in interface ISegmentZ
Parameters:
fromZ - The fromZ (out: use single element array)
toZ - The toZ (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZs

public void setZs(double fromZ,
                  double toZ)
           throws IOException,
                  AutomationException
Set the Zs on the segment's endpoints.

Description

Sets the Z attributes for the From and To points of the segment. These attributes can be set regardless of the attribute awareness of the segment.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setZs in interface ISegmentZ
Parameters:
fromZ - The fromZ (in)
toZ - The toZ (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getIDs

public void getIDs(int[] fromID,
                   int[] toID)
            throws IOException,
                   AutomationException
Get the IDs on the segment's endpoints.

Description

Returns the PointID attributes held by the From and To point of the segment.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getIDs in interface ISegmentID
Parameters:
fromID - The fromID (out: use single element array)
toID - The toID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setIDs

public void setIDs(int fromID,
                   int toID)
            throws IOException,
                   AutomationException
Set the IDs on the segment's endpoints.

Description

Sets the PointID attributes for the From and To points of the segment. These attributes can be set regardless of the attribute awareness of the segment.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setIDs in interface ISegmentID
Parameters:
fromID - The fromID (in)
toID - The toID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.