|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.geometry.Path
public class Path
A sequence of connected segments.
Constructor Summary | |
---|---|
Path()
Constructs a Path using ArcGIS Engine. |
|
Path(Object obj)
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts. Path thePath = (Path) obj; |
Method Summary | |
---|---|
void |
addPoint(IPoint inPoint,
Object before,
Object after)
Adds a vertex to a Path, Ring, Polyline, or Polygon; or adds a reference to the input point to a Multipoint, TriangleFan, or TriangleStrip. |
void |
addPointCollection(IPointCollection newPoints)
Adds copies of points in the input point collection to this Path, Ring, Polyline, or Polygon; or adds references to the points in the collection to this Multipoint, TriangleFan, or TriangleStrip. |
void |
addPoints(int count,
IPoint newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.addPoints(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.geometry.IPoint[]) . |
void |
addSegment(ISegment inSegment,
Object before,
Object after)
Adds a reference to the input segment at the end, or before or after a specified index. |
void |
addSegmentCollection(ISegmentCollection segments)
Adds references to the segments from the specified segment collection. |
void |
addSegments(int count,
ISegment newSegments)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.addSegments(com.esri.arcgis.geometry.ISegmentCollection, com.esri.arcgis.geometry.ISegment[]) . |
void |
addWKSPointZs(int count,
_WKSPointZ pointStructures)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.addWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.system._WKSPointZ[]) . |
void |
assign(IClone src)
Assigns the properties of src to the receiver. |
void |
constructRigidStretch(IPath srcPath,
int stretchStartIndex,
int startAnchor,
int endAnchor,
IPoint stretchEnd)
Constructs a scaled, rotated version of srcPath. |
void |
deserialize(IXMLSerializeData data)
Deserializes an object from XML. |
boolean |
equals(Object o)
Compare this object with another |
IClone |
esri_clone()
Clones the receiver and assigns the result to *clone. |
void |
generalize(double maxAllowableOffset)
Generalizes this path using the Douglas-Poiker algorithm. |
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. |
static String |
getClsid()
getClsid. |
int |
getDimension()
The topological dimension of this geometry. |
IEnumCurve |
getEnumCurve()
A new curve enumerator for this segment collection. |
IEnumSegment |
getEnumSegments()
A new enumerator for this segment collection. |
IEnumVertex |
getEnumVertices()
A new enumerator for this point collection. |
IEnvelope |
getEnvelope()
Creates a copy of this geometry's envelope and returns it. |
IPoint |
getFromPoint()
The 'from' point of the curve. |
int |
getGeometryType()
The type of this geometry. |
IEnumSegment |
getIndexedEnumSegments(IGeometry queryGeometry)
A new indexed segment enumerator for this segment collection. |
IEnumVertex |
getIndexedEnumVertices(IGeometry queryGeometry)
An indexed vertex enumerator for this point collection. |
double |
getLength()
The length of the curve. |
IPoint |
getPoint(int i)
A copy of the ith vertex of a Path, Ring, Polyline, or Polygon; or a reference to the ith point of a Multipoint, TriangleFan, or TriangleStrip. |
int |
getPointCount()
The number of points in the collection. |
void |
getPoints(int index,
int count,
IPoint[] points)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.getPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[][]) . |
ISegment |
getSegment(int i)
A reference to the ith segment. |
int |
getSegmentCount()
The number of segments. |
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. |
IPoint |
getToPoint()
The 'to' point of the curve. |
int |
hashCode()
the hashcode for this object |
void |
hasNonLinearSegments(boolean[] nonLinearSegments)
Indicates if this segment collection contains segments other than lines. |
void |
insertPointCollection(int index,
IPointCollection newPoints)
Inserts copies of points, from the input point collection, as vertices into this Path, Ring, Polyline, or Polygon; or references to points in the input point collection into this Multipoint, TriangleFan, or TriangleStrip. |
void |
insertPoints(int index,
int count,
IPoint newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.insertPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[]) . |
void |
insertSegmentCollection(int index,
ISegmentCollection newSegments)
Inserts references to the segments in the input collectoin. |
void |
insertSegmentCollectionEx(int index,
int start,
int count,
ISegmentCollection newSegments)
Inserts references to some of the segments from the input collection. |
void |
insertSegments(int index,
int count,
ISegment newSegments)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.insertSegments(com.esri.arcgis.geometry.ISegmentCollection, int, com.esri.arcgis.geometry.ISegment[]) . |
void |
insertWKSPointZs(int index,
int count,
_WKSPointZ newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.insertWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.system._WKSPointZ[]) . |
void |
interfaceSupportsErrorInfo(GUID riid)
interfaceSupportsErrorInfo |
boolean |
isClosed()
Indicates if 'from' and 'to' points (of each part) are identical. |
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. |
void |
move(double dx,
double dy)
Moves dx units horizontally and dy units vertically. |
void |
move3D(double dx,
double dy,
double dz)
Moves the object by dx, dy and dz along the x, y, and z axes respectively. |
void |
moveVector(ILine v)
Moves a direction and distance v. |
void |
moveVector3D(IVector3D v)
Moves the object by an offset defined by a 3D vector. |
void |
project(ISpatialReference newReferenceSystem)
Projects this geometry into a new spatial reference. |
IGeometry |
projectToPlane(IPoint planarOrigin,
IVector3D planarPositiveX,
IVector3D planarNorm)
Generates a polygon footprint for the object in an arbitrary plane. |
void |
queryChordLengthTangents(int pointIndex,
IPoint prevTangent,
boolean[] prevSetByUser,
IPoint nextTangent,
boolean[] nextSetByUser)
Returns tangent vectors (relative to corresponding endpoint) at both sides of a Bezier end point; and whether they have been set by user or by smoothing process. |
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 |
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 |
queryPoint(int index,
IPoint point)
Queries for a point in the PointCollection at given index. |
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 |
queryPoints(int index,
int count,
IPoint points)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.queryPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[][]) . |
void |
querySegments(int index,
int count,
ISegment[] segments)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.querySegments(com.esri.arcgis.geometry.ISegmentCollection, int, com.esri.arcgis.geometry.ISegment[][]) . |
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. |
void |
queryWKSPointZs(int index,
int count,
_WKSPointZ[] pointStructures)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.queryWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.system._WKSPointZ[][]) . |
void |
removePoints(int index,
int count)
Removes vertices from a Path, Ring, Polyline, or Polygon, or references to points from a Multipoint, TriangleFan, or TriangleStrip. |
void |
removeSegments(int index,
int count,
boolean closeGap)
Removes references to some segments. |
void |
replacePointCollection(int index,
int goingAway,
IPointCollection newPoints)
Replaces vertices/points within a PointCollection. |
void |
replacePoints(int index,
int comingIn,
int goingAway,
IPoint newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.replacePoints(com.esri.arcgis.geometry.IPointCollection4, int, int, com.esri.arcgis.geometry.IPoint[]) . |
void |
replaceSegmentCollection(int index,
int goingAway,
ISegmentCollection newSegments)
Remove and inserts some segments. |
void |
replaceSegments(int index,
int comingIn,
int goingAway,
ISegment newSegments)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.replaceSegments(com.esri.arcgis.geometry.ISegmentCollection, int, int, com.esri.arcgis.geometry.ISegment[]) . |
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 |
rotateVector3D(IVector3D axis,
double rotationAngle)
Rotates the object about axis defined by the specified vector through an angle measured in radians. |
void |
scale(IPoint origin,
double sx,
double sy)
Scales about the specified origin using seperate horizonal and vertical scales. |
void |
scale3D(IPoint origin,
double sx,
double sy,
double sz)
Scales the object about the specified origin point. |
void |
segmentsChanged()
Informs the segment collection that any cached values that it may be maintaining (envelope, length, etc.) are invalid. |
void |
serialize(IXMLSerializeData data)
Serializes an object to XML. |
void |
setChordLengthTangents(int pointIndex,
IPoint prevTangent,
IPoint nextTangent)
Sets tangent vectors (relative to corresponding endpoint) at both sides of a Bezier end point; if either is Nothing, they will be set by smoothing process. |
void |
setCircle(IPoint cp,
double circleRadius)
Defines this path, ring, polyline or polygon to contain a single circular arc segment that is closed. |
void |
setEmpty()
Removes all points from this geometry. |
void |
setFromPoint(IPoint from)
The 'from' point of the curve. |
void |
setPointCollection(IPointCollection newPoints)
Replaces all vertices of this Path, Ring, Polyline, or Polygon with copies of the points in the input collection; or all points of this Multipoint, TriangleFan, or TriangleStrip with references to points from the input collection. |
void |
setPoints(int count,
IPoint newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.setPoints(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.geometry.IPoint[]) . |
void |
setRectangle(IEnvelope inEnvelope)
Defines this path, ring, polyline or polygon to have four line segments in the same positions as the sides of the input envelope. |
void |
setSegmentCollection(ISegmentCollection newSegments)
Replaces all segments with references to segments from the input collection. |
void |
setSegments(int count,
ISegment newSegments)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.setSegments(com.esri.arcgis.geometry.ISegmentCollection, com.esri.arcgis.geometry.ISegment[]) . |
void |
setSpatialReferenceByRef(ISpatialReference spatialRef)
The spatial reference associated with this geometry. |
void |
setToPoint(IPoint to)
The 'to' point of the curve. |
void |
setWKSPointZs(int count,
_WKSPointZ pointStructures)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.setWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.system._WKSPointZ[]) . |
void |
smooth(double maxAllowableOffset)
Converts this path into a smooth approximation of itself that contains only Bezier curve segments. |
void |
smoothLocal(int vertexIndex)
Replaces up to four segments (two on each of the specified vertex index) with bezier curves. |
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 |
transform(int direction,
ITransformation transformation)
Applies an arbitrary transformation. |
void |
transform3D(int direction,
ITransformation3D transformation)
Applies an arbitrary 3D transformation. |
void |
updatePoint(int i,
IPoint p)
Changes the ith vertex or point to be a copy of the input point. |
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 |
---|
public Path() throws IOException, UnknownHostException
IOException
- if there are interop problems
UnknownHostException
- if there are interop problemspublic Path(Object obj) throws IOException
Path thePath = (Path) obj;
obj
to Path
.
obj
- an object returned from ArcGIS Engine or Server
IOException
- if there are interop problemsMethod Detail |
---|
public static String getClsid()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public int getPointCount() throws IOException, AutomationException
Returns the number of Points in the PointCollection. The last Point in the PointCollection has an index equal to PointCount - 1.
getPointCount
in interface IPointCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPoint getPoint(int i) throws IOException, AutomationException
getPoint
in interface IPointCollection
i
- The i (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addPoint(IPoint inPoint, Object before, Object after) throws IOException, AutomationException
Adds a Point to a PointCollection. If before and after are omitted, the Point is added to the end of the PointCollection. Additionally, by specifying either the before or after index, the Point can be added at a specific location in the PointCollection.
addPoint
in interface IPointCollection
inPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)before
- A Variant (in, optional, pass null if not required)after
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void updatePoint(int i, IPoint p) throws IOException, AutomationException
Updates the ith Point with a copy of the input Point. Update replaces the reference to the indexed point with a reference to the input Point.
For efficiency UpdatePoint does not check if the spatial reference of the input point is equal to the spatial reference of the PointCollection. Please make sure that the spatial reference of the input point is equal to the spatial reference of the PointCollection before you pass the point in.
Note : You can also explicitly check the spatial reference by
using IClone::IsEqual
//To check spatial reference efficiently
IPoint pointIn = null;
IPointCollection ptColl = null;
ISpatialReference pSpatialReferenceOfCollection = null;
//The next line will not do anything if the two projections are equal
pointIn.project(pSpatialReferenceOfCollection);
ptColl.updatePoint( 1, pointIn);
updatePoint
in interface IPointCollection
i
- The i (in)p
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryPoints(int index, int count, IPoint points) throws IOException, AutomationException
GeometryEnvironment.queryPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[][])
.
Queries a specified number (Count) of Points starting at the given index into an array of Points.
queryPoints
in interface IPointCollection
index
- The index (in)count
- The count (in)points
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertPoints(int index, int count, IPoint newPoints) throws IOException, AutomationException
GeometryEnvironment.insertPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[])
.
Inserts a specified number (Count) of Points into the PointCollection at the given index from an array of Points. The first Count points from the array are inserted.
insertPoints
in interface IPointCollection
index
- The index (in)count
- The count (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertPointCollection(int index, IPointCollection newPoints) throws IOException, AutomationException
Inserts a PointCollection of Points into the PointCollection at the specified index. The resulting PointCollection does not retain information about the distinction between the old and new Point Collections.
insertPointCollection
in interface IPointCollection
index
- The index (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPointCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addPoints(int count, IPoint newPoints) throws IOException, AutomationException
GeometryEnvironment.addPoints(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.geometry.IPoint[])
.
Adds the first specified number (Count) of Points to the PointCollection from an array of Points (with at least Count points). The Points are all added to the end of the PointCollection in the same sequence as they are ordered in the array.
addPoints
in interface IPointCollection
count
- The count (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addPointCollection(IPointCollection newPoints) throws IOException, AutomationException
Adds a PointCollection of Points to the end of the PointCollection. The resulting PointCollection does not retain the division between the old PointCollection and the additional PointCollection.
addPointCollection
in interface IPointCollection
newPoints
- A reference to a com.esri.arcgis.geometry.IPointCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPoints(int count, IPoint newPoints) throws IOException, AutomationException
GeometryEnvironment.setPoints(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.geometry.IPoint[])
.
Sets the contents of the PointCollection equal to the first Count Points from the input array of Points. After SetPoints is called, the PointCollection contains only count Points from the input Point array (regardless of what it may have contained previously).
setPoints
in interface IPointCollection
count
- The count (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPointCollection(IPointCollection newPoints) throws IOException, AutomationException
Sets the contents of the PointCollection equal to the contents of the input PointCollection. After SetPointCollection is called, the PointCollection contains only the Points from the input PointCollection (regardless of what it may have contained previously).
setPointCollection
in interface IPointCollection
newPoints
- A reference to a com.esri.arcgis.geometry.IPointCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removePoints(int index, int count) throws IOException, AutomationException
Removes a specified number (Count) of Points from a PointCollection starting at a given index.
removePoints
in interface IPointCollection
index
- The index (in)count
- The count (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumVertex getEnumVertices() throws IOException, AutomationException
Returns an EnumVertex for the vertices in the PointCollection. The EnumVertex allows the Points to be tranversed in a sequential order.
getEnumVertices
in interface IPointCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void replacePoints(int index, int comingIn, int goingAway, IPoint newPoints) throws IOException, AutomationException
GeometryEnvironment.replacePoints(com.esri.arcgis.geometry.IPointCollection4, int, int, com.esri.arcgis.geometry.IPoint[])
.
Removes a specified number (goingAway) of Points from a PointCollection starting at a given index and replaces them (starting at the same index) with a specified number (comingIn) of Points from an array of Points.
If you are using attempting to use this method from a .NET enabled language, such as VB.NET, you may need to use the ReplacePoints method provided by the IGeometryBridge interface exposed on the GeometryEnvironment object.
replacePoints
in interface IPointCollection
index
- The index (in)comingIn
- The comingIn (in)goingAway
- The goingAway (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void replacePointCollection(int index, int goingAway, IPointCollection newPoints) throws IOException, AutomationException
Replaces a specified number (goingAway) of Points in the PointCollection begining at a given index with a PointCollection of Points (inserted at the given index).
replacePointCollection
in interface IPointCollection
index
- The index (in)goingAway
- The goingAway (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPointCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryPoint(int index, IPoint point) throws IOException, AutomationException
Queries the ith Point from the PointCollection. The first Point in the PointCollection has index 0, and the last Point has index equal to PointCount - 1. (Alternatively, the last Point in the PointCollection can be referenced using index -1.).
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.
queryPoint
in interface IPointCollection
index
- The index (in)point
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addWKSPointZs(int count, _WKSPointZ pointStructures) throws IOException, AutomationException
GeometryEnvironment.addWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.system._WKSPointZ[])
.
addWKSPointZs
in interface IPointCollection4
count
- The count (in)pointStructures
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setWKSPointZs(int count, _WKSPointZ pointStructures) throws IOException, AutomationException
GeometryEnvironment.setWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.system._WKSPointZ[])
.
setWKSPointZs
in interface IPointCollection4
count
- The count (in)pointStructures
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryWKSPointZs(int index, int count, _WKSPointZ[] pointStructures) throws IOException, AutomationException
GeometryEnvironment.queryWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.system._WKSPointZ[][])
.
queryWKSPointZs
in interface IPointCollection4
index
- The index (in)count
- The count (in)pointStructures
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertWKSPointZs(int index, int count, _WKSPointZ newPoints) throws IOException, AutomationException
GeometryEnvironment.insertWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.system._WKSPointZ[])
.
insertWKSPointZs
in interface IPointCollection4
index
- The index (in)count
- The count (in)newPoints
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumVertex getIndexedEnumVertices(IGeometry queryGeometry) throws IOException, AutomationException
getIndexedEnumVertices
in interface IPointCollection3
queryGeometry
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getPoints(int index, int count, IPoint[] points) throws IOException, AutomationException
GeometryEnvironment.getPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[][])
.
getPoints
in interface IPointCollection2
index
- The index (in)count
- The count (in)points
- A reference to a com.esri.arcgis.geometry.IPoint (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getGeometryType() throws IOException, AutomationException
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
getGeometryType
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getDimension() throws IOException, AutomationException
Returns the dimension of the geometry object based on the geometry's type.
getDimension
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISpatialReference getSpatialReference() throws IOException, AutomationException
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.
getSpatialReference
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSpatialReferenceByRef(ISpatialReference spatialRef) throws IOException, AutomationException
setSpatialReferenceByRef
in interface IGeometry
spatialRef
- A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isEmpty() throws IOException, AutomationException
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.
isEmpty
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setEmpty() throws IOException, AutomationException
SetEmpty returns the Geometry to its original initialization state by releasing all data referenced by the Geometry.
setEmpty
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryEnvelope(IEnvelope outEnvelope) throws IOException, AutomationException
Returns the unique Envelope that binds the Geometry object. This is the smallest Envelope that Contains the object.
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
in interface IGeometry
outEnvelope
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnvelope getEnvelope() throws IOException, AutomationException
Returns the unique Envelope that binds the Geometry object. This is the smallest Envelope that Contains the object.
getEnvelope
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void project(ISpatialReference newReferenceSystem) throws IOException, AutomationException
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.
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.
project
in interface IGeometry
newReferenceSystem
- A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void snapToSpatialReference() throws IOException, AutomationException
snapToSpatialReference
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void geoNormalize() throws IOException, AutomationException
geoNormalize
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void geoNormalizeFromLongitude(double longitude) throws IOException, AutomationException
geoNormalizeFromLongitude
in interface IGeometry
longitude
- The longitude (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getSegmentCount() throws IOException, AutomationException
Returns the number of Segments in the Segment Collection. The last Segment in the Segment Collection has an index equal to SegmentCount - 1.
getSegmentCount
in interface ISegmentCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISegment getSegment(int i) throws IOException, AutomationException
getSegment
in interface ISegmentCollection
i
- The i (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addSegment(ISegment inSegment, Object before, Object after) throws IOException, AutomationException
Adds a Segment to a Segment Collection. If before and after are omitted, the Segment is added to the end of the Segment Collection. Additionally, by specifying either the before or after index, the Segment can be added at a specific location in the Segment Collection.
addSegment
in interface ISegmentCollection
inSegment
- A reference to a com.esri.arcgis.geometry.ISegment (in)before
- A Variant (in, optional, pass null if not required)after
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void querySegments(int index, int count, ISegment[] segments) throws IOException, AutomationException
GeometryEnvironment.querySegments(com.esri.arcgis.geometry.ISegmentCollection, int, com.esri.arcgis.geometry.ISegment[][])
.
Queries a specified number (Count) of Segments starting at the given index into an array of Segments.
querySegments
in interface ISegmentCollection
index
- The index (in)count
- The count (in)segments
- A reference to a com.esri.arcgis.geometry.ISegment (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addSegments(int count, ISegment newSegments) throws IOException, AutomationException
GeometryEnvironment.addSegments(com.esri.arcgis.geometry.ISegmentCollection, com.esri.arcgis.geometry.ISegment[])
.
Adds the first specified number (Count) of Segments to the Segment Collection from an array of Segments (with at least Count segments). The Segments are all added to the end of the Segment Collection in the same sequence as they are ordered in the array.
Note: the array must contains only ISegment pointers, otherwise it night crash the application.
addSegments
in interface ISegmentCollection
count
- The count (in)newSegments
- A reference to a com.esri.arcgis.geometry.ISegment (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addSegmentCollection(ISegmentCollection segments) throws IOException, AutomationException
Adds a Segment Collection of Segments to the end of the existing Segment Collection. It is assumed that the From Point of the new Segment Collection is the same as the To Point of the existing Segment Collection.
AddSegmentCollection add the other geometry to the last part of the current geometry.
For example, adding a polyline (with one part) to another polyline (with one part)
is adding the second polyline segments into the first part of the other polyline
even if the polylines are disjoint.
addSegmentCollection
in interface ISegmentCollection
segments
- A reference to a com.esri.arcgis.geometry.ISegmentCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertSegments(int index, int count, ISegment newSegments) throws IOException, AutomationException
GeometryEnvironment.insertSegments(com.esri.arcgis.geometry.ISegmentCollection, int, com.esri.arcgis.geometry.ISegment[])
.
Inserts a specified number (Count) of Segments into the Segment Collection at the given index from an array of Segments. The first Count segments from the array are inserted.
insertSegments
in interface ISegmentCollection
index
- The index (in)count
- The count (in)newSegments
- A reference to a com.esri.arcgis.geometry.ISegment (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertSegmentCollection(int index, ISegmentCollection newSegments) throws IOException, AutomationException
Inserts a Segment Collection of segments into the Segment Collection at the specified index. The resulting Segment Collection does not retain information about the distinction between the old and new Segment Collections.
insertSegmentCollection
in interface ISegmentCollection
index
- The index (in)newSegments
- A reference to a com.esri.arcgis.geometry.ISegmentCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertSegmentCollectionEx(int index, int start, int count, ISegmentCollection newSegments) throws IOException, AutomationException
insertSegmentCollectionEx
in interface ISegmentCollection
index
- The index (in)start
- The start (in)count
- The count (in)newSegments
- A reference to a com.esri.arcgis.geometry.ISegmentCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void replaceSegments(int index, int comingIn, int goingAway, ISegment newSegments) throws IOException, AutomationException
GeometryEnvironment.replaceSegments(com.esri.arcgis.geometry.ISegmentCollection, int, int, com.esri.arcgis.geometry.ISegment[])
.
Removes a specified number (goingAway) of Segments from a Segment Collection starting at a given index and replaces them (starting at the same index) with a specified number (comingIn) of Segments from an array of Segments.
ReplaceSegments will return an error ("The index is either too large or too small") if the inputs are inconsistent. For example, specifying index = 4 on a polyline with only 2 segments.
On multipart geometry, segments cannot be replaced on more than one part at the time. For example, an error (("The index is either too large or too small") is returned on a polyline with two parts containing three segments each when specifying index= 2, incoming= 2, removal= 2. The error is returned because the first part doesn't contain enough segments to remove two segments starting at index = 2. This behavior is enforced for performance reasons. Please see the example.
replaceSegments
in interface ISegmentCollection
index
- The index (in)comingIn
- The comingIn (in)goingAway
- The goingAway (in)newSegments
- A reference to a com.esri.arcgis.geometry.ISegment (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void replaceSegmentCollection(int index, int goingAway, ISegmentCollection newSegments) throws IOException, AutomationException
Replaces a specified number (goingAway) of Segments in the Segment Collection begining at a given index with a Segment Collection of Segments (inserted at the given index).
replaceSegmentCollection
in interface ISegmentCollection
index
- The index (in)goingAway
- The goingAway (in)newSegments
- A reference to a com.esri.arcgis.geometry.ISegmentCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removeSegments(int index, int count, boolean closeGap) throws IOException, AutomationException
Removes a specified number (Count) of Segments from a Segment Collection starting at a given index.
If the removal created a disjoint Path and if closeGap is TRUE, then the remaining segments will
be connected at the midpoint of the gap by modifying the segments adjacent to the gap.This will create a
connected Path.
removeSegments
in interface ISegmentCollection
index
- The index (in)count
- The count (in)closeGap
- The closeGap (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setCircle(IPoint cp, double circleRadius) throws IOException, AutomationException
Sets a SegmentCollection equal to a single segment CircularArc. The CircularArc is a complete circle centered at the input point with a given input Radius. After SetCircle is called, the SegmentCollection contains only the CiruclarArc (regardless of what it may have contained previously). The To and From Points at located at the top (Pi/2 Radians) of the circle.
setCircle
in interface ISegmentCollection
cp
- A reference to a com.esri.arcgis.geometry.IPoint (in)circleRadius
- The circleRadius (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IConstructCircularArc.constructCircle(com.esri.arcgis.geometry.IPoint, double, boolean)
,
ISegmentCollection.setCircle(com.esri.arcgis.geometry.IPoint, double)
public void setRectangle(IEnvelope inEnvelope) throws IOException, AutomationException
Sets the contents of the SegmentCollection equal to four Line segments that form the sides of the input Envelope. The Segments begin with the LowerLeft point and proceed clockwise (the first side is the left side). After SetRectangle is called, the SegmentCollection contains only the 4 Line segments (regardless of what it may have contained previously). The spatial reference of the envelope is transferred to the SegmentCollection.
setRectangle
in interface ISegmentCollection
inEnvelope
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSegments(int count, ISegment newSegments) throws IOException, AutomationException
GeometryEnvironment.setSegments(com.esri.arcgis.geometry.ISegmentCollection, com.esri.arcgis.geometry.ISegment[])
.
Sets the contents of the Segment Collection equal to the first Count segments from the input array of Segments. After SetSegments is called, the Segment Collection contains only count segments from the input Segment array (regardless of what it may have contained previously).
setSegments
in interface ISegmentCollection
count
- The count (in)newSegments
- A reference to a com.esri.arcgis.geometry.ISegment (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSegmentCollection(ISegmentCollection newSegments) throws IOException, AutomationException
Sets the contents of the Segment Collection equal to the contents of the input Segment Collection. After SetSegmentCollection is called, the Segment Collection contains only the segments from the input Segment Collection (regardless of what it may have contained previously).
setSegmentCollection
in interface ISegmentCollection
newSegments
- A reference to a com.esri.arcgis.geometry.ISegmentCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumSegment getEnumSegments() throws IOException, AutomationException
Returns an IEnumSegment enumerator for the current SegmentCollection.
getEnumSegments
in interface ISegmentCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumCurve getEnumCurve() throws IOException, AutomationException
Returns an IEnumCurve enumerator for the current SegmentCollection.
getEnumCurve
in interface ISegmentCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void hasNonLinearSegments(boolean[] nonLinearSegments) throws IOException, AutomationException
Returns TRUE if the Segment Collection contains CircularArcs, BezierCurves, or EllipticArcs. Returns FALSE if all segments are Lines.
hasNonLinearSegments
in interface ISegmentCollection
nonLinearSegments
- The nonLinearSegments (in/out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumSegment getIndexedEnumSegments(IGeometry queryGeometry) throws IOException, AutomationException
getIndexedEnumSegments
in interface ISegmentCollection
queryGeometry
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void segmentsChanged() throws IOException, AutomationException
SegmentsChanged forces the SegmentCollection to recalculate any values that it has cached. SegmentsChanged should be used whenever the Segments in the SegmentCollection are modified without using the SegmentCollection methods. As long as the SegmentCollection is only modified using SegmentCollection methods, the cached values are current and consistent.
segmentsChanged
in interface ISegmentCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getLength() throws IOException, AutomationException
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.
getLength
in interface ICurve
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPoint getFromPoint() throws IOException, AutomationException
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.
getFromPoint
in interface ICurve
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPoint
,
ICurve.queryFromPoint(com.esri.arcgis.geometry.IPoint)
,
ICurve.getFromPoint()
,
ICurve.queryToPoint(com.esri.arcgis.geometry.IPoint)
,
ICurve.getToPoint()
public void setFromPoint(IPoint from) throws IOException, AutomationException
setFromPoint
in interface ICurve
from
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryFromPoint(IPoint from) throws IOException, AutomationException
Used to query the FromPoint of the first Segment of the first part of the curve.
Note: The output geometry must be co-created prior to the query. The output geometry is not co-created by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.
queryFromPoint
in interface ICurve
from
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPoint
,
ICurve.queryFromPoint(com.esri.arcgis.geometry.IPoint)
,
ICurve.getFromPoint()
,
ICurve.queryToPoint(com.esri.arcgis.geometry.IPoint)
,
ICurve.getToPoint()
public IPoint getToPoint() throws IOException, AutomationException
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.
getToPoint
in interface ICurve
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPoint
,
ICurve.queryFromPoint(com.esri.arcgis.geometry.IPoint)
,
ICurve.getFromPoint()
,
ICurve.queryToPoint(com.esri.arcgis.geometry.IPoint)
,
ICurve.getToPoint()
public void setToPoint(IPoint to) throws IOException, AutomationException
setToPoint
in interface ICurve
to
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryToPoint(IPoint to) throws IOException, AutomationException
Used to query the ToPoint of the first Segment of the first part of the curve.
Note: The output geometry must be co-created prior to the query. The output geometry is not co-created by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.
queryToPoint
in interface ICurve
to
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPoint
,
ICurve.queryFromPoint(com.esri.arcgis.geometry.IPoint)
,
ICurve.getFromPoint()
,
ICurve.queryToPoint(com.esri.arcgis.geometry.IPoint)
,
ICurve.getToPoint()
public void queryPoint(int extension, double distanceAlongCurve, boolean asRatio, IPoint outPoint) throws IOException, AutomationException
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.
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.
queryPoint
in interface ICurve
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPoint
,
esriSegmentExtension
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 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.
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 input 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
in interface ICurve
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPoint
public void queryTangent(int extension, double distanceAlongCurve, boolean asRatio, double length, ILine tangent) throws IOException, AutomationException
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.
queryTangent
in interface ICurve
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.ILine
public void queryNormal(int extension, double distanceAlongCurve, boolean asRatio, double length, ILine normal) throws IOException, AutomationException
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.
queryNormal
in interface ICurve
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.ILine
public void getSubcurve(double fromDistance, double toDistance, boolean asRatio, ICurve[] outSubcurve) throws IOException, AutomationException
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.
getSubcurve
in interface ICurve
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IRing.getSubcurveEx(double, double, boolean, boolean, boolean)
,
ICurve.getSubcurve(double, double, boolean, com.esri.arcgis.geometry.ICurve[])
public void reverseOrientation() throws IOException, AutomationException
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.
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.
reverseOrientation
in interface ICurve
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isClosed() throws IOException, AutomationException
A curve is closed if the From and To points of each part of the curve are equal.
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.
isClosed
in interface ICurve
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void generalize(double maxAllowableOffset) throws IOException, AutomationException
Generalizes the Path into a generalized collection of Line segments. Generalize performs a Douglas-Poiker Generalization algorithm with a specified maximum offset tolerance given as input. For Line segments, the Generalized output is a subset of the original input vertices. For non-Linear segments, the Generalized output contains points along all parts of the curve, not necessarily only the vertices.
For a path with non-linear segments, the output curve may contain more vertices than the input curve, but all output segments will be linear.
generalize
in interface IPath
maxAllowableOffset
- The maxAllowableOffset (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void smooth(double maxAllowableOffset) throws IOException, AutomationException
Converts the Path into a Path containing only BezierCurve segments. The created BezierCurve path is a Generalization of the original path that has a maximum deviation of maxDeviation from the original path. If maxDeviation = 0, all of the original vertices are maintained. At each vertex, the adjoining BezierCurves have complementary tangents which creates a continuous (smooth) transition between segments.
smooth
in interface IPath
maxAllowableOffset
- The maxAllowableOffset (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPath.smooth(double)
,
IPath.smoothLocal(int)
,
IBezierCurve
,
IPolycurve.smooth(double)
public void smoothLocal(int vertexIndex) throws IOException, AutomationException
Converts segments containing the indexed vertex into BezierCurves and performs a smoothing operation only at the two segments on either side of the input vertex. The created BezierCurves have complementary tangents at the indexed vertex.
smoothLocal
in interface IPath
vertexIndex
- The vertexIndex (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPath.smooth(double)
,
IPath.smoothLocal(int)
,
IBezierCurve
,
IPolycurve.smooth(double)
public void queryChordLengthTangents(int pointIndex, IPoint prevTangent, boolean[] prevSetByUser, IPoint nextTangent, boolean[] nextSetByUser) throws IOException, AutomationException
queryChordLengthTangents
in interface IPath
pointIndex
- The pointIndex (in)prevTangent
- A reference to a com.esri.arcgis.geometry.IPoint (in)prevSetByUser
- The prevSetByUser (in/out: use single element array)nextTangent
- A reference to a com.esri.arcgis.geometry.IPoint (in)nextSetByUser
- The nextSetByUser (in/out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setChordLengthTangents(int pointIndex, IPoint prevTangent, IPoint nextTangent) throws IOException, AutomationException
setChordLengthTangents
in interface IPath
pointIndex
- The pointIndex (in)prevTangent
- A reference to a com.esri.arcgis.geometry.IPoint (in)nextTangent
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void constructRigidStretch(IPath srcPath, int stretchStartIndex, int startAnchor, int endAnchor, IPoint stretchEnd) throws IOException, AutomationException
For an existing Path, the ConstructRigidStretch method can be used to rotate and scale the shape of a Path, or just a section of the Path, to a certain point. This method is ideal for use in interactive rubber-sheeting operations. ArcMap, for example, makes use of this method in the ‘Stretch geometry proportionally when moving a vertex’ option.
Parameters description:
srcPath: Input IPath object. The path to be stretched.
stretchStartIndex: Input Long that represents the index of the origin point on the path to be stretched.
startAnchor: Input Long that represents the start anchor. Typically 0 to represent the first point on the path.
endAnchor: Input Long that represents the end anchor. Typically pointcount-1 to represent the last point on the path.
stretchEnd: Input IPoint object. The destination point where the strecthStartIndex point will be moved.
constructRigidStretch
in interface IConstructPath
srcPath
- A reference to a com.esri.arcgis.geometry.IPath (in)stretchStartIndex
- The stretchStartIndex (in)startAnchor
- The startAnchor (in)endAnchor
- The endAnchor (in)stretchEnd
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interfaceSupportsErrorInfo(GUID riid) throws IOException, AutomationException
Indicates whether the interface supports IErrorInfo.
interfaceSupportsErrorInfo
in interface ISupportErrorInfo
riid
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IClone esri_clone() throws IOException, AutomationException
esri_clone
in interface IClone
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void assign(IClone src) throws IOException, AutomationException
assign
in interface IClone
src
- A reference to a com.esri.arcgis.system.IClone (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isEqual(IClone other) throws IOException, AutomationException
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.
isEqual
in interface IClone
other
- A reference to a com.esri.arcgis.system.IClone (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isIdentical(IClone other) throws IOException, AutomationException
IsIdentical returns true if the receiver and the source reference the same object.
isIdentical
in interface IClone
other
- A reference to a com.esri.arcgis.system.IClone (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void move(double dx, double dy) throws IOException, AutomationException
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.
move
in interface ITransform2D
dx
- The dx (in)dy
- The dy (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void moveVector(ILine v) throws IOException, AutomationException
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.
moveVector
in interface ITransform2D
v
- A reference to a com.esri.arcgis.geometry.ILine (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void scale(IPoint origin, double sx, double sy) throws IOException, AutomationException
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.
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
in interface ITransform2D
origin
- A reference to a com.esri.arcgis.geometry.IPoint (in)sx
- The sx (in)sy
- The sy (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void rotate(IPoint origin, double rotationAngle) throws IOException, AutomationException
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.
An Envelope cannot be Rotated.
rotate
in interface ITransform2D
origin
- A reference to a com.esri.arcgis.geometry.IPoint (in)rotationAngle
- The rotationAngle (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void transform(int direction, ITransformation transformation) throws IOException, AutomationException
transform
in interface ITransform2D
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)transformation
- A reference to a com.esri.arcgis.geometry.ITransformation (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void move3D(double dx, double dy, double dz) throws IOException, AutomationException
move3D
in interface ITransform3D
dx
- The dx (in)dy
- The dy (in)dz
- The dz (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void moveVector3D(IVector3D v) throws IOException, AutomationException
moveVector3D
in interface ITransform3D
v
- A reference to a com.esri.arcgis.geometry.IVector3D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void scale3D(IPoint origin, double sx, double sy, double sz) throws IOException, AutomationException
scale3D
in interface ITransform3D
origin
- A reference to a com.esri.arcgis.geometry.IPoint (in)sx
- The sx (in)sy
- The sy (in)sz
- The sz (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void rotateVector3D(IVector3D axis, double rotationAngle) throws IOException, AutomationException
The angle of rotation must be in radians. To convert to radians from decimal degrees, multiply by PI/180.
rotateVector3D
in interface ITransform3D
axis
- A reference to a com.esri.arcgis.geometry.IVector3D (in)rotationAngle
- The rotationAngle (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void transform3D(int direction, ITransformation3D transformation) throws IOException, AutomationException
transform3D
in interface ITransform3D
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)transformation
- A reference to a com.esri.arcgis.geometry.ITransformation3D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry projectToPlane(IPoint planarOrigin, IVector3D planarPositiveX, IVector3D planarNorm) throws IOException, AutomationException
projectToPlane
in interface ITransform3D
planarOrigin
- A reference to a com.esri.arcgis.geometry.IPoint (in)planarPositiveX
- A reference to a com.esri.arcgis.geometry.IVector3D (in)planarNorm
- A reference to a com.esri.arcgis.geometry.IVector3D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void serialize(IXMLSerializeData data) throws IOException, AutomationException
serialize
in interface IXMLSerialize
data
- A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deserialize(IXMLSerializeData data) throws IOException, AutomationException
deserialize
in interface IXMLSerialize
data
- A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
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 |