

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
public interface IEllipticArc
Provides access to members that control properties of elliptic arc segments.
An Elliptic Arc is an object that describes any portion of an ellipse. The Major axis of the Elliptic Arc is the largest axis spanning between points on opposite sides of the ellipse. The Minor axis is the perpendicular bisector of the Major axis. Together, the Major and Minor axes determine the full ellipse on which the Elliptic Arc is generated. These parameters may also be specified in terms of the semiMajor axis (half of the Major axis) and the MinorMajorRatio (the ratio of the Minor axis to the Major axis). The ellipse may also be rotated. Rotation is described by the Rotation Angle. However, the effect of the Rotation Angle depends on the value of EllipseStd. If EllipseStd is TRUE, all angles and axes are calculated with respect to the Major Axis as though the Major Axis was at 0 radians. Also, the location of the From Point and To Point are given relative to the Center Point as though it is the origin. If EllipseStd is FALSE, all angles are caluclated in standard Cartesian coordinates. The portion of the complete ellipse represented by the Elliptic Arc is determined by the From Angle and Central Angle, both measured in radians.
A CircularArc is a special case of an EllipticArc where the MinorMajorRatio is 1 (however, a CircularArc is NOT an EllipticArc).
IPoint
,
IGeometry
,
IEnvelope
,
IConstructEllipticArc
,
ISegment
Method Summary  

void 
complement()
Changes this ellipse into its complement; 'from' and 'to' points are unchanged. 
void 
getAxes(double[] semiMajor,
double[] semiMinor,
double[] minorMajorRatio)
Gets the semimajor and semiminor axes. 
IPoint 
getCenterPoint()
The center point of the arc. 
double 
getCentralAngle()
The included (or central) angle. 
double 
getFromAngle(boolean ellipseStd)
The start angle (measured from a horizontal line through the center point) defining where the arc starts. 
double 
getToAngle(boolean ellipseStd)
The end angle (measured from a horizontal line through the center point) defining where the arc ends. 
boolean 
isCircular()
Indicates if this elliptical arc is acutally circular (major and minor axes same length). 
boolean 
isCounterClockwise()
Indicates if this elliptic arc is oriented counterclockwise from its 'from' point to its 'to' point. 
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 
putAxes(double semiMajor,
double minorMajorRatio)
Sets the semimajor and semiminor 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 
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 
setCentralAngle(double centralAngle)
The included (or central) angle. 
void 
setFromAngle(boolean ellipseStd,
double fromAngle)
The start angle (measured from a horizontal line through the center point) defining where the arc starts. 
void 
setIsCounterClockwise(boolean isCCW)
Indicates if this elliptic arc is oriented counterclockwise 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 
setToAngle(boolean ellipseStd,
double toAngle)
The end angle (measured from a horizontal line through the center point) defining where the arc ends. 
Methods inherited from interface com.esri.arcgis.geometry.ICurve 

getFromPoint, getLength, getSubcurve, getToPoint, isClosed, queryFromPoint, queryNormal, queryPoint, queryPointAndDistance, queryTangent, queryToPoint, reverseOrientation, setFromPoint, setToPoint 
Methods inherited from interface com.esri.arcgis.geometry.IGeometry 

geoNormalize, geoNormalizeFromLongitude, getDimension, getEnvelope, getGeometryType, getSpatialReference, isEmpty, project, queryEnvelope, setEmpty, setSpatialReferenceByRef, snapToSpatialReference 
Method Detail 

void queryCoords(boolean ellipseStd, IPoint center, IPoint from, IPoint to, double[] rotationAngle, double[] minorMajorRatio, boolean[] isCCW, boolean[] minor) throws IOException, AutomationException
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.
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"
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)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IEllipticArc.putCoords(boolean, com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint, double, double, int)
void putCoords(boolean ellipseStd, IPoint center, IPoint from, IPoint to, double rotationAngle, double minorMajorRatio, int orientation) throws IOException, AutomationException
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.
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.
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)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.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)
void queryCoordsByAngle(boolean ellipseStd, IPoint center, double[] fromAngle, double[] centralAngle, double[] rotationAngle, double[] semiMajor, double[] minorMajorRatio) throws IOException, AutomationException
Given the EllipseStd value, returns the Center Point, From Angle, Central Angle, Rotation Angle, semiMajor 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 semiMajor Axis rather than the XAxis.
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)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IEllipticArc.putCoordsByAngle(boolean, com.esri.arcgis.geometry.IPoint, double, double, double, double, double)
void putCoordsByAngle(boolean ellipseStd, IPoint center, double fromAngle, double centralAngle, double rotationAngle, double semiMajor, double minorMajorRatio) throws IOException, AutomationException
Creates an Elliptic Arc given the EllipseStd value, Center Point, From Angle, Central Angle, Rotation Angle, semiMajor Axis length, and Minor Axis to Major Axis Ratio. If EllipseStd = TRUE, the From Angle is relative to the rotated semiMajor Axis rather than the XAxis.
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.
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)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IEllipticArc.queryCoordsByAngle(boolean, com.esri.arcgis.geometry.IPoint, double[], double[], double[], double[], double[])
IPoint getCenterPoint() throws IOException, AutomationException
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.
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.void queryCenterPoint(IPoint center) throws IOException, AutomationException
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
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.
center
 A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.void getAxes(double[] semiMajor, double[] semiMinor, double[] minorMajorRatio) throws IOException, AutomationException
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.
The Axes can be set using PutAxes.
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)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.void putAxes(double semiMajor, double minorMajorRatio) throws IOException, AutomationException
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.
The Axes can be returned using GetAxes.
semiMajor
 The semiMajor (in)minorMajorRatio
 The minorMajorRatio (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.double getFromAngle(boolean ellipseStd) throws IOException, AutomationException
ellipseStd
 The ellipseStd (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.void setFromAngle(boolean ellipseStd, double fromAngle) throws IOException, AutomationException
ellipseStd
 The ellipseStd (in)fromAngle
 The fromAngle (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.double getToAngle(boolean ellipseStd) throws IOException, AutomationException
ellipseStd
 The ellipseStd (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.void setToAngle(boolean ellipseStd, double toAngle) throws IOException, AutomationException
ellipseStd
 The ellipseStd (in)toAngle
 The toAngle (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.double getCentralAngle() throws IOException, AutomationException
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.
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.void setCentralAngle(double centralAngle) throws IOException, AutomationException
centralAngle
 The centralAngle (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.boolean isPoint() throws IOException, AutomationException
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 welldefined EllipticArc.).
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.boolean isLine() throws IOException, AutomationException
IsLine returns TRUE when the minorMajorRatio = 0. This is analgous to the semiMinor Axis having a length of 0.
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.boolean isCounterClockwise() throws IOException, AutomationException
IsCounterClockwise returns TRUE if the CentralAngle is greater than 0. If the IsCounterClockwise values differ, setting IsCounterClockwise changes the EllipticArc to its Complement.
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.void setIsCounterClockwise(boolean isCCW) throws IOException, AutomationException
isCCW
 The isCCW (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.boolean isMinor() throws IOException, AutomationException
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.
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.void setIsMinor(boolean isMinor) throws IOException, AutomationException
isMinor
 The isMinor (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.void complement() throws IOException, AutomationException
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.
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.boolean isCircular() throws IOException, AutomationException
IsCircular returns TRUE when the minorMajorRatio = 1.
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 