|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.geometry.MultiPatch
public class MultiPatch
A collection of surface patches.
Constructor Summary | |
---|---|
MultiPatch()
Constructs a MultiPatch using ArcGIS Engine. |
|
MultiPatch(Object obj)
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts. MultiPatch theMultiPatch = (MultiPatch) obj; |
Method Summary | |
---|---|
void |
addGeometries(int count,
IGeometry newGeometries)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.addGeometries(com.esri.arcgis.geometry.IGeometryCollection, com.esri.arcgis.geometry.IGeometry[]) . |
void |
addGeometry(IGeometry inGeometry,
Object before,
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 |
addPoint(IPoint inPoint,
Object before,
Object after)
Adds a vertex to a Path, Ring, Polyline, or Polygon; or adds a reference to the input point to a Multipoint, TriangleFan, or TriangleStrip. |
void |
addPointCollection(IPointCollection newPoints)
Adds copies of points in the input point collection to this Path, Ring, Polyline, or Polygon; or adds references to the points in the collection to this Multipoint, TriangleFan, or TriangleStrip. |
void |
addPoints(int count,
IPoint newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.addPoints(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.geometry.IPoint[]) . |
void |
addWKSPointZs(int count,
_WKSPointZ pointStructures)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.addWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.system._WKSPointZ[]) . |
void |
assign(IClone src)
Assigns the properties of src to the receiver. |
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 |
clipToDomain()
Clips the geometry to the domain of the spatial reference. |
IEnumGeometry |
constructBuffers(int numBuffers,
double[] distances)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.constructBuffers(com.esri.arcgis.geometry.ITopologicalOperator2, double[]) . |
void |
constructExtrude(double offsetZ,
IGeometry baseGeom)
Construct a MultiPatch by using an input (non-point) geometry as one base and offsetting the Zs already set on the input geometry to get the second base. |
void |
constructExtrudeAbsolute(double toZ,
IGeometry baseGeom)
Construct a MultiPatch by extruding a (non-point) geometry using its initial Zs for one base, and a uniform input Z for the other. |
void |
constructExtrudeAlongLine(ILine extrusionLine,
IGeometry baseGeom)
Construct a MultiPatch by extruding a (non-point) geometry along a specified line, using the Zs on the two ends of the line to set Zs on the top and bottom. |
void |
constructExtrudeBetween(IFunctionalSurface fromSurface,
IFunctionalSurface toSurface,
IGeometry baseGeom)
Construct a MultiPatch by extruding a (non-point) geometry between two functional surfaces. |
void |
constructExtrudeFromTo(double fromZ,
double toZ,
IGeometry baseGeom)
Construct a MultiPatch by extruding a (non-point) geometry between two specified Z values. |
void |
constructExtrudeRelative(IVector3D extrusionVector,
IGeometry baseGeom)
Construct a MultiPatch by extruding a (non-point) geometry along a specified vector, using Zs already set on the input geometry. |
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. |
boolean |
containsEx(IGeometry pOther,
int relation)
Indicates if this geometry contains the other geometry, optionally using Celementini's definition. |
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. |
void |
deserialize(IXMLSerializeData data)
Deserializes an object from XML. |
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 |
disjoint3D(IGeometry pOther)
Indicates if the two geometries share no points in common. |
void |
dropMs()
Sets all the M values to a non-valid number (NaN). |
void |
dropPointIDs()
Unsets all PointID values without changing awareness. |
void |
dropZs()
Sets all the Z values to a non-valid number (NaN). |
boolean |
equals(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. |
IRing |
findBeginningRing(IRing followingRing)
Returns the beginning ring of the ring group containing the specified following ring. |
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 |
geoNormalizeEx(ISpatialReference sR,
double denseDistance)
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. |
double |
getArea()
The area. |
double |
getArea3D()
The 3D surface area. |
int |
getBeginningRingCount(int ringTypesDesired)
The number of beginning rings, counting only those of the desired types. |
IGeometry |
getBoundary()
The boundary of this geometry. |
IPoint |
getCentroid()
The center of gravity (centroid). |
IPoint |
getCentroid3D()
A 3D point whose XY coordinates are set to the center of gravity of the shape’s 2D footprint and Z set to the shape’s ZMax. |
IPoint |
getCentroidEx()
The center of gravity (centroid). |
void |
getClassID(GUID[] pClassID)
getClassID |
static String |
getClsid()
getClsid. |
int |
getDimension()
The topological dimension of this geometry. |
IEnumVertex |
getEnumVertices()
A new enumerator for this point collection. |
IEnvelope |
getEnvelope()
Creates a copy of this geometry's envelope and returns it. |
int |
getFollowingRingCount(IRing beginningRing)
The number of following rings in the ring group that starts with the specified beginning ring. |
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. |
int |
getIdCount()
Get Id Count. |
IEnumVertex |
getIndexedEnumVertices(IGeometry queryGeometry)
An indexed vertex enumerator for this point collection. |
IPoint |
getLabelPoint()
A point guaranteed to be inside this area. |
IPoint |
getLabelPoint3D()
A point guaranteed to be on this 3D surface area. |
int |
getMaterialColor(int index)
Get material color. |
int |
getMaterialCount()
Get Material Count. |
int |
getMaterialTextureBytesPerPixel(int index)
Get Material texture bytes per pixel. |
int |
getMaterialTextureColumnCount(int index)
Get Material texture column count. |
int |
getMaterialTexturePixelColor(int index,
int row,
int column)
Get Material texture pixel color. |
int |
getMaterialTextureRowCount(int index)
Get Material texture row count. |
int |
getMaterialTransparencyPercent(int index)
Get transparency %, in range of 0 - 100 |
int |
getMCount()
Get M Count. |
double |
getMMax()
The maximum M value. |
double |
getMMin()
The minimum M value. |
int |
getNormalCount()
Get Normal Count. |
int |
getPatchCount()
Get Patch Count. |
double |
getPatchM(int patch,
int index)
Get M for patch at vertex index. |
int |
getPatchMaterialIndex(int patch)
Get patch material index. |
int |
getPatchPriority(int patch)
Get patch priority. |
_WKSPoint |
getPatchTextureVertex(int patch,
int index)
Get Texture WKSPoint for a patch at vertex index. |
int |
getPatchTextureVertexCount(int patch)
Get texture vertex count for a patch. |
int |
getPatchType(int patch)
Get patch type. |
_WKSPointZ |
getPatchVertex(int patch,
int index)
Get Point for patch at vertex index. |
int |
getPatchVertexCount(int patch)
Get count of vertices in patch. |
int |
getPatchVertexID(int patch,
int index)
Get vertex Id for a patch at vertex index. |
IPoint |
getPoint(int i)
A copy of the ith vertex of a Path, Ring, Polyline, or Polygon; or a reference to the ith point of a Multipoint, TriangleFan, or TriangleStrip. |
int |
getPointCount()
The number of points in the collection. |
void |
getPoints(int index,
int count,
IPoint[] points)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.getPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[][]) . |
int |
getRingType(IRing queryRing,
boolean[] isBeginningRing)
Gets the esriMultiPatchRingType of the input Ring and returns a boolean indicating if that ring is a beginning ring. |
void |
getSizeMax(_ULARGE_INTEGER[] pcbSize)
getSizeMax |
ISpatialReference |
getSpatialReference()
The spatial reference associated with this geometry. |
int |
getTextureVertexCount()
Get Texture Vertex Count. |
int |
getVertexCount()
Get Vertex Count. |
double |
getVolume()
The enclosed 3D volume. |
IGeometry |
getXYFootprint()
A reference to a cached copy of the multipatch's footprint in the x-y plane. |
double |
getZMax()
The maximum Z value. |
double |
getZMin()
The minimum Z value. |
int |
hashCode()
the hashcode for this object |
boolean |
hitTest(IPoint queryPoint,
double searchRadius,
int geometryPart,
IPoint hitPoint,
double[] hitDistance,
int[] hitPartIndex,
int[] hitSegmentIndex,
boolean[] bRightSide)
Locates a part of a geometry closest to a query point. |
boolean |
hitTest3D(IPoint queryPoint,
double searchRadius,
int geometryPart,
IPoint hitPoint,
double[] hitDistance,
int[] hitPartIndex,
int[] hitSegmentIndex)
Locates a part of a geometry closest to a query point. |
boolean |
hitTestCone(IRay pQueryRay,
double minAngle,
int geometryPart,
IPoint pHitPoint,
double[] pHitDistance,
int[] pHitPartIndex,
int[] pHitSegmentIndex)
Locates a part of a geometry closest to a query ray. |
void |
insertGeometries(int index,
int count,
IGeometry newGeometries)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.insertGeometries(com.esri.arcgis.geometry.IGeometryCollection, int, com.esri.arcgis.geometry.IGeometry[]) . |
void |
insertGeometryCollection(int index,
IGeometryCollection newGeometries)
Inserts at the specified index references to all if the geometries in the input collection. |
void |
insertPointCollection(int index,
IPointCollection newPoints)
Inserts copies of points, from the input point collection, as vertices into this Path, Ring, Polyline, or Polygon; or references to points in the input point collection into this Multipoint, TriangleFan, or TriangleStrip. |
void |
insertPoints(int index,
int count,
IPoint newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.insertPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[]) . |
void |
insertWKSPointZs(int index,
int count,
_WKSPointZ newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.insertWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.system._WKSPointZ[]) . |
void |
interfaceSupportsErrorInfo(GUID riid)
interfaceSupportsErrorInfo |
IGeometry |
intersect(IGeometry other,
int resultDimension)
Constructs the geometry that is the set-theoretic intersection of the input geometries. |
IGeometry |
intersectMultidimension(IGeometry other)
Constructs the set-theoretic intersection of the inputs. |
void |
invalXYFootprint()
Notifies the multipatch that its cached footprint has been modified by an outside agent. |
boolean |
isChanged()
Indicates if a geometry has been changed (edited, projected, etc). |
void |
isDirty()
isDirty |
boolean |
isEmpty()
Indicates whether this geometry contains any points. |
boolean |
isEqual(IClone other)
Indicates if the receiver and other have the same properties. |
boolean |
isIdentical(IClone other)
Indicates if the receiver and other are the same object. |
boolean |
isKnownSimple()
Indicates whether this geometry is known (or assumed) to be topologically correct. |
boolean |
isMaterialCullBackface(int index)
Get backface culling enabled, |
boolean |
isMaterialTextured(int index)
Get Is Material textured. |
boolean |
isMAware()
Indicates whether or not the geometry is aware of and capable of handling Ms. |
boolean |
isMSimple()
Indicates if all the Ms are valid numbers. |
boolean |
isNear(IGeometry pOther,
double distance)
Indicates if this geometry is within distance from the other geometry. |
boolean |
isNear3D(IGeometry pOther,
double distance)
Indicates if this geometry is within distance from the other geometry; both geometries must have Zs. |
boolean |
isPointIDAware()
Indicates whether or not the geometry is aware of and capable of handling PointIDs. |
boolean |
isPointIDSimple()
Indicates if all PointID values for this geometry are well-defined. |
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. |
boolean |
isSimpleEx(int[] reason)
Determines why a geometry is not simple. |
boolean |
isZAware()
Indicates whether or not the geometry is aware of and capable of handling Zs. |
boolean |
isZSimple()
Indicates if all the Zs are valid numbers. |
void |
load(IStream pstm)
load |
void |
move(double dx,
double dy)
Moves dx units horizontally and dy units vertically. |
void |
move3D(double dx,
double dy,
double dz)
Moves the object by dx, dy and dz along the x, y, and z axes respectively. |
void |
moveVector(ILine v)
Moves a direction and distance v. |
void |
moveVector3D(IVector3D v)
Moves the object by an offset defined by a 3D vector. |
void |
multiplyMs(double factor)
Multiplies all the M values by a factor. |
void |
multiplyZs(double factor)
Multiplies all the Z values by a factor. |
void |
offsetMs(double offset)
Offsets all the M values by an offset value. |
void |
offsetZs(double offset)
Offsets all the Z values by an offset value. |
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. |
IGeometry |
projectToPlane(IPoint planarOrigin,
IVector3D planarPositiveX,
IVector3D planarNorm)
Generates a polygon footprint for the object in an arbitrary plane. |
void |
putRingType(IRing queryRing,
int ringType)
Defines the type of the input Ring. |
void |
queryBeginningRings(int ringTypesDesired,
int numBeginningRingsRequested,
IRing[] beginningRings)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.queryBeginningRings(com.esri.arcgis.geometry.IMultiPatch, int, com.esri.arcgis.geometry.IRing[][]) . |
void |
queryCentroid(IPoint center)
Copies the centroid of this area to the specified point. |
void |
queryCentroid3D(IPoint center)
Copies the centroid of this 3D surface area to the specified point. |
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 |
queryFollowingRings(IRing beginningRing,
int numFollowingRingsRequested,
IRing[] followingRings)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.queryFollowingRings(com.esri.arcgis.geometry.IMultiPatch, com.esri.arcgis.geometry.IRing, com.esri.arcgis.geometry.IRing[][]) . |
void |
queryGeometries(int index,
int count,
IGeometry[] geometries)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.queryGeometries(com.esri.arcgis.geometry.IGeometryCollection, int, com.esri.arcgis.geometry.IGeometry[][]) . |
void |
queryLabelPoint(IPoint labelPoint)
Copies to the input point a point guaranteed to be inside this area. |
void |
queryLabelPoint3D(IPoint labelPoint)
Copies to the input point a point guaranteed to be on this 3D surface area. |
void |
queryNearestPoint(IPoint p,
int extension,
IPoint nearest)
Copies into 'nearest' a point on this geometry nearest to the input point. |
void |
queryNearestPoint3D(IPoint pInP,
int extension,
IPoint pNearest)
Copies into 'nearest' a point on this geometry nearest to the input point. |
void |
queryPatchNormal(int patch,
int index,
IVector3D pNormal)
Copies the Normal for patch at specified vertex index into the input vector. |
void |
queryPoint(int index,
IPoint point)
Queries for a point in the PointCollection at given index. |
void |
queryPoints(int index,
int count,
IPoint points)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.queryPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[][]) . |
void |
queryWKSEnvelope(_WKSEnvelope[] e)
Defines the specified wksenvelope to be the current extent of this geometry in the x-y plane. |
void |
queryWKSPointZs(int index,
int count,
_WKSPointZ[] pointStructures)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.queryWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.system._WKSPointZ[][]) . |
void |
readExternal(ObjectInput in)
|
boolean |
relation(IGeometry other,
String relationDescription)
Indicates if the defined relationship exists. |
void |
removeGeometries(int index,
int count)
Removes references to some geometries from this collection. |
void |
removePoints(int index,
int count)
Removes vertices from a Path, Ring, Polyline, or Polygon, or references to points from a Multipoint, TriangleFan, or TriangleStrip. |
void |
replacePointCollection(int index,
int goingAway,
IPointCollection newPoints)
Replaces vertices/points within a PointCollection. |
void |
replacePoints(int index,
int comingIn,
int goingAway,
IPoint newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.replacePoints(com.esri.arcgis.geometry.IPointCollection4, int, int, com.esri.arcgis.geometry.IPoint[]) . |
double |
returnDistance(IGeometry other)
Returns the minimum distance between two geometries. |
double |
returnDistance3D(IGeometry pOther)
Returns the minimal distance between two geometries. |
IPoint |
returnNearestPoint(IPoint p,
int extension)
Creates and returns a point on this geometry nearest to the input point. |
IPoint |
returnNearestPoint3D(IPoint pInP,
int extension)
Creates and returns a point on this geometry nearest to the input point. |
void |
rotate(IPoint origin,
double rotationAngle)
Rotates about the specified origin point. |
void |
rotateVector3D(IVector3D axis,
double rotationAngle)
Rotates the object about axis defined by the specified vector through an angle measured in radians. |
void |
save(IStream pstm,
int fClearDirty)
save |
void |
scale(IPoint origin,
double sx,
double sy)
Scales about the specified origin using seperate horizonal and vertical scales. |
void |
scale3D(IPoint origin,
double sx,
double sy,
double sz)
Scales the object about the specified origin point. |
void |
serialize(IXMLSerializeData data)
Serializes an object to XML. |
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)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.setGeometries(com.esri.arcgis.geometry.IGeometryCollection, com.esri.arcgis.geometry.IGeometry[]) . |
void |
setGeometryCollection(IGeometryCollection newParts)
Replaces all geometries in the collection with references to geometries from the input collection. |
void |
setIsKnownSimple(boolean rhs1)
Indicates whether this geometry is known (or assumed) to be topologically correct. |
void |
setMAware(boolean mAware)
Indicates whether or not the geometry is aware of and capable of handling Ms. |
void |
setPointCollection(IPointCollection newPoints)
Replaces all vertices of this Path, Ring, Polyline, or Polygon with copies of the points in the input collection; or all points of this Multipoint, TriangleFan, or TriangleStrip with references to points from the input collection. |
void |
setPointIDAware(boolean idAware)
Indicates whether or not the geometry is aware of and capable of handling PointIDs. |
void |
setPoints(int count,
IPoint newPoints)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.setPoints(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.geometry.IPoint[]) . |
void |
setSpatialReferenceByRef(ISpatialReference spatialRef)
The spatial reference associated with this geometry. |
void |
setWKSPointZs(int count,
_WKSPointZ pointStructures)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.setWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.system._WKSPointZ[]) . |
void |
setZAware(boolean zAware)
Indicates whether or not the geometry is aware of and capable of handling Zs. |
void |
simplify()
Makes this geometry topologically correct. |
void |
snap()
Snaps ms to the precision of the spatial reference associated with the geometry. |
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. |
void |
transform3D(int direction,
ITransformation3D transformation)
Applies an arbitrary 3D transformation. |
IGeometry |
union(IGeometry other)
Constructs the geometry that is the set-theoretic union of the input geometries. |
void |
updatePoint(int i,
IPoint p)
Changes the ith vertex or point to be a copy of the input point. |
boolean |
within(IGeometry other)
Indicates if this geometry is contained (is within) another geometry. |
boolean |
withinEx(IGeometry pOther,
int relation)
Indicates if this geometry contains the other geometry, optionally using Celementini's definition. |
void |
writeExternal(ObjectOutput out)
|
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef |
---|
getJintegraDispatch, release |
Constructor Detail |
---|
public MultiPatch() throws IOException, UnknownHostException
IOException
- if there are interop problems
UnknownHostException
- if there are interop problemspublic MultiPatch(Object obj) throws IOException
MultiPatch theMultiPatch = (MultiPatch) obj;
obj
to MultiPatch
.
obj
- an object returned from ArcGIS Engine or Server
IOException
- if there are interop problemsMethod Detail |
---|
public static String getClsid()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public int getGeometryType() throws IOException, AutomationException
esriGeometryNull = 0
esriGeometryPoint = 1
esriGeometryMultipoint = 2
esriGeometryPolyline = 3
esriGeometryPolygon = 4
esriGeometryEnvelope = 5
esriGeometryPath = 6
esriGeometryAny = 7
esriGeometryMultiPatch = 9
esriGeometryRing = 11
esriGeometryLine = 13
esriGeometryCircularArc = 14
esriGeometryBezier3Curve = 15
esriGeometryEllipticArc = 16
esriGeometryBag = 17
esriGeometryTriangleStrip = 18
esriGeometryTriangleFan = 19
esriGeometryRay = 20
esriGeometrySphere = 21
getGeometryType
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getDimension() throws IOException, AutomationException
Returns the dimension of the geometry object based on the geometry's type.
getDimension
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISpatialReference getSpatialReference() throws IOException, AutomationException
Returns and sets the Spatial Reference in which the geometry exists. If the spatial reference has not been set the property will return an empty ISpatialReference instance.
getSpatialReference
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSpatialReferenceByRef(ISpatialReference spatialRef) throws IOException, AutomationException
setSpatialReferenceByRef
in interface IGeometry
spatialRef
- A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isEmpty() throws IOException, AutomationException
IsEmpty returns TRUE when the Geometry object does not contain geometric information beyond its original initialization state. An object may be returned to its original initialization (IsEmpty = TRUE) state using SetEmpty.
isEmpty
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setEmpty() throws IOException, AutomationException
SetEmpty returns the Geometry to its original initialization state by releasing all data referenced by the Geometry.
setEmpty
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryEnvelope(IEnvelope outEnvelope) throws IOException, AutomationException
Returns the unique Envelope that binds the Geometry object. This is the smallest Envelope that Contains the object.
Note: The output geometry must be co-created prior to the query. The output geometry is not co-created by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.
queryEnvelope
in interface IGeometry
outEnvelope
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnvelope getEnvelope() throws IOException, AutomationException
Returns the unique Envelope that binds the Geometry object. This is the smallest Envelope that Contains the object.
getEnvelope
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void project(ISpatialReference newReferenceSystem) throws IOException, AutomationException
To Project, the geometry needs to have a Spatial Reference set, and not have an UnknownCoordinateSystem. The new spatial reference system passed to the method defines the output coordinate system. If either spatial reference is Unknown, the coordinates are not changed. The Z and measure values are not changed by the Project method.
A geometry is not densified before it is projected. This can lead to the output geometries not reflecting the 'true' shape in the new coordinate system. A straight line in one coordinate system is not necessarily a straight line in a different coordinate system. Use IGeometry2::ProjectEx if you want to densify the geometries while they are projected.
The Project method must be applied on high-level geometries only. High-Level geometries are point, multipoint, polyline and polygon. To use this method with low-level geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into high-level geometry types.
If a geometry is projected to a projected coordinate system that can't represent the geographic area where the geometry is located (or if trying to move an xy coordinate from outside the projected coordinate system back into geographic), the geometry will be set to empty.
Note: This method can only be called upon the top level geometries (Points, Multipoints, Polylines and Polygons). If the from/to spatial references have different geographic coordinate systems, the Project method looks for a GeoTransformationsOperationSet. If the set of Geotransformations is present in memory, Project will use it to perform a geographic/datum Transformation. To use a specific geotransformation, use the IGeometry2::ProjectEx method.
project
in interface IGeometry
newReferenceSystem
- A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void snapToSpatialReference() throws IOException, AutomationException
snapToSpatialReference
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void geoNormalize() throws IOException, AutomationException
geoNormalize
in interface IGeometry
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void geoNormalizeFromLongitude(double longitude) throws IOException, AutomationException
geoNormalizeFromLongitude
in interface IGeometry
longitude
- The longitude (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void projectEx(ISpatialReference newReferenceSystem, int direction, IGeoTransformation geoTransformation, boolean bAngularDensify, double maxSegmentLength, double maxDeviation) throws IOException, AutomationException
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.
projectEx
in interface IGeometry2
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryWKSEnvelope(_WKSEnvelope[] e) throws IOException, AutomationException
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.
queryWKSEnvelope
in interface IGeometry3
e
- A Structure: com.esri.arcgis.system._WKSEnvelope (A com.esri.arcgis.system._WKSEnvelope COM typedef) (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isChanged() throws IOException, AutomationException
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.
isChanged
in interface IGeometry4
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setChanged(boolean isChanged) throws IOException, AutomationException
setChanged
in interface IGeometry4
isChanged
- The isChanged (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void project5(ISpatialReference newSpatialReference, int projectionHint) throws IOException, AutomationException
To Project, the geometry needs to have a Spatial Reference set, and not have an UnknownCoordinateSystem. The new spatial reference system passed to the method defines the output coordinate system. If either spatial reference is Unknown, the coordinates are not changed. The Z and measure values are not changed by the Project method.
A geometry is not densified before it is projected. This can lead to the output geometries not reflecting the 'true' shape in the new coordinate system. A straight line in one coordinate system is not necessarily a straight line in a different coordinate system. Use IGeometry2::ProjectEx if you want to densify the geometries while they are projected.
The 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.
project5
in interface IGeometry5
newSpatialReference
- A reference to a com.esri.arcgis.geometry.ISpatialReference (in)projectionHint
- The projectionHint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void projectEx5(ISpatialReference newReferenceSystem, int direction, ITransformation transformation, boolean bAngularDensify, double maxSegmentLength, double maxDeviation, int projectionHint) throws IOException, AutomationException
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.
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.
projectEx5
in interface IGeometry5
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPoint getCentroidEx() throws IOException, AutomationException
getCentroidEx
in interface IGeometry5
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getGeometryCount() throws IOException, AutomationException
Returns the number of Geometries in the GeometryCollection. The last Geometry in the GeometryCollection has an index equal to GeometryCount - 1.
getGeometryCount
in interface IGeometryCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry getGeometry(int index) throws IOException, AutomationException
getGeometry
in interface IGeometryCollection
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addGeometry(IGeometry inGeometry, Object before, Object after) throws IOException, AutomationException
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.
addGeometry
in interface IGeometryCollection
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryGeometries(int index, int count, IGeometry[] geometries) throws IOException, AutomationException
GeometryEnvironment.queryGeometries(com.esri.arcgis.geometry.IGeometryCollection, int, com.esri.arcgis.geometry.IGeometry[][])
.
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 |
queryGeometries
in interface IGeometryCollection
index
- The index (in)count
- The count (in)geometries
- A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addGeometries(int count, IGeometry newGeometries) throws IOException, AutomationException
GeometryEnvironment.addGeometries(com.esri.arcgis.geometry.IGeometryCollection, com.esri.arcgis.geometry.IGeometry[])
.
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.
addGeometries
in interface IGeometryCollection
count
- The count (in)newGeometries
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addGeometryCollection(IGeometryCollection newGeometries) throws IOException, AutomationException
Adds references of all of the parts of the input GeometryCollection to the end of the current GeometryCollection.
addGeometryCollection
in interface IGeometryCollection
newGeometries
- A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertGeometries(int index, int count, IGeometry newGeometries) throws IOException, AutomationException
GeometryEnvironment.insertGeometries(com.esri.arcgis.geometry.IGeometryCollection, int, com.esri.arcgis.geometry.IGeometry[])
.
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.
insertGeometries
in interface IGeometryCollection
index
- The index (in)count
- The count (in)newGeometries
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertGeometryCollection(int index, IGeometryCollection newGeometries) throws IOException, AutomationException
InsertGeometryCollection merges one GeometryCollection within another at a specified index.
insertGeometryCollection
in interface IGeometryCollection
index
- The index (in)newGeometries
- A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setGeometries(int count, IGeometry newGeometries) throws IOException, AutomationException
GeometryEnvironment.setGeometries(com.esri.arcgis.geometry.IGeometryCollection, com.esri.arcgis.geometry.IGeometry[])
.
SetGeometries is used to reset the references of the geometries within the GeometryCollection . The result is that all references are changed to point only at the geometries contained within the specified array. Note that the GeometryCount changes accordingly also.
setGeometries
in interface IGeometryCollection
count
- The count (in)newGeometries
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setGeometryCollection(IGeometryCollection newParts) throws IOException, AutomationException
SetGeometryCollection copies the geometry references from one GeometryCollection to another.
VB Example: Set GeometryCollection m_pGeoColl_A as m_pGeoColl_B
m_pGeoColl_A.SetGeometryCollection m_pGeoColl_B
setGeometryCollection
in interface IGeometryCollection
newParts
- A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removeGeometries(int index, int count) throws IOException, AutomationException
removeGeometries
in interface IGeometryCollection
index
- The index (in)count
- The count (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void geometriesChanged() throws IOException, AutomationException
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.
geometriesChanged
in interface IGeometryCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPointCount() throws IOException, AutomationException
Returns the number of Points in the PointCollection. The last Point in the PointCollection has an index equal to PointCount - 1.
getPointCount
in interface IPointCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPoint getPoint(int i) throws IOException, AutomationException
getPoint
in interface IPointCollection
i
- The i (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addPoint(IPoint inPoint, Object before, Object after) throws IOException, AutomationException
Adds a Point to a PointCollection. If before and after are omitted, the Point is added to the end of the PointCollection. Additionally, by specifying either the before or after index, the Point can be added at a specific location in the PointCollection.
addPoint
in interface IPointCollection
inPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)before
- A Variant (in, optional, pass null if not required)after
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void updatePoint(int i, IPoint p) throws IOException, AutomationException
Updates the ith Point with a copy of the input Point. Update replaces the reference to the indexed point with a reference to the input Point.
For efficiency UpdatePoint does not check if the spatial reference of the input point is equal to the spatial reference of the PointCollection. Please make sure that the spatial reference of the input point is equal to the spatial reference of the PointCollection before you pass the point in.
Note : You can also explicitly check the spatial reference by
using IClone::IsEqual
//To check spatial reference efficiently
IPoint pointIn = null;
IPointCollection ptColl = null;
ISpatialReference pSpatialReferenceOfCollection = null;
//The next line will not do anything if the two projections are equal
pointIn.project(pSpatialReferenceOfCollection);
ptColl.updatePoint( 1, pointIn);
updatePoint
in interface IPointCollection
i
- The i (in)p
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryPoints(int index, int count, IPoint points) throws IOException, AutomationException
GeometryEnvironment.queryPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[][])
.
Queries a specified number (Count) of Points starting at the given index into an array of Points.
queryPoints
in interface IPointCollection
index
- The index (in)count
- The count (in)points
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertPoints(int index, int count, IPoint newPoints) throws IOException, AutomationException
GeometryEnvironment.insertPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[])
.
Inserts a specified number (Count) of Points into the PointCollection at the given index from an array of Points. The first Count points from the array are inserted.
insertPoints
in interface IPointCollection
index
- The index (in)count
- The count (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertPointCollection(int index, IPointCollection newPoints) throws IOException, AutomationException
Inserts a PointCollection of Points into the PointCollection at the specified index. The resulting PointCollection does not retain information about the distinction between the old and new Point Collections.
insertPointCollection
in interface IPointCollection
index
- The index (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPointCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addPoints(int count, IPoint newPoints) throws IOException, AutomationException
GeometryEnvironment.addPoints(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.geometry.IPoint[])
.
Adds the first specified number (Count) of Points to the PointCollection from an array of Points (with at least Count points). The Points are all added to the end of the PointCollection in the same sequence as they are ordered in the array.
addPoints
in interface IPointCollection
count
- The count (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addPointCollection(IPointCollection newPoints) throws IOException, AutomationException
Adds a PointCollection of Points to the end of the PointCollection. The resulting PointCollection does not retain the division between the old PointCollection and the additional PointCollection.
addPointCollection
in interface IPointCollection
newPoints
- A reference to a com.esri.arcgis.geometry.IPointCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPoints(int count, IPoint newPoints) throws IOException, AutomationException
GeometryEnvironment.setPoints(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.geometry.IPoint[])
.
Sets the contents of the PointCollection equal to the first Count Points from the input array of Points. After SetPoints is called, the PointCollection contains only count Points from the input Point array (regardless of what it may have contained previously).
setPoints
in interface IPointCollection
count
- The count (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPointCollection(IPointCollection newPoints) throws IOException, AutomationException
Sets the contents of the PointCollection equal to the contents of the input PointCollection. After SetPointCollection is called, the PointCollection contains only the Points from the input PointCollection (regardless of what it may have contained previously).
setPointCollection
in interface IPointCollection
newPoints
- A reference to a com.esri.arcgis.geometry.IPointCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removePoints(int index, int count) throws IOException, AutomationException
Removes a specified number (Count) of Points from a PointCollection starting at a given index.
removePoints
in interface IPointCollection
index
- The index (in)count
- The count (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumVertex getEnumVertices() throws IOException, AutomationException
Returns an EnumVertex for the vertices in the PointCollection. The EnumVertex allows the Points to be tranversed in a sequential order.
getEnumVertices
in interface IPointCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void replacePoints(int index, int comingIn, int goingAway, IPoint newPoints) throws IOException, AutomationException
GeometryEnvironment.replacePoints(com.esri.arcgis.geometry.IPointCollection4, int, int, com.esri.arcgis.geometry.IPoint[])
.
Removes a specified number (goingAway) of Points from a PointCollection starting at a given index and replaces them (starting at the same index) with a specified number (comingIn) of Points from an array of Points.
If you are using attempting to use this method from a .NET enabled language, such as VB.NET, you may need to use the ReplacePoints method provided by the IGeometryBridge interface exposed on the GeometryEnvironment object.
replacePoints
in interface IPointCollection
index
- The index (in)comingIn
- The comingIn (in)goingAway
- The goingAway (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void replacePointCollection(int index, int goingAway, IPointCollection newPoints) throws IOException, AutomationException
Replaces a specified number (goingAway) of Points in the PointCollection begining at a given index with a PointCollection of Points (inserted at the given index).
replacePointCollection
in interface IPointCollection
index
- The index (in)goingAway
- The goingAway (in)newPoints
- A reference to a com.esri.arcgis.geometry.IPointCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryPoint(int index, IPoint point) throws IOException, AutomationException
Queries the ith Point from the PointCollection. The first Point in the PointCollection has index 0, and the last Point has index equal to PointCount - 1. (Alternatively, the last Point in the PointCollection can be referenced using index -1.).
Note: The output geometry must be co-created prior to the query. The output geometry is not co-created by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.
queryPoint
in interface IPointCollection
index
- The index (in)point
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addWKSPointZs(int count, _WKSPointZ pointStructures) throws IOException, AutomationException
GeometryEnvironment.addWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.system._WKSPointZ[])
.
addWKSPointZs
in interface IPointCollection4
count
- The count (in)pointStructures
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setWKSPointZs(int count, _WKSPointZ pointStructures) throws IOException, AutomationException
GeometryEnvironment.setWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, com.esri.arcgis.system._WKSPointZ[])
.
setWKSPointZs
in interface IPointCollection4
count
- The count (in)pointStructures
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryWKSPointZs(int index, int count, _WKSPointZ[] pointStructures) throws IOException, AutomationException
GeometryEnvironment.queryWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.system._WKSPointZ[][])
.
queryWKSPointZs
in interface IPointCollection4
index
- The index (in)count
- The count (in)pointStructures
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertWKSPointZs(int index, int count, _WKSPointZ newPoints) throws IOException, AutomationException
GeometryEnvironment.insertWKSPointZs(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.system._WKSPointZ[])
.
insertWKSPointZs
in interface IPointCollection4
index
- The index (in)count
- The count (in)newPoints
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumVertex getIndexedEnumVertices(IGeometry queryGeometry) throws IOException, AutomationException
getIndexedEnumVertices
in interface IPointCollection3
queryGeometry
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getPoints(int index, int count, IPoint[] points) throws IOException, AutomationException
GeometryEnvironment.getPoints(com.esri.arcgis.geometry.IPointCollection4, int, com.esri.arcgis.geometry.IPoint[][])
.
getPoints
in interface IPointCollection2
index
- The index (in)count
- The count (in)points
- A reference to a com.esri.arcgis.geometry.IPoint (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IRing findBeginningRing(IRing followingRing) throws IOException, AutomationException
findBeginningRing
in interface IMultiPatch
followingRing
- A reference to a com.esri.arcgis.geometry.IRing (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getBeginningRingCount(int ringTypesDesired) throws IOException, AutomationException
getBeginningRingCount
in interface IMultiPatch
ringTypesDesired
- The ringTypesDesired (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryBeginningRings(int ringTypesDesired, int numBeginningRingsRequested, IRing[] beginningRings) throws IOException, AutomationException
GeometryEnvironment.queryBeginningRings(com.esri.arcgis.geometry.IMultiPatch, int, com.esri.arcgis.geometry.IRing[][])
.
When using C# or VB.NET you must use the IGeometryBridge interface to call this method.
queryBeginningRings
in interface IMultiPatch
ringTypesDesired
- The ringTypesDesired (in)numBeginningRingsRequested
- The numBeginningRingsRequested (in)beginningRings
- A reference to a com.esri.arcgis.geometry.IRing (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getFollowingRingCount(IRing beginningRing) throws IOException, AutomationException
getFollowingRingCount
in interface IMultiPatch
beginningRing
- A reference to a com.esri.arcgis.geometry.IRing (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryFollowingRings(IRing beginningRing, int numFollowingRingsRequested, IRing[] followingRings) throws IOException, AutomationException
GeometryEnvironment.queryFollowingRings(com.esri.arcgis.geometry.IMultiPatch, com.esri.arcgis.geometry.IRing, com.esri.arcgis.geometry.IRing[][])
.
When using C# or VB.NET you must use the IGeometryBridge interface to call this method.
queryFollowingRings
in interface IMultiPatch
beginningRing
- A reference to a com.esri.arcgis.geometry.IRing (in)numFollowingRingsRequested
- The numFollowingRingsRequested (in)followingRings
- A reference to a com.esri.arcgis.geometry.IRing (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getRingType(IRing queryRing, boolean[] isBeginningRing) throws IOException, AutomationException
getRingType
in interface IMultiPatch
queryRing
- A reference to a com.esri.arcgis.geometry.IRing (in)isBeginningRing
- The isBeginningRing (in/out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void putRingType(IRing queryRing, int ringType) throws IOException, AutomationException
putRingType
in interface IMultiPatch
queryRing
- A reference to a com.esri.arcgis.geometry.IRing (in)ringType
- A com.esri.arcgis.geometry.esriMultiPatchRingType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry getXYFootprint() throws IOException, AutomationException
Returns the 2D projection of the MultiPatch to the XY-Plane. The XY-Plane projection of a MultiPatch is called the "XYFootprint" of the MultiPatch. The XYFootprint is used to display MultiPatches in a 2D environment as well as perform simple time-efficient calculations.
To ensure that the XYFootpring is current (this is especially important if you directly modify the XYFootprint or one of the MultiPatch parts), call InvalXYFootprint.
getXYFootprint
in interface IMultiPatch
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void invalXYFootprint() throws IOException, AutomationException
InvalXYFootprint tells the MultiPatch that the XYFootprint it holds may have changed without its knowledge and needs to be recalculated before it can be used. InvalXYFootprint should be called anytime the parts of the MultiPatch are altered without altering the MultiPatch as a whole. Operations which operate on the entire MultiPatch or utilize the MultiPatch interfaces do not require InvalXYFootprint to be called.
invalXYFootprint
in interface IMultiPatch
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void constructExtrudeFromTo(double fromZ, double toZ, IGeometry baseGeom) throws IOException, AutomationException
Creates a MultiPatch from a base non-point geometry by extruding the base geometry along the Z-axis from a given FromZ input to a given ToZ input. The base Z value of the geometry is uniformly set to the FromZ and top Z value is set to a uniform ToZ. The resulting extrusion is always parallel to the XY-plane on both the base and top.
All non-linear segments are treated as linear segments when extrusion is performed. Only Polylines, Polygons, and Envelopes are allowed as input geometries.
constructExtrudeFromTo
in interface IConstructMultiPatch
fromZ
- The fromZ (in)toZ
- The toZ (in)baseGeom
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IExtrude.extrude(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IGlobeHeightProperties.getExtrusionExpressionString()
,
IExtrude.extrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IExtrude
,
IConstructMultiPatch.constructExtrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrude(double, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch
,
IExtrude.extrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
public void constructExtrudeAbsolute(double toZ, IGeometry baseGeom) throws IOException, AutomationException
Creates a MultiPatch from a base non-point geometry by extruding the base geometry along the Z-axis from the base geometry to a given absolute Z plane. The base Z value of the geometry is preserved and top Z value is uniformly equal to the input absolute Z. The resulting extrusion is always parallel to the XY-plane on the top and only parallel at the base if the base geometry is parallel to the XY-plane.
All non-linear segments are treated as linear segments when extrusion is performed. Only Polylines, Polygons, and Envelopes are allowed as input geometries.
constructExtrudeAbsolute
in interface IConstructMultiPatch
toZ
- The toZ (in)baseGeom
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IExtrude.extrude(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IGlobeHeightProperties.getExtrusionExpressionString()
,
IExtrude.extrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IExtrude
,
IConstructMultiPatch.constructExtrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrude(double, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch
,
IExtrude.extrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
public void constructExtrudeBetween(IFunctionalSurface fromSurface, IFunctionalSurface toSurface, IGeometry baseGeom) throws IOException, AutomationException
Constructs a MultiPatch from a base non-point geometry and two input FunctionalSurfaces. The constructed MultiPatch is equivalent to the region of extrusion of the base geometry along the Z-axis that is bounded on top and bottom by the two FunctionalSurfaces. Only the portion of the input geometry in the region of intersection of the domains of the FunctionalSurfaces is extruded.
All non-linear segments are treated as linear segments when extrusion is performed. Only Polylines, Polygons, and Envelopes are allowed as input geometries. Z values from the FunctionalSurfaces are only calculated at Points in the input Geometry. If the input Geometry extents exceed the extents of the Functional Surfaces then an output Oeometry with NaNs will be produced. Currently not implemented for RasterSurfaces.
constructExtrudeBetween
in interface IConstructMultiPatch
fromSurface
- A reference to a com.esri.arcgis.geometry.IFunctionalSurface (in)toSurface
- A reference to a com.esri.arcgis.geometry.IFunctionalSurface (in)baseGeom
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IExtrude.extrude(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IGlobeHeightProperties.getExtrusionExpressionString()
,
IExtrude.extrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IExtrude
,
IConstructMultiPatch.constructExtrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrude(double, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch
,
IExtrude.extrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
public void constructExtrudeAlongLine(ILine extrusionLine, IGeometry baseGeom) throws IOException, AutomationException
Creates a MultiPatch from a base non-point geometry by extruding the base geometry along an axis defined by the input Line. The base Z value of the geometry is uniformly set to the Z value of the Along Line's FromPoint and top Z value is uniformly set to the Z value of the Along Line's ToPoint. The top geometry is also shifted in the X and Y directions by an offset defined by the X and Y change of the Along Line between From and To Points. The resulting extrusion is always parallel to the XY-plane on both the base and top.
All non-linear segments are treated as linear segments when extrusion is performed. Only Polylines, Polygons, and Envelopes are allowed as input geometries.
constructExtrudeAlongLine
in interface IConstructMultiPatch
extrusionLine
- A reference to a com.esri.arcgis.geometry.ILine (in)baseGeom
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IExtrude.extrude(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IGlobeHeightProperties.getExtrusionExpressionString()
,
IExtrude.extrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IExtrude
,
IConstructMultiPatch.constructExtrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrude(double, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch
,
IExtrude.extrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
public void constructExtrudeRelative(IVector3D extrusionVector, IGeometry baseGeom) throws IOException, AutomationException
Creates a MultiPatch from a base non-point geometry by extruding the base geometry along an axis defined by the input Vector3D. The base Z values of the geometry are the same as the base geometry and top Z values are offset from the base by the Z component of the input Vector3D. The top geometry is also shifted in the X and Y directions by an offset defined by the X component and Y component of the Vector3D. The resulting extrusion is parallel to the XY-plane only if the base geometry is parallel to the XY-plane.
All non-linear segments are treated as linear segments when extrusion is performed. Only Polylines, Polygons, and Envelopes are allowed as input geometries.
constructExtrudeRelative
in interface IConstructMultiPatch
extrusionVector
- A reference to a com.esri.arcgis.geometry.IVector3D (in)baseGeom
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IExtrude.extrude(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IGlobeHeightProperties.getExtrusionExpressionString()
,
IExtrude.extrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IExtrude
,
IConstructMultiPatch.constructExtrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrude(double, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch
,
IExtrude.extrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
public void constructExtrude(double offsetZ, IGeometry baseGeom) throws IOException, AutomationException
Creates a MultiPatch from a base non-point geometry by extruding the base geometry along the Z-axis by a given offset factor. The base Z value of the geometry is preserved and top Z value is calculated as an offset of each point in the input geometry. The resulting extrusion is parallel to the XY-plane only if the base geometry is parallel to the XY-plane.
All non-linear segments are treated as linear segments when extrusion is performed. Only Polylines, Polygons, and Envelopes are allowed as input geometries.
constructExtrude
in interface IConstructMultiPatch
offsetZ
- The offsetZ (in)baseGeom
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IExtrude.extrude(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IGlobeHeightProperties.getExtrusionExpressionString()
,
IExtrude.extrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IExtrude
,
IConstructMultiPatch.constructExtrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAlongLine(com.esri.arcgis.geometry.ILine, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeBetween(com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IFunctionalSurface, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrude(double, com.esri.arcgis.geometry.IGeometry)
,
IExtrude.extrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeAbsolute(double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch
,
IExtrude.extrudeFromTo(double, double, com.esri.arcgis.geometry.IGeometry)
,
IConstructMultiPatch.constructExtrudeRelative(com.esri.arcgis.geometry.IVector3D, com.esri.arcgis.geometry.IGeometry)
public boolean isSimple() throws IOException, AutomationException
Returns TRUE if the geometry is topologically Simple (refer to the discussion for the Simplify method). If the geometry is not Simple, it may be necessary to call Simplify to enforce topological consistency. Editing a geometry can change the IsSimple state of the geometry.
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 xy cluster tolerance value of the geometry's associated spatial reference is used by this method. If the goal of this method is to determine if a geometry can be persisted in an sde (or other integer-based) layer without alteration, you may wish to use the minimum xy cluster tolerance value (ISpatialReferenceTolerance::SetMinimumXYTolerance) before applying this method (don't forget to set it back).
This method does not support GeometryBags.
isSimple
in interface ITopologicalOperator
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isKnownSimple() throws IOException, AutomationException
Returns TRUE when the geometry is aware that it is Simple. IsKnownSimple may return FALSE even if the geometry is simple as long as the geometry is not aware of its IsSimple state. Calling either IsSimple or Simplify makes the IsSimple state known to the geometry. Topologically altering the geometry makes the IsKnownSimple state FALSE until the IsSimple state is again checked.
Here is the status of the IsKnownSimple flag in some common situations:
IsKnownSimple = 'False'
- A non-empty newly created geometry. For example, creating a polygon using IPointCollection sets the flag IsKnownSimple = 'false' on that geometry.
- Geometry after projection (IGeometry::Project )
- Geometry after generalization (IPolycurve::Generalize ) or smoothing(IPolycurve::Smooth )
- …
IsKnownSimple = 'True'
- A geometry coming directly from a feature class
- An empty geometry
- Output geometry of any method on ITopologicalOperator
- …
This method does not support GeometryBags.
isKnownSimple
in interface ITopologicalOperator
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void simplify() throws IOException, AutomationException
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.
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
in interface ITopologicalOperator
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry buffer(double distance) throws IOException, AutomationException
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
in interface ITopologicalOperator
distance
- The distance (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry convexHull() throws IOException, AutomationException
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.
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.
ConvexHull method does not deal with Z attribute now.
convexHull
in interface ITopologicalOperator
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry intersect(IGeometry other, int resultDimension) throws IOException, AutomationException
The Intersection of two Geometries of the same Dimension is a Geometry containing only the regions of overlap between the original geometries.
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.
Since ArcGIS 9.2, Intersect has a larger cost - it takes longer to run the method. Therefore, it is a better approach to test if the two geometries are disjoint before calling Intersect.
intersect
in interface ITopologicalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)resultDimension
- A com.esri.arcgis.geometry.esriGeometryDimension constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IConstructMultipoint.constructIntersectionEx(com.esri.arcgis.geometry.ISegment, int, com.esri.arcgis.geometry.ISegment, int, double[], double[], int[])
,
IConstructMultipoint.constructIntersection(com.esri.arcgis.geometry.ISegment, int, com.esri.arcgis.geometry.ISegment, int, Object[], Object[], Object[])
,
ITopologicalOperator.intersect(com.esri.arcgis.geometry.IGeometry, int)
public IGeometry union(IGeometry other) throws IOException, AutomationException
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.
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
in interface ITopologicalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void constructUnion(IEnumGeometry geometries) throws IOException, AutomationException
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.
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.
Temproray files might be created. If environment variable
"ARCTMPDIR" exists, then the files are written to the path,
otherwise written to current directory or system temp
directory.
constructUnion
in interface ITopologicalOperator
geometries
- A reference to a com.esri.arcgis.geometry.IEnumGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry difference(IGeometry other) throws IOException, AutomationException
Difference create a Geometry that is composed only of the region unique to the base geometry but not part of the input geometry.
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.
difference
in interface ITopologicalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry symmetricDifference(IGeometry other) throws IOException, AutomationException
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.
This method does not support GeometryBags.
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.
symmetricDifference
in interface ITopologicalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void clip(IEnvelope clipperEnvelope) throws IOException, AutomationException
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.
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.
clip
in interface ITopologicalOperator
clipperEnvelope
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryClipped(IEnvelope clipperEnvelope, IGeometry clippedGeometry) throws IOException, AutomationException
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.
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
in interface ITopologicalOperator
clipperEnvelope
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)clippedGeometry
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryClippedDense(IEnvelope clipperEnvelope, double denseDistance, IGeometry clippedGeometry) throws IOException, AutomationException
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.
queryClippedDense
in interface ITopologicalOperator
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void cut(IPolyline cutter, IGeometry[] leftGeom, IGeometry[] rightGeom) throws IOException, AutomationException
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.
When a polyline/polygon is cut, it is split where it intersects the cutter polyline. Each piece is classified as ‘left of’ or ‘right of’ the cutter. This classification is based on the orientation of the cutter line. Parts of the target polyline that do not intersect the cutting polyline are returned as part of the ‘right of’ result for that input polyline. If a geometry is not cut, the left geometry will be empty.
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.
This method does not support GeometryBags.
cut
in interface ITopologicalOperator
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry getBoundary() throws IOException, AutomationException
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.
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.
getBoundary
in interface ITopologicalOperator
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void clipDense(IEnvelope clipperEnvelope, double denseDistance) throws IOException, AutomationException
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.
clipDense
in interface ITopologicalOperator
clipperEnvelope
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)denseDistance
- The denseDistance (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumGeometry constructBuffers(int numBuffers, double[] distances) throws IOException, AutomationException
GeometryEnvironment.constructBuffers(com.esri.arcgis.geometry.ITopologicalOperator2, double[])
.
use the generic version of this method accesible through the GeometryEnvironment singleton object via the IGeometryBridge interface.
This method is only implemented for polygons and polylines.
constructBuffers
in interface ITopologicalOperator2
numBuffers
- The numBuffers (in)distances
- The distances (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void clipToDomain() throws IOException, AutomationException
clipToDomain
in interface ITopologicalOperator2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsKnownSimple(boolean rhs1) throws IOException, AutomationException
setIsKnownSimple
in interface ITopologicalOperator2
rhs1
- The rhs1 (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry intersectMultidimension(IGeometry other) throws IOException, AutomationException
This method only works with the following combination of geometries: Polygon with Polyline (and vice versa), Polyline with Multipoint (and vice versa), Polygon with Multipoint (and vice versa).
When using this method to intersect a Polygon with a Polyline (or vice versa) the geometry returned will be a GeometryBag.
When using this method to intersect a Multipoint with a Polygon (or vice versa) or Multipoint with a Polyline (or vice versa) the geometry returned will be a Multipoint.
If the desired combination of geometries is not available on this function, use Intersect on ITopologicalOperator.
intersectMultidimension
in interface ITopologicalOperator2
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isSimpleEx(int[] reason) throws IOException, AutomationException
isSimpleEx
in interface ITopologicalOperator3
reason
- A com.esri.arcgis.geometry.esriNonSimpleReasonEnum constant (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void geoNormalizeEx(ISpatialReference sR, double denseDistance) throws IOException, AutomationException
Not implemented for Multipatches.
geoNormalizeEx
in interface ITopologicalOperator3
sR
- A reference to a com.esri.arcgis.geometry.ISpatialReference (in)denseDistance
- The denseDistance (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean hitTest(IPoint queryPoint, double searchRadius, int geometryPart, IPoint hitPoint, double[] hitDistance, int[] hitPartIndex, int[] hitSegmentIndex, boolean[] bRightSide) throws IOException, AutomationException
The segment index returned has different meanings depending on the esriGeometryHitPartType used (Please see the example for more details).
EsriGeometryPartVertex: returns a vertex index
EsriGeometryPartBoundary, esriGeometryPartMidpoint and esriGeometryPartEndpoint: return a segment index
EsriGeometryPartCentroid: Always returns 0 for the part index and the segment index.
brightside: Indicates if the input point is on the right side of the input geometry
Note: The distance units use in this method are the units of the input geometry. No conversion is performed. esriGeometryHitPartType parameter cannot be a combination of several esriGeometryHitPartTypes.
hitTest
in interface IHitTest
queryPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)searchRadius
- The searchRadius (in)geometryPart
- A com.esri.arcgis.geometry.esriGeometryHitPartType constant (in)hitPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)hitDistance
- The hitDistance (in/out: use single element array)hitPartIndex
- The hitPartIndex (in/out: use single element array)hitSegmentIndex
- The hitSegmentIndex (in/out: use single element array)bRightSide
- The bRightSide (in/out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean hitTest3D(IPoint queryPoint, double searchRadius, int geometryPart, IPoint hitPoint, double[] hitDistance, int[] hitPartIndex, int[] hitSegmentIndex) throws IOException, AutomationException
hitTest3D
in interface IHitTest3D
queryPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)searchRadius
- The searchRadius (in)geometryPart
- A com.esri.arcgis.geometry.esriGeometryHitPartType constant (in)hitPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)hitDistance
- The hitDistance (in/out: use single element array)hitPartIndex
- The hitPartIndex (in/out: use single element array)hitSegmentIndex
- The hitSegmentIndex (in/out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean hitTestCone(IRay pQueryRay, double minAngle, int geometryPart, IPoint pHitPoint, double[] pHitDistance, int[] pHitPartIndex, int[] pHitSegmentIndex) throws IOException, AutomationException
hitTestCone
in interface IHitTest3D
pQueryRay
- A reference to a com.esri.arcgis.geometry.IRay (in)minAngle
- The minAngle (in)geometryPart
- A com.esri.arcgis.geometry.esriGeometryHitPartType constant (in)pHitPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)pHitDistance
- The pHitDistance (in/out: use single element array)pHitPartIndex
- The pHitPartIndex (in/out: use single element array)pHitSegmentIndex
- The pHitSegmentIndex (in/out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getArea() throws IOException, AutomationException
Returns the area enclosed between the Exterior Rings and the Interior Rings of the 2 (or 2.5) Dimensional geometry. Interior Rings return a negative Area.
getArea
in interface IArea
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPoint getCentroid() throws IOException, AutomationException
Returns the Centroid of the 2 (or 2.5) Dimensional figure. The Centroid is the center of the weighted area.
The Centroid does not always occur inside the Area of the geometry. The Centroid is not the same as the center of the geometry or the Envelope binding the geometry (but it may be if and only if that is also the center of the weighted area).
getCentroid
in interface IArea
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IArea.queryCentroid(com.esri.arcgis.geometry.IPoint)
,
IArea.getCentroid()
,
IArea.queryLabelPoint(com.esri.arcgis.geometry.IPoint)
,
IArea.getLabelPoint()
public IPoint getLabelPoint() throws IOException, AutomationException
Returns the Label Point of the object. The Label Point is the point at which the label is located. The Label Point is always located within the Area of the object.
getLabelPoint
in interface IArea
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IArea.queryCentroid(com.esri.arcgis.geometry.IPoint)
,
IArea.getCentroid()
,
IArea.queryLabelPoint(com.esri.arcgis.geometry.IPoint)
,
IArea.getLabelPoint()
public void queryCentroid(IPoint center) throws IOException, AutomationException
Queries the Centroid of the 2 (or 2.5) Dimensional figure. The Centroid is the center of the weighted area. You must instantiate the Point before calling QueryCentroid. For example,
Dim pPoint as IPoint
Set pPoint = New Point
The Centroid does not always occur inside the Area of the geometry. The Centroid is not the same as the center of the geometry or the Envelope binding the geometry (but it may be if and only if that is also the center of the weighted area).
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.
queryCentroid
in interface IArea
center
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IArea.queryCentroid(com.esri.arcgis.geometry.IPoint)
,
IArea.getCentroid()
,
IArea.queryLabelPoint(com.esri.arcgis.geometry.IPoint)
,
IArea.getLabelPoint()
public void queryLabelPoint(IPoint labelPoint) throws IOException, AutomationException
Queries the Label Point of the object. The Label Point is the point at which the label is located. The Label Point is always located within the Area of the object. You must instantiate the point before calling QueryLabelPoint. For example,
Dim pPoint as IPoint
Set pPoint = New Point
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.
queryLabelPoint
in interface IArea
labelPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IArea.queryCentroid(com.esri.arcgis.geometry.IPoint)
,
IArea.getCentroid()
,
IArea.queryLabelPoint(com.esri.arcgis.geometry.IPoint)
,
IArea.getLabelPoint()
public double getArea3D() throws IOException, AutomationException
If Patches comprising a MultiPatch geometry have improperly ordered vertices such that positive faces are not pointing outwards, a negative 3D surface area will be returned. To ensure proper orientation, add vertices in a clockwise manner relative to an observer situated outside of the MultiPatch geometry.
getArea3D
in interface IArea3D
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPoint getCentroid3D() throws IOException, AutomationException
getCentroid3D
in interface IArea3D
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPoint getLabelPoint3D() throws IOException, AutomationException
getLabelPoint3D
in interface IArea3D
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryCentroid3D(IPoint center) throws IOException, AutomationException
queryCentroid3D
in interface IArea3D
center
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryLabelPoint3D(IPoint labelPoint) throws IOException, AutomationException
queryLabelPoint3D
in interface IArea3D
labelPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isZAware() throws IOException, AutomationException
Returns or sets the Z Awareness state of the geometry object. If ZAware is TRUE, then the object will recognize that it has Z attributes and perform operations on them as necessary. If ZAware is FALSE, the object will ignore Zs while performing operations. ZAware should only be set to TRUE when all of the Zs are not NaN.
Use ZAware = True when you want geometries to retain Z values during geometry operations.
isZAware
in interface IZAware
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setZAware(boolean zAware) throws IOException, AutomationException
setZAware
in interface IZAware
zAware
- The zAware (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isZSimple() throws IOException, AutomationException
ZSimple is TRUE if none of the Z values held by the geometry object are NaN. If any of the Zs within the object are NaN, ZSimple is FALSE.
isZSimple
in interface IZAware
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void dropZs() throws IOException, AutomationException
Resets all of the current Z values held by the geometry object back to NaN. ZAware does not change.
dropZs
in interface IZAware
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getZMin() throws IOException, AutomationException
Returns the minimum Z attribute contained within the ZAware object collection.
getZMin
in interface IZCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getZMax() throws IOException, AutomationException
Returns the maximum Z attribute contained within the ZAware object collection.
getZMax
in interface IZCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void multiplyZs(double factor) throws IOException, AutomationException
Multiplies all Zs within the ZAware collection by a given input factor. This is analgous to scaling spatial coordinates.
multiplyZs
in interface IZCollection
factor
- The factor (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void offsetZs(double offset) throws IOException, AutomationException
Offsets all Zs within the ZAware collection by a given input factor. This is analgous to moving spatial coordinates.
offsetZs
in interface IZCollection
offset
- The offset (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isMAware() throws IOException, AutomationException
Returns or sets the M Awareness state of the geometry object. If MAware is TRUE, then the object will recognize that it has M attributes and perform operations on them as necessary. If MAware is FALSE, the object will ignore Ms while performing operations.
isMAware
in interface IMAware
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setMAware(boolean mAware) throws IOException, AutomationException
setMAware
in interface IMAware
mAware
- The mAware (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isMSimple() throws IOException, AutomationException
MSimple is TRUE if none of the M values held by the geometry object are NaN. If any of the Ms within the object are NaN, MSimple is FALSE.
isMSimple
in interface IMAware
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void dropMs() throws IOException, AutomationException
Resets all of the current M values held by the geometry object back to NaN. MAware does not change.
dropMs
in interface IMAware
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getMMin() throws IOException, AutomationException
Returns the minimum M attribute contained within the MAware object collection.
getMMin
in interface IMCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getMMax() throws IOException, AutomationException
Returns the maximum M attribute contained within the MAware object collection.
getMMax
in interface IMCollection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void multiplyMs(double factor) throws IOException, AutomationException
The MultiplyMs method will update all the measure attributes for a PolyLine, and should only be used if every measure has been set (i.e. there are no NaNs). Check the IMAware::MSimple property or use the IMSegmentation methods to fill in any missing measure values. MultiplyMs is analogous to scaling spatial coordinates.
multiplyMs
in interface IMCollection
factor
- The factor (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void offsetMs(double offset) throws IOException, AutomationException
The OffsetMs method will update all the measure attributes for a PolyLine, and should only be used if every measure has been set (i.e. there are no NaNs). Check the IMAware::MSimple property or use the IMSegmentation methods to fill in any missing measure values. OffsetMs is analgous to moving spatial coordinates.
offsetMs
in interface IMCollection
offset
- The offset (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isPointIDAware() throws IOException, AutomationException
Returns or sets the PointID Awareness state of the geometry object. If PointIDAware is TRUE, then the object will recognize that it has PointID attributes and perform operations on them as necessary. If PointIDAware is FALSE, the object will ignore PointIDs while performing operations.
isPointIDAware
in interface IPointIDAware
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPointIDAware(boolean idAware) throws IOException, AutomationException
setPointIDAware
in interface IPointIDAware
idAware
- The idAware (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isPointIDSimple() throws IOException, AutomationException
PointIDSimple is TRUE when all of the PointIDs are well defined (not equal to 0). If any PointIDs equal 0, PointIDSimple is FALSE.
isPointIDSimple
in interface IPointIDAware
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void dropPointIDs() throws IOException, AutomationException
Resets all PointID values to there initial value of 0. PointIDAware does not change.
dropPointIDs
in interface IPointIDAware
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interfaceSupportsErrorInfo(GUID riid) throws IOException, AutomationException
Indicates whether the interface supports IErrorInfo.
interfaceSupportsErrorInfo
in interface ISupportErrorInfo
riid
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getClassID(GUID[] pClassID) throws IOException, AutomationException
IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.
getClassID
in interface IPersist
pClassID
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void isDirty() throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
isDirty
in interface IPersistStream
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void load(IStream pstm) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
load
in interface IPersistStream
pstm
- A reference to a com.esri.arcgis.system.IStream (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void save(IStream pstm, int fClearDirty) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
save
in interface IPersistStream
pstm
- A reference to a com.esri.arcgis.system.IStream (in)fClearDirty
- The fClearDirty (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getSizeMax(_ULARGE_INTEGER[] pcbSize) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
getSizeMax
in interface IPersistStream
pcbSize
- A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IClone esri_clone() throws IOException, AutomationException
esri_clone
in interface IClone
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void assign(IClone src) throws IOException, AutomationException
assign
in interface IClone
src
- A reference to a com.esri.arcgis.system.IClone (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isEqual(IClone other) throws IOException, AutomationException
IsEqual returns True if the receiver and the source have the same properties. Note, this does not imply that the receiver and the source reference the same object.
isEqual
in interface IClone
other
- A reference to a com.esri.arcgis.system.IClone (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isIdentical(IClone other) throws IOException, AutomationException
IsIdentical returns true if the receiver and the source reference the same object.
isIdentical
in interface IClone
other
- A reference to a com.esri.arcgis.system.IClone (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void move(double dx, double dy) throws IOException, AutomationException
Moves the Geometry dX units along the X-Axis and dY units along the Y-Axis. Only changes the position of the Geometry without altering any of the other characteristics. Move is a spatial offset.
move
in interface ITransform2D
dx
- The dx (in)dy
- The dy (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void moveVector(ILine v) throws IOException, AutomationException
Moves the Geometry dX units along the X-Axis and dY units along the Y-Axis, where dX and dY are calculated from the input vector Line. Only the Length and Angle of the vector affect the transformation. The location of the vector does not change the transformation. Only changes the position of the Geometry without altering any of the other characteristics. Move is a spatial offset.
moveVector
in interface ITransform2D
v
- A reference to a com.esri.arcgis.geometry.ILine (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void scale(IPoint origin, double sx, double sy) throws IOException, AutomationException
Stretches the Geometry a factor of sX along the X-Axis and a factor of sY along the Y-Axis (where sX is the ratio of Old Width to New Width, and sY is the ratio of Old Height to New Height). The Origin point is the reference Point from which the transformation is performed (Regardless of the location of the Origin point, the Geometry resulting from the transformation is the same, except for a positional offset). The Origin is the only point in the transformation guaranted to remain in the same location after the transformation is complete.
Note: Caution must be taken when scaling a CircularArc or a geometry containing CircularArc segments. Unless Abs(ScaleX) = Abs(ScaleY), the resulting CircularArcs will not retain the characteristics of the original geometry (since they remain CircularArcs).
scale
in interface ITransform2D
origin
- A reference to a com.esri.arcgis.geometry.IPoint (in)sx
- The sx (in)sy
- The sy (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void rotate(IPoint origin, double rotationAngle) throws IOException, AutomationException
Rotate performs an angular transform (rotation) on the Geometry. The Origin is the only point in the transformation guaranteed to remain in the same location after the transformation is performed. Regardless of the Origin, the transformed Geometry is the same, except for a positional offset. The RotationAngle is measured in radians.
An Envelope cannot be Rotated.
rotate
in interface ITransform2D
origin
- A reference to a com.esri.arcgis.geometry.IPoint (in)rotationAngle
- The rotationAngle (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void transform(int direction, ITransformation transformation) throws IOException, AutomationException
transform
in interface ITransform2D
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)transformation
- A reference to a com.esri.arcgis.geometry.ITransformation (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void move3D(double dx, double dy, double dz) throws IOException, AutomationException
move3D
in interface ITransform3D
dx
- The dx (in)dy
- The dy (in)dz
- The dz (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void moveVector3D(IVector3D v) throws IOException, AutomationException
moveVector3D
in interface ITransform3D
v
- A reference to a com.esri.arcgis.geometry.IVector3D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void scale3D(IPoint origin, double sx, double sy, double sz) throws IOException, AutomationException
scale3D
in interface ITransform3D
origin
- A reference to a com.esri.arcgis.geometry.IPoint (in)sx
- The sx (in)sy
- The sy (in)sz
- The sz (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void rotateVector3D(IVector3D axis, double rotationAngle) throws IOException, AutomationException
The angle of rotation must be in radians. To convert to radians from decimal degrees, multiply by PI/180.
rotateVector3D
in interface ITransform3D
axis
- A reference to a com.esri.arcgis.geometry.IVector3D (in)rotationAngle
- The rotationAngle (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void transform3D(int direction, ITransformation3D transformation) throws IOException, AutomationException
transform3D
in interface ITransform3D
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)transformation
- A reference to a com.esri.arcgis.geometry.ITransformation3D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry projectToPlane(IPoint planarOrigin, IVector3D planarPositiveX, IVector3D planarNorm) throws IOException, AutomationException
projectToPlane
in interface ITransform3D
planarOrigin
- A reference to a com.esri.arcgis.geometry.IPoint (in)planarPositiveX
- A reference to a com.esri.arcgis.geometry.IVector3D (in)planarNorm
- A reference to a com.esri.arcgis.geometry.IVector3D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void serialize(IXMLSerializeData data) throws IOException, AutomationException
serialize
in interface IXMLSerialize
data
- A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deserialize(IXMLSerializeData data) throws IOException, AutomationException
deserialize
in interface IXMLSerialize
data
- A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void snap() throws IOException, AutomationException
snap
in interface IMSnap
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getVertexCount() throws IOException, AutomationException
Returns the total number of geometry vertices in the MultiPatch. This value is identical with the pointCount parameter passed to IGeneralMultiPatchCreator.Init() when constructing the MultiPatch.
getVertexCount
in interface IGeneralMultiPatchInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPatchCount() throws IOException, AutomationException
Returns the total number of Patches (TriangleStrip, TriangleFan, Triangles, Ring) in the MultiPatch. This value is identical with the partCount parameter passed to IGeneralMultiPatchCreator.Init() when constructing the MultiPatch.
getPatchCount
in interface IGeneralMultiPatchInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMCount() throws IOException, AutomationException
Returns the total number of Ms defined in the MultiPatch.
getMCount
in interface IGeneralMultiPatchInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getNormalCount() throws IOException, AutomationException
Returns the total number of Normals defined in the MultiPatch.
getNormalCount
in interface IGeneralMultiPatchInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getTextureVertexCount() throws IOException, AutomationException
Returns the total number of texture vertices defined in the MultiPatch.
getTextureVertexCount
in interface IGeneralMultiPatchInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getIdCount() throws IOException, AutomationException
Returns the total number of IDs defined in the MultiPatch.
getIdCount
in interface IGeneralMultiPatchInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaterialCount() throws IOException, AutomationException
Returns the total number of Geometry Materials in the MultiPatch. This value is identical with the IGeometryMaterialList.Count property of the list passed to IGeneralMultiPatchCreator.Init() when constructing the MultiPatch.
getMaterialCount
in interface IGeneralMultiPatchInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPatchVertexCount(int patch) throws IOException, AutomationException
getPatchVertexCount
in interface IGeneralMultiPatchInfo
patch
- The patch (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPatchType(int patch) throws IOException, AutomationException
getPatchType
in interface IGeneralMultiPatchInfo
patch
- The patch (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPatchPriority(int patch) throws IOException, AutomationException
getPatchPriority
in interface IGeneralMultiPatchInfo
patch
- The patch (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPatchMaterialIndex(int patch) throws IOException, AutomationException
getPatchMaterialIndex
in interface IGeneralMultiPatchInfo
patch
- The patch (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public _WKSPointZ getPatchVertex(int patch, int index) throws IOException, AutomationException
getPatchVertex
in interface IGeneralMultiPatchInfo
patch
- The patch (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getPatchM(int patch, int index) throws IOException, AutomationException
getPatchM
in interface IGeneralMultiPatchInfo
patch
- The patch (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryPatchNormal(int patch, int index, IVector3D pNormal) throws IOException, AutomationException
Queries the Normal vector at the specified geometry vertex associated with the Patch located at the specified index.
A Vector3D object must be instantiated before being passed as the normal parameter to this method.
queryPatchNormal
in interface IGeneralMultiPatchInfo
patch
- The patch (in)index
- The index (in)pNormal
- A reference to a com.esri.arcgis.geometry.IVector3D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPatchTextureVertexCount(int patch) throws IOException, AutomationException
getPatchTextureVertexCount
in interface IGeneralMultiPatchInfo
patch
- The patch (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public _WKSPoint getPatchTextureVertex(int patch, int index) throws IOException, AutomationException
getPatchTextureVertex
in interface IGeneralMultiPatchInfo
patch
- The patch (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPatchVertexID(int patch, int index) throws IOException, AutomationException
getPatchVertexID
in interface IGeneralMultiPatchInfo
patch
- The patch (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaterialColor(int index) throws IOException, AutomationException
getMaterialColor
in interface IGeneralMultiPatchInfo
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaterialTransparencyPercent(int index) throws IOException, AutomationException
getMaterialTransparencyPercent
in interface IGeneralMultiPatchInfo
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isMaterialCullBackface(int index) throws IOException, AutomationException
isMaterialCullBackface
in interface IGeneralMultiPatchInfo
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isMaterialTextured(int index) throws IOException, AutomationException
isMaterialTextured
in interface IGeneralMultiPatchInfo
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaterialTextureRowCount(int index) throws IOException, AutomationException
getMaterialTextureRowCount
in interface IGeneralMultiPatchInfo
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaterialTextureColumnCount(int index) throws IOException, AutomationException
getMaterialTextureColumnCount
in interface IGeneralMultiPatchInfo
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaterialTextureBytesPerPixel(int index) throws IOException, AutomationException
getMaterialTextureBytesPerPixel
in interface IGeneralMultiPatchInfo
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaterialTexturePixelColor(int index, int row, int column) throws IOException, AutomationException
getMaterialTexturePixelColor
in interface IGeneralMultiPatchInfo
index
- The index (in)row
- The row (in)column
- The column (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryNearestPoint(IPoint p, int extension, IPoint nearest) throws IOException, AutomationException
Queries the nearest point on a geometry to the input point. Depending on the method of segment extension, the nearest point can also be found on an extension of the geometry.
queryNearestPoint
in interface IProximityOperator
p
- A reference to a com.esri.arcgis.geometry.IPoint (in)extension
- A com.esri.arcgis.geometry.esriSegmentExtension constant (in)nearest
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.esriSegmentExtension
,
IProximityOperator.returnNearestPoint(com.esri.arcgis.geometry.IPoint, int)
public IPoint returnNearestPoint(IPoint p, int extension) throws IOException, AutomationException
Finds and returns the nearest point on a geometry to the input point. Depending on the method of segment extension, the nearest point can also be found on an extension of the geometry.
returnNearestPoint
in interface IProximityOperator
p
- A reference to a com.esri.arcgis.geometry.IPoint (in)extension
- A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.esriSegmentExtension
,
IProximityOperator.queryNearestPoint(com.esri.arcgis.geometry.IPoint, int, com.esri.arcgis.geometry.IPoint)
public double returnDistance(IGeometry other) throws IOException, AutomationException
Returns the minimum distance between two geometries. If the geometries intersect, the minimum distance is 0. Only returns the distance, and not the nearest points.
The geometry combinations which can be used with ReturnDistance are:
Point: Point, MultiPoint, Envelope, Polyline, Polygon, Line, CircularArc, EllipticArc, BezierCurve.
Multipoint: Point, MultiPoint, Envelope, Polyline, Polygon.
Envelope: Point, MultiPoint, Envelope, Line, CircularArc, EllipticArc, BezierCurve, PolyLine, Polygon.
PolyLine: Point, Multipoint, Envelope, PolyLine, Polygon.
Polygon: Point, Multipoint, Envelope, PolyLine, Polygon.
Line: Point, Envelope, Line, CircularArc, EllipticArc, BezierCurve.
CircularArc: Point, Envelope, Line, CircularArc, EllipticArc (not implemented yet), BezierCurve.
EllipticArc: Point, Envelope, Line, CircularArc (not implemented yet), EllipticArc (not implemented yet), BezierCurve (not implemented yet).
BezierCurve: Point, Envelope, Line, CircularArc, EllipticArc (not implemented yet), BezierCurve.
Note: To get the distance between a segment (Line, CircularArc, EllipticArc, BezierCurve) and a MultiPoint, PolyLine or Polygon, add that segment to a PolyLine.
returnDistance
in interface IProximityOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean esri_equals(IGeometry other) throws IOException, AutomationException
esri_equals
in interface IRelationalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean touches(IGeometry other) throws IOException, AutomationException
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.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
Touch does not apply for point/point comparison.
If either one of the two geometries is empty, the geometries are not touched.
touches
in interface IRelationalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean contains(IGeometry other) throws IOException, AutomationException
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.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
If geometry1 Contains geometry2, then geometry2 is Within geometry1.
An empty geometry does not contain another geometry. On the other hand, an empty geometry is contained in another geometry, unless the other geometry is empty.
Contains examples. Only "true" relationships are showed in this picture.
contains
in interface IRelationalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean within(IGeometry other) throws IOException, AutomationException
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.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
If geometry1 is Within geometry2, then geometry2 Contains geometry1.
An empty geometry is within another geometry, unless the other geometry is empty.
Within examples. Only "true" relationships are showed in this picture.
within
in interface IRelationalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean disjoint(IGeometry other) throws IOException, AutomationException
Two geometries are disjoint if their intersection is empty. Two geometries intersect if disjoint is "false". Disjoint is a Clementini operator.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
Two geometries are disjoint if either one is empty.
Disjoint example. Only "true" relationships are showed in this picture.
disjoint
in interface IRelationalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean crosses(IGeometry other) throws IOException, AutomationException
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 or a point (for vertical line) in common on the interior of the polygon which is not equivalent to the entire polyline. Cross is a Clementini operator.
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.
If either one of the geometries is empty, the geometries do not cross.
Crosses examples. Only "true" relationships are showed in this picture.
crosses
in interface IRelationalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean overlaps(IGeometry other) throws IOException, AutomationException
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.
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.
Two geometries do not overlap if either one is empty.
Overlaps examples. Only "true" relationships are showed in this picture.
overlaps
in interface IRelationalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean relation(IGeometry other, String relationDescription) throws IOException, AutomationException
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.
Here is a VBA example of using the "RELATE" function to detect overlapping polylines. It assumes two polyline features are selected. G1 and G2 are placeholders for, in this example, the VBA variables r1 and r2.
Option Explicit
Public Sub overlapstest()
Dim ef As IEnumFeature
Dim d As IMxDocument
Set d = ThisDocument
Set ef = d.FocusMap.FeatureSelection
Dim r1 As IRelationalOperator, r2 As IRelationalOperator
Set r1 = ef.Next.Shape
Set r2 = ef.Next.Shape
Debug.Print "relation:", r1.Relation(r2, "RELATE(G1, G2, ""1********"")")
End Sub
relation
in interface IRelationalOperator
other
- A reference to a com.esri.arcgis.geometry.IGeometry (in)relationDescription
- The relationDescription (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean containsEx(IGeometry pOther, int relation) throws IOException, AutomationException
containsEx
in interface IRelationalOperator2
pOther
- A reference to a com.esri.arcgis.geometry.IGeometry (in)relation
- A com.esri.arcgis.geometry.esriSpatialRelationExEnum constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean withinEx(IGeometry pOther, int relation) throws IOException, AutomationException
withinEx
in interface IRelationalOperator2
pOther
- A reference to a com.esri.arcgis.geometry.IGeometry (in)relation
- A com.esri.arcgis.geometry.esriSpatialRelationExEnum constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isNear(IGeometry pOther, double distance) throws IOException, AutomationException
isNear
in interface IRelationalOperator2
pOther
- A reference to a com.esri.arcgis.geometry.IGeometry (in)distance
- The distance (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryNearestPoint3D(IPoint pInP, int extension, IPoint pNearest) throws IOException, AutomationException
Queries the nearest point on a z aware geometry to the input
point in 3D space. Depending on the method of segment
extension, the nearest point can also be found on an extension of
the geometry.
If the geometry is an Envelope and the input point is located within the bounds of the Envelope, QueryNearestPoint3D will return a point on the exterior of the Envelope nearest the input point.
queryNearestPoint3D
in interface IProximityOperator3D
pInP
- A reference to a com.esri.arcgis.geometry.IPoint (in)extension
- A com.esri.arcgis.geometry.esriSegmentExtension constant (in)pNearest
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPoint returnNearestPoint3D(IPoint pInP, int extension) throws IOException, AutomationException
Finds and returns the nearest point, in 3D space, on a z aware
geometry to the input point. Depending on the method of
segment extension, the nearest point can also be found on an
extension of the geometry.
If the geometry is an Envelope and the input point is located within the bounds of the Envelope, QueryNearestPoint3D will return a point on the exterior of the Envelope nearest the input point.
returnNearestPoint3D
in interface IProximityOperator3D
pInP
- A reference to a com.esri.arcgis.geometry.IPoint (in)extension
- A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double returnDistance3D(IGeometry pOther) throws IOException, AutomationException
Returns the minimum distance between two z aware geometries in
3D space. If the geometries intersect, the minimum distance
is 0. Only returns the distance, and not the nearest
points.
returnDistance3D
in interface IProximityOperator3D
pOther
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean disjoint3D(IGeometry pOther) throws IOException, AutomationException
Determines whether two z aware geometries intersect in 3D
space. Two geometries are disjoint if their intersection is
empty. Two geometries intersect if disjoint is FALSE.
disjoint3D
in interface IRelationalOperator3D
pOther
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isNear3D(IGeometry pOther, double distance) throws IOException, AutomationException
isNear3D
in interface IRelationalOperator3D2
pOther
- A reference to a com.esri.arcgis.geometry.IGeometry (in)distance
- The distance (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getVolume() throws IOException, AutomationException
Returns the volume of 3D space occupied by a MultiPatch. Handles closed and some non-closed MultiPatches.
If Patches comprising a MultiPatch geometry have improperly ordered vertices such that positive faces are not pointing outwards, a negative volume will be returned. To ensure proper orientation, add vertices in a clockwise manner relative to an outside observer.
getVolume
in interface IVolume
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void writeExternal(ObjectOutput out) throws IOException
writeExternal
in interface Externalizable
IOException
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal
in interface Externalizable
IOException
ClassNotFoundException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |