com.esri.arcgis.geometry
Class IPolycurve2Proxy

java.lang.Object
  extended bycom.esri.arcgis.interop.Dispatch
      extended bycom.esri.arcgis.geometry.IGeometryProxy
          extended bycom.esri.arcgis.geometry.ICurveProxy
              extended bycom.esri.arcgis.geometry.IPolycurveProxy
                  extended bycom.esri.arcgis.geometry.IPolycurve2Proxy
All Implemented Interfaces:
java.io.Externalizable, ICurve, IGeometry, IPolycurve, IPolycurve2, java.io.Serializable
Direct Known Subclasses:
IPolycurve3Proxy

public class IPolycurve2Proxy
extends IPolycurveProxy
implements IPolycurve2, java.io.Serializable

Provides access to members that extend IPolycurve with additional splitting and densification methods.

Product Availability

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

See Also:
Serialized Form

Field Summary
static java.lang.Class targetClass
           
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF
 
Constructor Summary
  IPolycurve2Proxy()
          For internal use only
  IPolycurve2Proxy(java.lang.Object obj)
           
protected IPolycurve2Proxy(java.lang.Object obj, java.lang.String iid)
           
  IPolycurve2Proxy(java.lang.String CLSID, java.lang.String host, AuthInfo authInfo)
           
protected IPolycurve2Proxy(java.lang.String CLSID, java.lang.String iid, java.lang.String host, AuthInfo authInfo)
           
 
Method Summary
 void addListener(java.lang.String iidStr, java.lang.Object theListener, java.lang.Object theSource)
          Adds a Java object to be a listener for a specific kind of event generated by the COM object.
 void densifyByAngle(double maxSegmentLength, double maxAngleDeviation)
          Converts this polycurve into a piecewise linear approximation of itself.
 void removeListener(java.lang.String iidStr, java.lang.Object theListener)
          Removes a Java object as a listener to events generated by a COM object.
 IEnumSplitPoint splitAtDistances(int distanceCount, double[] distances, boolean asRatios, boolean createParts)
          Introduces new vertices into this polyline at specified distances from the beginning of the polyline.
 IEnumSplitPoint splitAtPoints(IEnumVertex splitPoints, boolean projectOnto, boolean createParts, double cutoffDistance)
          Introduces new vertices into this polyline at the locations on it closest to the input points.
 
Methods inherited from class com.esri.arcgis.geometry.IPolycurveProxy
densify, generalize, smooth, splitAtDistance, splitAtPoint, weed
 
Methods inherited from class com.esri.arcgis.geometry.ICurveProxy
getFromPoint, getLength, getSubcurve, getToPoint, isClosed, queryFromPoint, queryNormal, queryPoint, queryPointAndDistance, queryTangent, queryToPoint, reverseOrientation, setFromPoint, setToPoint
 
Methods inherited from class com.esri.arcgis.geometry.IGeometryProxy
geoNormalize, geoNormalizeFromLongitude, getDimension, getEnvelope, getGeometryType, getSpatialReference, isEmpty, project, queryEnvelope, setEmpty, setSpatialReferenceByRef, snapToSpatialReference
 
Methods inherited from class com.esri.arcgis.interop.Dispatch
bindUsingMoniker, convertToNative, cookieForListener, createDispatch, createObjrefMonikerDisplayName, equals, getActiveObject, getActiveObject, getDefaultProperty, getDispatchIdOfName, getLastErrorCode, getMtsObjectContext, getObjRef, getPropertyByName, getPropertyByName, hashCode, invoke, invokeMethodByName, invokeMethodByName, invokeMethodByName, invokePropertyGetByName, invokePropertyPutByName, invokePropertyPutByRefByName, isNativeMode, isObjRef, queryInterface, readExternal, setNativeMode, setPropertyByName, toString, vtblInvoke, writeExternal
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.geometry.IPolycurve
densify, generalize, smooth, splitAtDistance, splitAtPoint, weed
 
Methods inherited from interface com.esri.arcgis.geometry.ICurve
getFromPoint, getLength, getSubcurve, getToPoint, isClosed, queryFromPoint, queryNormal, queryPoint, queryPointAndDistance, queryTangent, queryToPoint, reverseOrientation, setFromPoint, setToPoint
 
Methods inherited from interface com.esri.arcgis.geometry.IGeometry
geoNormalize, geoNormalizeFromLongitude, getDimension, getEnvelope, getGeometryType, getSpatialReference, isEmpty, project, queryEnvelope, setEmpty, setSpatialReferenceByRef, snapToSpatialReference
 

Field Detail

targetClass

public static final java.lang.Class targetClass
Constructor Detail

IPolycurve2Proxy

public IPolycurve2Proxy(java.lang.String CLSID,
                        java.lang.String host,
                        AuthInfo authInfo)
                 throws java.net.UnknownHostException,
                        java.io.IOException

IPolycurve2Proxy

public IPolycurve2Proxy()
For internal use only


IPolycurve2Proxy

public IPolycurve2Proxy(java.lang.Object obj)
                 throws java.io.IOException

IPolycurve2Proxy

protected IPolycurve2Proxy(java.lang.Object obj,
                           java.lang.String iid)
                    throws java.io.IOException

IPolycurve2Proxy

protected IPolycurve2Proxy(java.lang.String CLSID,
                           java.lang.String iid,
                           java.lang.String host,
                           AuthInfo authInfo)
                    throws java.io.IOException
Method Detail

addListener

public void addListener(java.lang.String iidStr,
                        java.lang.Object theListener,
                        java.lang.Object theSource)
                 throws java.io.IOException
Description copied from class: Dispatch
Adds a Java object to be a listener for a specific kind of event generated by the COM object. when you wish to invoke method on the COM object using IDispatch (not using custom marshalling).

Overrides:
addListener in class IPolycurveProxy
Throws:
java.io.IOException

removeListener

public void removeListener(java.lang.String iidStr,
                           java.lang.Object theListener)
                    throws java.io.IOException
Description copied from class: Dispatch
Removes a Java object as a listener to events generated by a COM object. when you wish to invoke method on the COM object using IDispatch (not using custom marshalling).

Overrides:
removeListener in class IPolycurveProxy
Throws:
java.io.IOException

splitAtPoints

public IEnumSplitPoint splitAtPoints(IEnumVertex splitPoints,
                                     boolean projectOnto,
                                     boolean createParts,
                                     double cutoffDistance)
                              throws java.io.IOException,
                                     AutomationException
Description copied from interface: IPolycurve2
Introduces new vertices into this polyline at the locations on it closest to the input points. Do not consider points farther than cutoffDistance from the polyline.

Supported Platforms

Windows, Solaris, Linux

Description

The SplitAtPoints method allows splitting a polycurve (polygon or polyline) in sections using a set of points.

Remarks

Parameters description:

splitPoints: Input IEnumVertex object. It represents the points to be used to split the polycurve.

projectOnto: The projectOnto is an input parameter that determines if the output point will be located on the polycurve. If projectOnto is true and the input point is not already on the polycurve then the point is projected on the curve. If false, the polycurve is split and modified to pass trough the point.

createParts: The createParts is an input parameter that determines if parts (paths) have to be created. createPart must be FALSE for polygons.  For polylines, if createPart is TRUE, the part on which the new split point falls is split into two parts with the newly added vertex serving as the end of the first part and the beginning of the second.

cutoffDistance: Input Double that represents the distance from the curve from where points are not considered anymore has being valid split points.

Note: The IEnumSplitPoint contains the input points.

Specified by:
splitAtPoints in interface IPolycurve2
Parameters:
splitPoints - A reference to a com.esri.arcgis.geometry.IEnumVertex (in)
projectOnto - The projectOnto (in)
createParts - The createParts (in)
cutoffDistance - The cutoffDistance (in)
Returns:
A reference to a com.esri.arcgis.geometry.IEnumSplitPoint
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

splitAtDistances

public IEnumSplitPoint splitAtDistances(int distanceCount,
                                        double[] distances,
                                        boolean asRatios,
                                        boolean createParts)
                                 throws java.io.IOException,
                                        AutomationException
Description copied from interface: IPolycurve2
Introduces new vertices into this polyline at specified distances from the beginning of the polyline.

Supported Platforms

Windows, Solaris, Linux

Specified by:
splitAtDistances in interface IPolycurve2
Parameters:
distanceCount - The distanceCount (in)
distances - The distances (in)
asRatios - The asRatios (in)
createParts - The createParts (in)
Returns:
A reference to a com.esri.arcgis.geometry.IEnumSplitPoint
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

densifyByAngle

public void densifyByAngle(double maxSegmentLength,
                           double maxAngleDeviation)
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IPolycurve2
Converts this polycurve into a piecewise linear approximation of itself. Vertices are introduced at points where the included angle between tangents at those point is maxAngleDeviation.

Supported Platforms

Windows, Solaris, Linux

Description

Converts a Polycurve into a Polycurve composed of Line segments with length maxSegmentLength (or less) that are within maxDeviation of the original polycurve. If maxDeviation = 0, maxDeviation is ignored and Line segments with length maxSegmentLength are constructed with vertices located on the original curve. All of the segments in the final polyline will be Lines. The maxDeviation is an angle in radians.

Remarks

If the maxSegmentLength is negative IGeometryEnvironment::AutoDensifyTolerance is used. IGeometryEnvironment::AutoDensifyTolerance default value is 0. This value can be explicitly set via IGeometryEnvironment::AutoDensifyTolerance.

If the maxDeviation is negative IGeometryEnvironment::AngularAutoDensifyTolerance is used. The default value is Pi / 18.0. That value can be explicitly set via IGeometryEnvironment::AngularAutoDensifyTolerance.

In order to avoid the creation of too many segments,  the geometry system uses a maxDeviation = 2*XYresolution * 100 (or 2/XYUnits * 100) as the default value if maxSegmentLength is 0 and the maxDeviation is 0.

The maximum number of segments that can be produced is 2000, an external user cannot modify that value.


NOTE: The default values given in this topic are subject to change without notice. If you have specific values that you want to be maintained, we recommend using the methods on IGeometryEnvironment to set them explicitly.

The start and end points are always honored and remain the same as for the original feature.

 

Specified by:
densifyByAngle in interface IPolycurve2
Parameters:
maxSegmentLength - The maxSegmentLength (in)
maxAngleDeviation - The maxAngleDeviation (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.