com.esri.arcgis.geometry
Class GeometryBag

java.lang.Object
  extended bycom.esri.arcgis.geometry.GeometryBag
All Implemented Interfaces:
IClone, IConstructGeometryCollection, IEnumGeometry, IGeometry, IGeometry2, IGeometry3, IGeometry4, IGeometry5, IGeometryBag, IGeometryCollection, IPersist, IPersistStream, IRelationalOperator, ISpatialIndex, ISupportErrorInfo, ITopologicalOperator, ITransform2D, java.io.Serializable

public class GeometryBag
extends java.lang.Object
implements IGeometry, IGeometry2, IGeometry3, IGeometry4, IGeometry5, IGeometryBag, IRelationalOperator, ITopologicalOperator, IGeometryCollection, IEnumGeometry, IConstructGeometryCollection, ISupportErrorInfo, IClone, IPersist, IPersistStream, ITransform2D, ISpatialIndex

An ordered collection of objects that support the IGeometry interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
GeometryBag()
          Constructs a GeometryBag using ArcGIS Engine.
GeometryBag(java.lang.Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
 
Method Summary
 void addGeometries(int count, IGeometry newGeometries)
          Adds references to the specified geometries.
 void addGeometry(IGeometry inGeometry, java.lang.Object before, java.lang.Object after)
          Adds a reference to the input geometry either at the end, or before, or after the specified index.
 void addGeometryCollection(IGeometryCollection newGeometries)
          Adds references to geometries in the input collection.
 void assign(IClone src)
          Assigns the properties of src to the receiver.
 IGeometry buffer(double distance)
          Constructs a polygon that is the locus of points at a distance less than or equal to a specified distance from this geometry.
 void clip(IEnvelope clipperEnvelope)
          Constructs the intersection of this geometry and the specified envelope.
 void clipDense(IEnvelope clipperEnvelope, double denseDistance)
          Constructs the intersection of this geometry and the specified envelope; densifies lines in output contributed by the clipping envelope.
 void constructDivideEqual(IPolyline divideSource, int numDivisions, int divideHow)
          Locates additional points equally spaced along the input polyline, and create either new segments, parts or polylines depending on the value of divideHow.
 void constructDivideLength(IPolyline divideSource, double length, boolean asRatio, int divideHow)
          Locates additional points along the input polyline, spaced at a specified interval, and create either new segments, parts, or polylines depending on the value of divideHow.
 void constructUnion(IEnumGeometry geometries)
          Defines this geometry to be the union of the inputs.
 boolean contains(IGeometry other)
          Indicates if this geometry contains the other geometry.
 IGeometry convexHull()
          Constructs the convex hull of this geometry.
 boolean crosses(IGeometry other)
          Indicates if the two geometries intersect in a geometry of lesser dimension.
 void cut(IPolyline cutter, IGeometry[] leftGeom, IGeometry[] rightGeom)
          Splits this geometry into a part left of the cutting polyline, and a part right of it.
 IGeometry difference(IGeometry other)
          Constructs the geometry containing points from this geometry but not the other geometry.
 boolean disjoint(IGeometry other)
          Indicates if the two geometries share no points in common.
 boolean equals(java.lang.Object o)
          Compare this object with another
 IClone esri_clone()
          Clones the receiver and assigns the result to *clone.
 boolean esri_equals(IGeometry other)
          Indicates if the two geometries are of the same type and define the same set of points in the plane.
 void geometriesChanged()
          Tells this geometry collection that some of its geometries have been altered.
 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.
 IClone getAsIClone()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IConstructGeometryCollection getAsIConstructGeometryCollection()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IEnumGeometry getAsIEnumGeometry()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IGeometry getAsIGeometry()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IGeometry2 getAsIGeometry2()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IGeometry3 getAsIGeometry3()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IGeometry4 getAsIGeometry4()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IGeometry5 getAsIGeometry5()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IGeometryBag getAsIGeometryBag()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IGeometryCollection getAsIGeometryCollection()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IPersist getAsIPersist()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IPersistStream getAsIPersistStream()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IRelationalOperator getAsIRelationalOperator()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 ISpatialIndex getAsISpatialIndex()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 ISupportErrorInfo getAsISupportErrorInfo()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 ITopologicalOperator getAsITopologicalOperator()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 ITransform2D getAsITransform2D()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IGeometry getBoundary()
          The boundary of this geometry.
 IPoint getCentroidEx()
          The center of gravity (centroid).
 void getClassID(GUID[] pClassID)
          Supported Platforms
static java.lang.String getClsid()
           
 int getCount()
          The number of geometries in the enumeration.
 int getDimension()
          The topological dimension of this geometry.
 IEnvelope getEnvelope()
          Creates a copy of this geometry's envelope and returns it.
 IGeometry getGeometry(int index)
          A reference to the ith geometry.
 int getGeometryCount()
          The number of geometries in this collection.
 int getGeometryType()
          The type of this geometry.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          Supported Platforms
 ISpatialReference getSpatialReference()
          The spatial reference associated with this geometry.
 int hashCode()
          the hashcode for this object
 void insertGeometries(int index, int count, IGeometry newGeometries)
          Inserts at the specified index references to some number of geometries in the input array.
 void insertGeometryCollection(int index, IGeometryCollection newGeometries)
          Inserts at the specified index references to all if the geometries in the input collection.
 void interfaceSupportsErrorInfo(GUID riid)
          Supported Platforms
 IGeometry intersect(IGeometry other, int resultDimension)
          Constructs the geometry that is the set-theoretic intersection of the input geometries.
 void invalidate()
          Invalidate the spatial index.
 boolean isAllowIndexing()
          Indicates whether to allow a spatial index to be created for this geometry.
 boolean isChanged()
          Indicates if a geometry has been changed (edited, projected, etc).
 void isDirty()
          Supported Platforms
 boolean isEmpty()
          Indicates whether this geometry contains any points.
 boolean isEqual(IClone other)
          Returns TRUE when the receiver and other have the same properties.
 boolean isIdentical(IClone other)
          Returns TRUE when the receiver and other are the same object.
 boolean isKnownSimple()
          Indicates whether this geometry is known (or assumed) to be topologically correct.
 boolean isLosslessExport()
          Indicates if this geometry bag exported itself to a shapefile buffer with no loss of information.
 boolean isSimple()
          Indicates whether this geometry is known (or assumed) to be topologically correct, after explicitly determining this if the geometry is not already known (or assumed) to be simple.
 void load(IStream pstm)
          Supported Platforms
 void move(double dx, double dy)
          Moves dx units horizontally and dy units vertically.
 void moveVector(ILine v)
          Moves a direction and distance v.
 IGeometry next()
          Returns the next geometry in the enumeration.
 boolean overlaps(IGeometry other)
          Indicates if the intersection of the two geometries has the same dimension as one of the input geometries.
 void project(ISpatialReference newReferenceSystem)
          Projects this geometry into a new spatial reference.
 void project5(ISpatialReference newSpatialReference, int projectionHint)
          Same as Project, but with additional parameter projectionHint.
 void projectEx(ISpatialReference newReferenceSystem, int direction, IGeoTransformation geoTransformation, boolean bAngularDensify, double maxSegmentLength, double maxDeviation)
          Projects a geometry, optionally applies a GeoTransformation, and optionally densifies the geometry.
 void projectEx5(ISpatialReference newReferenceSystem, int direction, ITransformation transformation, boolean bAngularDensify, double maxSegmentLength, double maxDeviation, int projectionHint)
          Same as ProjectEx, but with additional parameter projectionHint.
 void queryClipped(IEnvelope clipperEnvelope, IGeometry clippedGeometry)
          Redefines clippedGeometry to be the intersection of this geometry and the clipping envelope.
 void queryClippedDense(IEnvelope clipperEnvelope, double denseDistance, IGeometry clippedGeometry)
          Redefines clippedGeometry to be the intersection of this geometry and the clipping envelope; densifies lines in the output contributed by the clipping envelope.
 void queryEnvelope(IEnvelope outEnvelope)
          Copies this geometry's envelope properties into the specified envelope.
 void queryGeometries(int index, int count, IGeometry[] geometries)
          Populates the array with references to a sub-sequence of geometries.
 void queryWKSEnvelope(_WKSEnvelope e)
          Defines the specified wksenvelope to be the current extent of this geometry in the x-y plane.
 boolean relation(IGeometry other, java.lang.String relationDescription)
          Indicates if the defined relationship exists.
 void removeGeometries(int index, int count)
          Removes references to some geometries from this collection.
 void reset()
          Starts the enumeration at the beginning.
 void rotate(IPoint origin, double rotationAngle)
          Rotates about the specified origin point.
 void save(IStream pstm, int fClearDirty)
          Supported Platforms
 void scale(IPoint origin, double sx, double sy)
          Scales about the specified origin using seperate horizonal and vertical scales.
 void setAllowIndexing(boolean allowIndexing)
          Indicates whether to allow a spatial index to be created for this geometry.
 void setChanged(boolean isChanged)
          Indicates if a geometry has been changed (edited, projected, etc).
 void setEmpty()
          Removes all points from this geometry.
 void setGeometries(int count, IGeometry newGeometries)
          Replaces all geometries in the collection with the specified number of references to those in the input array.
 void setGeometryCollection(IGeometryCollection newParts)
          Replaces all geometries in the collection with references to geometries from the input collection.
 void setSpatialReferenceByRef(ISpatialReference spatialRef)
          The spatial reference associated with this geometry.
 void simplify()
          Makes this geometry topologically correct.
 void snapToSpatialReference()
          Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system.
 IGeometry symmetricDifference(IGeometry other)
          Constructs the geometry that contains points from either but not both input geometries.
 boolean touches(IGeometry other)
          Indicates if the boundaries of the geometries intersect.
 void transform(int direction, ITransformation transformation)
          Applies an arbitrary transformation.
 IGeometry union(IGeometry other)
          Constructs the geometry that is the set-theoretic union of the input geometries.
 boolean within(IGeometry other)
          Indicates if this geometry is contained (is within) another geometry.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GeometryBag

public GeometryBag()
            throws java.io.IOException,
                   java.net.UnknownHostException
Constructs a GeometryBag using ArcGIS Engine.

Throws:
java.io.IOException - if there are interop problems
java.net.UnknownHostException - if there are interop problems

GeometryBag

public GeometryBag(java.lang.Object obj)
            throws java.io.IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.

Construct a GeometryBag using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to GeometryBag.
GeometryBag theGeometryBag = (GeometryBag) obj;

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

getClsid

public static java.lang.String getClsid()

getAsIGeometry

public IGeometry getAsIGeometry()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIGeometry2

public IGeometry2 getAsIGeometry2()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIGeometry3

public IGeometry3 getAsIGeometry3()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIGeometry4

public IGeometry4 getAsIGeometry4()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIGeometry5

public IGeometry5 getAsIGeometry5()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIGeometryBag

public IGeometryBag getAsIGeometryBag()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIRelationalOperator

public IRelationalOperator getAsIRelationalOperator()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsITopologicalOperator

public ITopologicalOperator getAsITopologicalOperator()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIGeometryCollection

public IGeometryCollection getAsIGeometryCollection()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIEnumGeometry

public IEnumGeometry getAsIEnumGeometry()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIConstructGeometryCollection

public IConstructGeometryCollection getAsIConstructGeometryCollection()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsISupportErrorInfo

public ISupportErrorInfo getAsISupportErrorInfo()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIClone

public IClone getAsIClone()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIPersist

public IPersist getAsIPersist()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIPersistStream

public IPersistStream getAsIPersistStream()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsITransform2D

public ITransform2D getAsITransform2D()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsISpatialIndex

public ISpatialIndex getAsISpatialIndex()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


equals

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


hashCode

public int hashCode()
the hashcode for this object


getGeometryType

public int getGeometryType()
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IGeometry
The type of this geometry.

Supported Platforms

Windows, Solaris, Linux

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

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

getDimension

public int getDimension()
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IGeometry
The topological dimension of this geometry.

Supported Platforms

Windows, Solaris, Linux

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

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

getSpatialReference

public ISpatialReference getSpatialReference()
                                      throws java.io.IOException,
                                             AutomationException
Description copied from interface: IGeometry
The spatial reference associated with this geometry.

Supported Platforms

Windows, Solaris, Linux

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.

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

setSpatialReferenceByRef

public void setSpatialReferenceByRef(ISpatialReference spatialRef)
                              throws java.io.IOException,
                                     AutomationException
Description copied from interface: IGeometry
The spatial reference associated with this geometry.

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

isEmpty

public boolean isEmpty()
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IGeometry
Indicates whether this geometry contains any points.

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

setEmpty

public void setEmpty()
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IGeometry
Removes all points from this geometry.

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

queryEnvelope

public void queryEnvelope(IEnvelope outEnvelope)
                   throws java.io.IOException,
                          AutomationException
Description copied from interface: IGeometry
Copies this geometry's envelope properties into the specified envelope.

Supported Platforms

Windows, Solaris, Linux

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

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

getEnvelope

public IEnvelope getEnvelope()
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IGeometry
Creates a copy of this geometry's envelope and returns it.

Supported Platforms

Windows, Solaris, Linux

Description

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

Remarks

 

Envelope Example

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

project

public void project(ISpatialReference newReferenceSystem)
             throws java.io.IOException,
                    AutomationException
Description copied from interface: IGeometry
Projects this geometry into a new spatial reference.

Supported Platforms

Windows, Solaris, Linux

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.

Remarks

Note: 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.

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

snapToSpatialReference

public void snapToSpatialReference()
                            throws java.io.IOException,
                                   AutomationException
Description copied from interface: IGeometry
Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system.

Supported Platforms

Windows, Solaris, Linux

Remarks

SnapToSpatialReference rounds all coordinates to the resolution defined by the geometry's spatial reference system. This has a smilar effect on the geometry as storing the geometry in a Geodatabase (*.mdb or ArcSDE).

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

geoNormalize

public void geoNormalize()
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IGeometry
Shifts longitudes, if need be, into a continuous range of 360 degrees.

Supported Platforms

Windows, Solaris, Linux

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.
 

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

geoNormalizeFromLongitude

public void geoNormalizeFromLongitude(double longitude)
                               throws java.io.IOException,
                                      AutomationException
Description copied from interface: IGeometry
Normalizes longitudes into a continuous range containing the longitude. This method is obsolete.

Supported Platforms

Windows, Solaris, Linux

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).

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

projectEx

public void projectEx(ISpatialReference newReferenceSystem,
                      int direction,
                      IGeoTransformation geoTransformation,
                      boolean bAngularDensify,
                      double maxSegmentLength,
                      double maxDeviation)
               throws java.io.IOException,
                      AutomationException
Description copied from interface: IGeometry2
Projects a geometry, optionally applies a GeoTransformation, and optionally densifies the geometry.

Supported Platforms

Windows, Solaris, Linux

Remarks

By default, ProjectEx will not densify geometries as they are 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. Set the bAngularDensify parameter if you want to densify the geometries while they are projected.

Specified by:
projectEx in interface IGeometry2
Parameters:
newReferenceSystem - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
geoTransformation - A reference to a com.esri.arcgis.geometry.IGeoTransformation (in)
bAngularDensify - The bAngularDensify (in)
maxSegmentLength - The maxSegmentLength (in)
maxDeviation - The maxDeviation (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

queryWKSEnvelope

public void queryWKSEnvelope(_WKSEnvelope e)
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IGeometry3
Defines the specified wksenvelope to be the current extent of this geometry in the x-y plane.

Supported Platforms

Windows, Solaris, Linux

Description

The QueryWKSEnvelope method returns a WKSEnvelope structure corresponding to the envelope of the geometry. Use that method to quickly get the XMin, XMax, YMin and YMax values.

Specified by:
queryWKSEnvelope in interface IGeometry3
Parameters:
e - A Structure: com.esri.arcgis.system._WKSEnvelope (A com.esri.arcgis.system._WKSEnvelope COM typedef) (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

isChanged

public boolean isChanged()
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IGeometry4
Indicates if a geometry has been changed (edited, projected, etc).

Supported Platforms

Windows, Solaris, Linux

Description

The Changed method returns whether or not the geometry has been modified. If the geometry always stays in memory that method only returns 'false' immediately after its creation. However if the shape came from disk the Changed method will return 'false' until de geometry is modified in memory.

Specified by:
isChanged in interface IGeometry4
Returns:
The isChanged
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setChanged

public void setChanged(boolean isChanged)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IGeometry4
Indicates if a geometry has been changed (edited, projected, etc).

Supported Platforms

Windows, Solaris, Linux

Specified by:
setChanged in interface IGeometry4
Parameters:
isChanged - The isChanged (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

project5

public void project5(ISpatialReference newSpatialReference,
                     int projectionHint)
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IGeometry5
Same as Project, but with additional parameter projectionHint.

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 projectionHint parameter contains information about whether a geometry will cross the coordinate system horizons. If it doesn't, parts of the code that check this and intersect the geometry with the horizons can be omitted. This can dramatically improve performance. Use ISpatialReference3::ProjectionHint to initialize this parameter.

Specified by:
project5 in interface IGeometry5
Parameters:
newSpatialReference - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
projectionHint - The projectionHint (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

projectEx5

public void projectEx5(ISpatialReference newReferenceSystem,
                       int direction,
                       ITransformation transformation,
                       boolean bAngularDensify,
                       double maxSegmentLength,
                       double maxDeviation,
                       int projectionHint)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IGeometry5
Same as ProjectEx, but with additional parameter projectionHint.

Description

The projectionHint parameter contains information about whether a geometry will cross the coordinate system horizons. If it doesn't, parts of the code that check this and intersect the geometry with the horizons can be omitted. This can dramatically improve performance. Use ISpatialReference3::ProjectionHint to initialize this parameter.

Remarks

By default, ProjectEx will not densify geometries as they are 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. Set the bAngularDensify parameter if you want to densify the geometries while they are projected.

Specified by:
projectEx5 in interface IGeometry5
Parameters:
newReferenceSystem - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
transformation - A reference to a com.esri.arcgis.geometry.ITransformation (in)
bAngularDensify - The bAngularDensify (in)
maxSegmentLength - The maxSegmentLength (in)
maxDeviation - The maxDeviation (in)
projectionHint - The projectionHint (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCentroidEx

public IPoint getCentroidEx()
                     throws java.io.IOException,
                            AutomationException
Description copied from interface: IGeometry5
The center of gravity (centroid).

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

isLosslessExport

public boolean isLosslessExport()
                         throws java.io.IOException,
                                AutomationException
Description copied from interface: IGeometryBag
Indicates if this geometry bag exported itself to a shapefile buffer with no loss of information. Currently always returns false.

Supported Platforms

Windows, Solaris, Linux

Remarks

currently not implemented; always returns FALSE.

Specified by:
isLosslessExport in interface IGeometryBag
Returns:
The nothingLost
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

esri_equals

public boolean esri_equals(IGeometry other)
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IRelationalOperator
Indicates if the two geometries are of the same type and define the same set of points in the plane.

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

touches

public boolean touches(IGeometry other)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IRelationalOperator
Indicates if the boundaries of the geometries intersect.

Supported Platforms

Windows, Solaris, Linux

Description

Two geometries are said to touch when the intersection of the geometries is non-empty, but the intersection of their interiors is empty.  Touches is a Clementini operator. For example, a point touches a polyline only if the point is coincident with one of the polyline end points.

 

Touches examples. Only "true" relationships are showed in this picture.

Remarks

Only geometries that support the IRelationalOperator interface can be used as input geometries.

Touch does not apply for point/point comparison.

 

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

contains

public boolean contains(IGeometry other)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IRelationalOperator
Indicates if this geometry contains the other geometry.

Supported Platforms

Windows, Solaris, Linux

Description

The base geometry contains the comparison geometry (other) if the comparison geometry is a subset of the base geometry and the intersection of their interiors is not empty. Therefore a polygon does not contain any part of its 1D boundary. Contains is the opposite operator of Within.

Remarks

Only geometries that support the IRelationalOperator interface can be used as input geometries.

If geometry1 Contains geometry2, then geometry2 is Within geometry1.

 

Contains examples. Only "true" relationships are showed in this picture.

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

within

public boolean within(IGeometry other)
               throws java.io.IOException,
                      AutomationException
Description copied from interface: IRelationalOperator
Indicates if this geometry is contained (is within) another geometry.

Supported Platforms

Windows, Solaris, Linux

Description

The base geometry is within the comparison geometry if the base geometry is the intersection of the geometries and the intersection of their interiors is not empty.  Within is a Clementini operator. Within is the opposite operator of contains.

Remarks

Only geometries that support the IRelationalOperator interface can be used as input geometries.

If geometry1 is Within geometry2, then geometry2 Contains geometry1.

 

Within examples. Only "true" relationships are showed in this picture.

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

disjoint

public boolean disjoint(IGeometry other)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IRelationalOperator
Indicates if the two geometries share no points in common. Negate this result to compute the Intersect relation.

Supported Platforms

Windows, Solaris, Linux

Description

Two geometries are disjoint if their intersection is empty.  Two geometries intersect if disjoint is "false".  Disjoint is a Clementini operator.

Remarks

Only geometries that support the IRelationalOperator interface can be used as input geometries.

 

Disjoint example. Only "true" relationships are showed in this picture.

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

crosses

public boolean crosses(IGeometry other)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IRelationalOperator
Indicates if the two geometries intersect in a geometry of lesser dimension.

Supported Platforms

Windows, Solaris, Linux

Description

Two polylines cross if they share only points in common, at least one of which is not an endpoint.  A polyline and an polygon cross if they share a polyline in common on the interior of the polygon which is not equivalent to the entire polyline.  Cross is a Clementini operator.

Remarks

Only geometries that support the IRelationalOperator interface can be used as input geometries.

Cross only applies to polyline/polyline, polyline/polygon, or polygon/polyline relations.

 

Crosses examples. Only "true" relationships are showed in this picture.

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

overlaps

public boolean overlaps(IGeometry other)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IRelationalOperator
Indicates if the intersection of the two geometries has the same dimension as one of the input geometries.

Supported Platforms

Windows, Solaris, Linux

Description

Two geometries overlap if the region of their intersection is of the same dimension as the geometries involved and is not equivalent to either of the geometries.  Overlaps is a Clementini operator.

Remarks

Only geometries that support the IRelationalOperator interface can be used as input geometries.

Overlaps only applies to polyline/polyline, polygon/polygon and multipoint/multipoint relations.

 

Overlaps examples. Only "true" relationships are showed in this picture.

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

relation

public boolean relation(IGeometry other,
                        java.lang.String relationDescription)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IRelationalOperator
Indicates if the defined relationship exists.

Supported Platforms

Windows, Solaris, Linux

Description

Relation allows a general relation defined using the Shape Comparison Language to be determined between two input geometries. The Shape Comparison Language is based on the Calculus-Based Method (CBM), as described and defined by Clementini and Felice, but has some extensions specific to working with vertex-based geometries and is fully described in the Technical Documents section of the ArcObjects Developer Help. Please refer to the Shape Comparison Language documentation for proper syntax and available functionality.

Note that at the current release, Relation only operates with straight lines.

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

isSimple

public boolean isSimple()
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: ITopologicalOperator
Indicates whether this geometry is known (or assumed) to be topologically correct, after explicitly determining this if the geometry is not already known (or assumed) to be simple.

Specified by:
isSimple in interface ITopologicalOperator
Returns:
The isSimple
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isKnownSimple

public boolean isKnownSimple()
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: ITopologicalOperator
Indicates whether this geometry is known (or assumed) to be topologically correct.

Specified by:
isKnownSimple in interface ITopologicalOperator
Returns:
The isKnownSimple
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

simplify

public void simplify()
              throws java.io.IOException,
                     AutomationException
Description copied from interface: ITopologicalOperator
Makes this geometry topologically correct.

Supported Platforms

Windows, Solaris, Linux

Description

Simplify permanently alters the input geometry, making its definition "topologically legal" with respect to its geometry type:


The XY tolerance property of the geometry's associated spatial reference is used during the simplify operation for polylines and polygons.

Remarks

This method first looks at the ITopologicalOperator::IsKnownSimple flag before starting processing. If the flag is 'true' then operation is interrupted and the geometry is considered simple. If the flag is 'false' then the geometry consistency is checked and the geometry is updated as needed.

ITopologicalOperator methods 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 geometries types.

Simplify Polygon Example

Simplify Polyline Example

Simplify Point Example

Specified by:
simplify in interface ITopologicalOperator
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

buffer

public IGeometry buffer(double distance)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: ITopologicalOperator
Constructs a polygon that is the locus of points at a distance less than or equal to a specified distance from this geometry.

Supported Platforms

Windows, Solaris, Linux

Remarks


The buffer distance is in the same units as the source shape that is being buffered.

A negative distance can be specified to produce a buffer inside the original polygon. This cannot be used with polyline. ITopologicalOperator methods must be applied on top-level geometries only. Top-Level geometries are point, multipoint, polyline and polygon. To use this method with segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped with a top-level type.

Buffer Example

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

convexHull

public IGeometry convexHull()
                     throws java.io.IOException,
                            AutomationException
Description copied from interface: ITopologicalOperator
Constructs the convex hull of this geometry.

Supported Platforms

Windows, Solaris, Linux

Description

The ConvexHull of a geometry is the minimal bounding polygon such that all outer angles are convex. The ConvexHull of a point is the point itself.

Remarks

This method does not support GeometryBags.

ITopologicalOperator methods 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 geometries types.

ConvexHull Example

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

intersect

public IGeometry intersect(IGeometry other,
                           int resultDimension)
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: ITopologicalOperator
Constructs the geometry that is the set-theoretic intersection of the input geometries. Use different resultDimension values to generate results of different dimensions.

Supported Platforms

Windows, Solaris, Linux

Description

The Intersection of two Geometries of the same Dimension is a Geometry containing only the regions of overlap between the original geometries.

Remarks

Intersection is basically an AND between input geometries.

ITopologicalOperator methods 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 geometries types.

This method does not support GeometryBags.

 

Intersection Example

Specified by:
intersect in interface ITopologicalOperator
Parameters:
other - A reference to a com.esri.arcgis.geometry.IGeometry (in)
resultDimension - A com.esri.arcgis.geometry.esriGeometryDimension constant (in)
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

union

public IGeometry union(IGeometry other)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: ITopologicalOperator
Constructs the geometry that is the set-theoretic union of the input geometries.

Supported Platforms

Windows, Solaris, Linux

Description

The Union of two Geometries of the same Dimension is a single Geometry corresponding to the combination of both Geometries such that anything within either of the original geometries is also part of the unioned geometry, but anything common to both geometries only exists once in the unioned geometry.

Remarks

The Union is basically an OR between the input geometries.

ITopologicalOperator methods 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 geometries types.

This method does not support GeometryBags.

Union Example

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

constructUnion

public void constructUnion(IEnumGeometry geometries)
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: ITopologicalOperator
Defines this geometry to be the union of the inputs. More efficient for unioning multiple geometries than calling Union repeatedly.

Supported Platforms

Windows, Solaris, Linux

Description

ConstructUnion simultaneously Unions an Enumeration of geometries of the same Dimension into a single geometry.  ConstructUnion is more efficient for unioning a large collection of geometries simultaneously rather than cycling through each geometry individually.

Remarks

ITopologicalOperator methods 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 geometries types.

This method does not support GeometryBags.

Specified by:
constructUnion in interface ITopologicalOperator
Parameters:
geometries - A reference to a com.esri.arcgis.geometry.IEnumGeometry (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

difference

public IGeometry difference(IGeometry other)
                     throws java.io.IOException,
                            AutomationException
Description copied from interface: ITopologicalOperator
Constructs the geometry containing points from this geometry but not the other geometry.

Supported Platforms

Windows, Solaris, Linux

Description

Difference create a Geometry that is composed only of the region unique to the base geometry but not part of the input geometry.

Remarks

ITopologicalOperator methods 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 geometries types.

This method does not support GeometryBags.

ITopologicalOperator Differenece Example

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

symmetricDifference

public IGeometry symmetricDifference(IGeometry other)
                              throws java.io.IOException,
                                     AutomationException
Description copied from interface: ITopologicalOperator
Constructs the geometry that contains points from either but not both input geometries.

Supported Platforms

Windows, Solaris, Linux

Description

The SymmetricDifference between two Geometries of the same Dimension is the Union of those Geometries minus the Intersection of those Geometries.  Thus, the SymmetricDifference is composed only of regions unique to only one of the geometries.

Remarks

SymmetricDifference is basically an XOR between the input geometries.

SymmetricDifference of G1 and G2 can also be described as the Union(Difference(G1, G2), Difference(G2, G1)).

ITopologicalOperator methods 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 geometries types.

 This method does not support GeometryBags.

Symmetric Difference Example

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

clip

public void clip(IEnvelope clipperEnvelope)
          throws java.io.IOException,
                 AutomationException
Description copied from interface: ITopologicalOperator
Constructs the intersection of this geometry and the specified envelope.

Supported Platforms

Windows, Solaris, Linux

Description

The Clip method clips the geometry of the feature that is receiving the method call. The Clip method does not return an envelope. The geometry that is clipped will depend on what is Contained by the input clipperEnvelope.

Remarks

Use QueryClipped or QueryClippedDense methods to send the results to a different polygon.

ITopologicalOperator methods 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 geometries types.

ITopologicalOperator Clip Example

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

queryClipped

public void queryClipped(IEnvelope clipperEnvelope,
                         IGeometry clippedGeometry)
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: ITopologicalOperator
Redefines clippedGeometry to be the intersection of this geometry and the clipping envelope.

Supported Platforms

Windows, Solaris, Linux

Description

QueryClipped returns the portion of the input Geometry that is Contained by the input Envelope.  The returned geometry is the same type as the original geometry.

Remarks

ITopologicalOperator methods 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 geometries types.

The other geometry must be an high-level geometry. High-Level geometries are point, multipoint, polyline and polygon. To use it with low-level geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), path or ring they must be wrapped into high-level geometries type. 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. This method does not support GeometryBags.

QueryClipped Example

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

queryClippedDense

public void queryClippedDense(IEnvelope clipperEnvelope,
                              double denseDistance,
                              IGeometry clippedGeometry)
                       throws java.io.IOException,
                              AutomationException
Description copied from interface: ITopologicalOperator
Redefines clippedGeometry to be the intersection of this geometry and the clipping envelope; densifies lines in the output contributed by the clipping envelope.

Supported Platforms

Windows, Solaris, Linux

Remarks

ITopologicalOperator methods 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 geometries types.

The other geometry must be an high-level geometry. High-Level geometries are point, multipoint, polyline and polygon. To use it with low-level geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), path or ring they must be wrapped into high-level geometries type. 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. This method does not support GeometryBags.

Specified by:
queryClippedDense in interface ITopologicalOperator
Parameters:
clipperEnvelope - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
denseDistance - The denseDistance (in)
clippedGeometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

cut

public void cut(IPolyline cutter,
                IGeometry[] leftGeom,
                IGeometry[] rightGeom)
         throws java.io.IOException,
                AutomationException
Description copied from interface: ITopologicalOperator
Splits this geometry into a part left of the cutting polyline, and a part right of it.

Supported Platforms

Windows, Solaris, Linux

Remarks

When using a multi-part polyline to cut a single ring of a polyline, the orientation of the polyline paths is important. The cut piece of the ring must be on the same side of each cutting path as defined by the orientation of each path.

ITopologicalOperator methods 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 geometries types.

This method does not support GeometryBags.

Specified by:
cut in interface ITopologicalOperator
Parameters:
cutter - A reference to a com.esri.arcgis.geometry.IPolyline (in)
leftGeom - A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)
rightGeom - A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getBoundary

public IGeometry getBoundary()
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: ITopologicalOperator
The boundary of this geometry. A polygon's boundary is a polyline. A polyline's boundary is a multipoint. A point or multipoint's boundary is an empty point or multipoint.

Supported Platforms

Windows, Solaris, Linux

Description

The Boundary of a Geometry is the part one the exterior of the Geometry. The Boundary is one Dimension lower than the Dimension of the original Geometry. The Boundary of a Polygon are the Polylines that form the Rings of the Polygon. The Boundary of a Polyline is a Multipoint corresponding to the endpoints of each Path in the Polyline. The Boundary of a Multipoint is an empty set. This method does not support GeometryBags.

Remarks

ITopologicalOperator methods 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 geometries types.

Boundary Example

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

clipDense

public void clipDense(IEnvelope clipperEnvelope,
                      double denseDistance)
               throws java.io.IOException,
                      AutomationException
Description copied from interface: ITopologicalOperator
Constructs the intersection of this geometry and the specified envelope; densifies lines in output contributed by the clipping envelope.

Supported Platforms

Windows, Solaris, Linux

Remarks

ITopologicalOperator methods 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 geometries types.

This method does not support GeometryBags.

Specified by:
clipDense in interface ITopologicalOperator
Parameters:
clipperEnvelope - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
denseDistance - The denseDistance (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getGeometryCount

public int getGeometryCount()
                     throws java.io.IOException,
                            AutomationException
Description copied from interface: IGeometryCollection
The number of geometries in this collection.

Supported Platforms

Windows, Solaris, Linux

Description

Returns the number of Geometries in the GeometryCollection.  The last Geometry in the GeometryCollection has an index equal to GeometryCount - 1.

Specified by:
getGeometryCount in interface IGeometryCollection
Returns:
The cParts
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getGeometry

public IGeometry getGeometry(int index)
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IGeometryCollection
A reference to the ith geometry.

Supported Platforms

Windows, Solaris, Linux

Description

Returns the ith Geometry from the GeometryCollection.  The first Geometry has index 0 and the last Geometry has index equal to GeometryCount - 1.  The last Geometry can also be referenced using index -1.

Remarks

Note: The GeometryType returned by the Geometry method depends on which object type points the IGeometryCollection pointer.

IGeometryCollection Object GeometryType Returned Object GeometryType
Polygon
Rings
Polyline
Paths
Multipoint
Points
Multipatch
TriangleFans or TriangleStrips or Rings
TriangleFan
Points
TriangleStrip
Points
Geometry Bag
Any type of IGeometry

Specified by:
getGeometry in interface IGeometryCollection
Parameters:
index - The index (in)
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addGeometry

public void addGeometry(IGeometry inGeometry,
                        java.lang.Object before,
                        java.lang.Object after)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IGeometryCollection
Adds a reference to the input geometry either at the end, or before, or after the specified index.

Supported Platforms

Windows, Solaris, Linux

Remarks

When applying the AddGeometry method give either the before or after index and not both. Adding a Geometry to the collection as the first one is done by setting the before index as 0.

The spatial reference of the GeometryCollection is transferred (objects projected if necessary) to any objects added to it. However the spatial reference of the added geometry is not transferred to the GeometryCollection. Always make sure to set the spatial reference on the object GeometryCollection prior to add other geometries to it to avoid creating invalid geometry. For example, adding geometry objects to a GeometryBag that doesn't have a well-defined spatial reference will set an undefined spatial reference to all the objects added to the bag. Using this GeometryBag may cause unexpected behavior with the ITopologicalOperator::ConstructUnion method.

 

Specified by:
addGeometry in interface IGeometryCollection
Parameters:
inGeometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
before - A Variant (in, optional, pass null if not required)
after - A Variant (in, optional, pass null if not required)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryGeometries

public void queryGeometries(int index,
                            int count,
                            IGeometry[] geometries)
                     throws java.io.IOException,
                            AutomationException
Description copied from interface: IGeometryCollection
Populates the array with references to a sub-sequence of geometries. This method is intended for internal use only.

Supported Platforms

Windows, Solaris, Linux

Remarks

Note: The GeometryType returned by the QueryGeometries method depends on which object type points the IGeometryCollection pointer.

IGeometryCollection Object GeometryType Returned Object GeometryType
Polygon
Rings
Polyline
Paths
Multipoint
Points
Multipatch
TriangleFans or TriangleStrips or Rings
TriangleFan
Points
TriangleStrip
Points
Geometry Bag
Any type of IGeometry

Specified by:
queryGeometries in interface IGeometryCollection
Parameters:
index - The index (in)
count - The count (in)
geometries - A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

addGeometries

public void addGeometries(int count,
                          IGeometry newGeometries)
                   throws java.io.IOException,
                          AutomationException
Description copied from interface: IGeometryCollection
Adds references to the specified geometries. This method is intended for internal use only.

Supported Platforms

Windows, Solaris, Linux

Remarks


The geometries are added last in the list. Use an array of geometries (IGeometry) and the exact number (count ) of elements in the array. Exceeding the boundary of the array will cause an application error. If you don't want to place the geometries last in the collection then use the InsertGeometries method.

Specified by:
addGeometries in interface IGeometryCollection
Parameters:
count - The count (in)
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

addGeometryCollection

public void addGeometryCollection(IGeometryCollection newGeometries)
                           throws java.io.IOException,
                                  AutomationException
Description copied from interface: IGeometryCollection
Adds references to geometries in the input collection.

Supported Platforms

Windows, Solaris, Linux

Description

Adds references of all of the parts of the input GeometryCollection to the end of the current GeometryCollection.

Specified by:
addGeometryCollection in interface IGeometryCollection
Parameters:
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

insertGeometries

public void insertGeometries(int index,
                             int count,
                             IGeometry newGeometries)
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IGeometryCollection
Inserts at the specified index references to some number of geometries in the input array. This method is intended for internal use only.

Supported Platforms

Windows, Solaris, Linux

Remarks

The geometries are inserted before the ith (index) element in the list. Use an array of geometries and give the exact number (count ) of elements in the array. A too large value for the count parameter causes exceeding the boundary of the array and will cause an application error. To place the geometries last in the collection then use the addGeometries method.

 

Specified by:
insertGeometries in interface IGeometryCollection
Parameters:
index - The index (in)
count - The count (in)
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

insertGeometryCollection

public void insertGeometryCollection(int index,
                                     IGeometryCollection newGeometries)
                              throws java.io.IOException,
                                     AutomationException
Description copied from interface: IGeometryCollection
Inserts at the specified index references to all if the geometries in the input collection.

Supported Platforms

Windows, Solaris, Linux

Remarks

InsertGeometryCollection merges one GeometryCollection within another at a specified index.

Specified by:
insertGeometryCollection in interface IGeometryCollection
Parameters:
index - The index (in)
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setGeometries

public void setGeometries(int count,
                          IGeometry newGeometries)
                   throws java.io.IOException,
                          AutomationException
Description copied from interface: IGeometryCollection
Replaces all geometries in the collection with the specified number of references to those in the input array. This method is intended for internal use only.

Specified by:
setGeometries in interface IGeometryCollection
Parameters:
count - The count (in)
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

setGeometryCollection

public void setGeometryCollection(IGeometryCollection newParts)
                           throws java.io.IOException,
                                  AutomationException
Description copied from interface: IGeometryCollection
Replaces all geometries in the collection with references to geometries from the input collection.

Specified by:
setGeometryCollection in interface IGeometryCollection
Parameters:
newParts - A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removeGeometries

public void removeGeometries(int index,
                             int count)
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IGeometryCollection
Removes references to some geometries from this collection.

Supported Platforms

Windows, Solaris, Linux

Remarks

RemoveGeometries deletes count number of geometries from the index location.

Specified by:
removeGeometries in interface IGeometryCollection
Parameters:
index - The index (in)
count - The count (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

geometriesChanged

public void geometriesChanged()
                       throws java.io.IOException,
                              AutomationException
Description copied from interface: IGeometryCollection
Tells this geometry collection that some of its geometries have been altered. Use this method on polylines, polygons and multipatches after directly editing one of its parts.

Supported Platforms

Windows, Solaris, Linux

Description

GeometriesChanged flags that the geometries have been changed. It also marks a top level geometry as being non-simple. Use it when manipulating the parts of a geometry directly (for example, rotating a ring). The top level geometry won't know that its cached envelope, length, centroid, etc. are invalid until this method is used.

Specified by:
geometriesChanged in interface IGeometryCollection
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

next

public IGeometry next()
               throws java.io.IOException,
                      AutomationException
Description copied from interface: IEnumGeometry
Returns the next geometry in the enumeration.

Supported Platforms

Windows, Solaris, Linux

Description

Returns the Next Geometry part from the current enumeration location.

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

reset

public void reset()
           throws java.io.IOException,
                  AutomationException
Description copied from interface: IEnumGeometry
Starts the enumeration at the beginning.

Supported Platforms

Windows, Solaris, Linux

Description

Resets the current enumeration location to the null pointer at the beginning of the enumeration such that the Next Geometry is the first Geometry part in the enumeration.

Specified by:
reset in interface IEnumGeometry
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCount

public int getCount()
             throws java.io.IOException,
                    AutomationException
Description copied from interface: IEnumGeometry
The number of geometries in the enumeration.

Supported Platforms

Windows, Solaris, Linux

Description

Returns the number of distinct geometry parts in the enumeration.  This count is the same as the count returned by GeometryCount in a GeometryCollection.

Specified by:
getCount in interface IEnumGeometry
Returns:
The geometryCount
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructDivideEqual

public void constructDivideEqual(IPolyline divideSource,
                                 int numDivisions,
                                 int divideHow)
                          throws java.io.IOException,
                                 AutomationException
Description copied from interface: IConstructGeometryCollection
Locates additional points equally spaced along the input polyline, and create either new segments, parts or polylines depending on the value of divideHow.

Supported Platforms

Windows, Solaris, Linux

Specified by:
constructDivideEqual in interface IConstructGeometryCollection
Parameters:
divideSource - A reference to a com.esri.arcgis.geometry.IPolyline (in)
numDivisions - The numDivisions (in)
divideHow - A com.esri.arcgis.geometry.esriConstructDivideEnum constant (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

constructDivideLength

public void constructDivideLength(IPolyline divideSource,
                                  double length,
                                  boolean asRatio,
                                  int divideHow)
                           throws java.io.IOException,
                                  AutomationException
Description copied from interface: IConstructGeometryCollection
Locates additional points along the input polyline, spaced at a specified interval, and create either new segments, parts, or polylines depending on the value of divideHow.

Supported Platforms

Windows, Solaris, Linux

Specified by:
constructDivideLength in interface IConstructGeometryCollection
Parameters:
divideSource - A reference to a com.esri.arcgis.geometry.IPolyline (in)
length - The length (in)
asRatio - The asRatio (in)
divideHow - A com.esri.arcgis.geometry.esriConstructDivideEnum constant (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

interfaceSupportsErrorInfo

public void interfaceSupportsErrorInfo(GUID riid)
                                throws java.io.IOException,
                                       AutomationException
Description copied from interface: ISupportErrorInfo

Supported Platforms

Windows, Solaris, Linux

Description

Indicates whether the interface supports IErrorInfo.

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

esri_clone

public IClone esri_clone()
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IClone
Clones the receiver and assigns the result to *clone.

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

assign

public void assign(IClone src)
            throws java.io.IOException,
                   AutomationException
Description copied from interface: IClone
Assigns the properties of src to the receiver.

Supported Platforms

Windows, Solaris, Linux

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.

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

isEqual

public boolean isEqual(IClone other)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IClone
Returns TRUE when the receiver and other have the same properties.

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

isIdentical

public boolean isIdentical(IClone other)
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IClone
Returns TRUE when the receiver and other are the same object.

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

getClassID

public void getClassID(GUID[] pClassID)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IPersist

Supported Platforms

Windows, Solaris, Linux

Description

IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.

Specified by:
getClassID in interface IPersist
Parameters:
pClassID - A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

isDirty

public void isDirty()
             throws java.io.IOException,
                    AutomationException
Description copied from interface: IPersistStream

Supported Platforms

Windows, Solaris, Linux

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Specified by:
isDirty in interface IPersistStream
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

load

public void load(IStream pstm)
          throws java.io.IOException,
                 AutomationException
Description copied from interface: IPersistStream

Supported Platforms

Windows, Solaris, Linux

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Specified by:
load in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

save

public void save(IStream pstm,
                 int fClearDirty)
          throws java.io.IOException,
                 AutomationException
Description copied from interface: IPersistStream

Supported Platforms

Windows, Solaris, Linux

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Specified by:
save in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
fClearDirty - The fClearDirty (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSizeMax

public void getSizeMax(_ULARGE_INTEGER[] pcbSize)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IPersistStream

Supported Platforms

Windows, Solaris, Linux

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Specified by:
getSizeMax in interface IPersistStream
Parameters:
pcbSize - A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

move

public void move(double dx,
                 double dy)
          throws java.io.IOException,
                 AutomationException
Description copied from interface: ITransform2D
Moves dx units horizontally and dy units vertically.

Supported Platforms

Windows, Solaris, Linux

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

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

moveVector

public void moveVector(ILine v)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: ITransform2D
Moves a direction and distance v. v can be in a different spatial reference than the geometry being moved.

Supported Platforms

Windows, Solaris, Linux

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

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

scale

public void scale(IPoint origin,
                  double sx,
                  double sy)
           throws java.io.IOException,
                  AutomationException
Description copied from interface: ITransform2D
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.

Supported Platforms

Windows, Solaris, Linux

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

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:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

rotate

public void rotate(IPoint origin,
                   double rotationAngle)
            throws java.io.IOException,
                   AutomationException
Description copied from interface: ITransform2D
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.

Supported Platforms

Windows, Solaris, Linux

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

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

transform

public void transform(int direction,
                      ITransformation transformation)
               throws java.io.IOException,
                      AutomationException
Description copied from interface: ITransform2D
Applies an arbitrary transformation. In particular, the transformation parameter can be either an affine transformation or a geographic transformation (datum shift).

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:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAllowIndexing

public void setAllowIndexing(boolean allowIndexing)
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: ISpatialIndex
Indicates whether to allow a spatial index to be created for this geometry.

Supported Platforms

Windows, Solaris, Linux

Remarks

The SpatialIndex if enabled is used by the IRelationalOperator's methods.

Specified by:
setAllowIndexing in interface ISpatialIndex
Parameters:
allowIndexing - The allowIndexing (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isAllowIndexing

public boolean isAllowIndexing()
                        throws java.io.IOException,
                               AutomationException
Description copied from interface: ISpatialIndex
Indicates whether to allow a spatial index to be created for this geometry.

Supported Platforms

Windows, Solaris, Linux

Specified by:
isAllowIndexing in interface ISpatialIndex
Returns:
The allowIndexing
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

invalidate

public void invalidate()
                throws java.io.IOException,
                       AutomationException
Description copied from interface: ISpatialIndex
Invalidate the spatial index.

Supported Platforms

Windows, Solaris, Linux

Specified by:
invalidate in interface ISpatialIndex
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.