com.esri.arcgis.editor
Class IEditorZProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.editor.IEditorZProxy
All Implemented Interfaces:
IEditorZ, Externalizable, Serializable

public class IEditorZProxy
extends com.esri.arcgis.interop.Dispatch
implements IEditorZ, Serializable

Provides access to members that access and manipulate the z-environment of the editor.

Description

This interface is new at ArcGIS 9.3.

Remarks

For more information on capturing and editing features containing z values, refer to How to work with Z-values in the Editor.

Product Availability

Available with ArcGIS Desktop.

See Also:
Serialized Form

Field Summary
 boolean noncastable
           
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF, objRef
 
Constructor Summary
  IEditorZProxy()
           
  IEditorZProxy(Object obj)
           
protected IEditorZProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 void applyZ(IPoint point)
          Applies editor's Z-capture logic to point if it isn't already z-aware.
 void drapeGeometry(IGeometry geometry, boolean addVertices, IGeometry[] outputGeometry)
          Drapes a geometry to the current surface..
 void finalizeZs(IGeometry geometry)
          Resolves NaN Zs to definite values.
 INotifyZFinalize getNotifyZFinalize()
          Callback used to notify if ZCapture mode fails.
 IFunctionalSurface getSurface()
          Surface used for Z capture.
 int getZCaptureType()
          Determines method used for z-capture.
 double getZDrapingTolerance()
          Determines the allowable error from the surface when draping.
 double getZOffset()
          Determines offset applied to z-value when new vertex is added to edit sketch.
 IMarkerSymbol getZSnapSymbol()
          Symbol used to indicate when vertex is snapped in Z.
 IFeatureConstruction initializeFeatureConstruction()
          Initialize a FeatureConstruction object that will use the Editor's ZEnvironment settings.
 boolean isDraping()
          Indicates whether sketches are draped onto the surface.
 boolean isUseZDrapingTolerance()
          Indicates whether the ZDrapingTolerance property is used when adding segments to the edit sketch.
 boolean isUseZOffset()
          Indicates whether new z-values are modified by the ZOffset property.
 void removeListener(String iidStr, Object theListener)
           
 void setDraping(boolean useDraping)
          Indicates whether sketches are draped onto the surface.
 void setNotifyZFinalizeByRef(INotifyZFinalize callback)
          Callback used to notify if ZCapture mode fails.
 void setSurfaceByRef(IFunctionalSurface surface)
          Surface used for Z capture.
 void setUseZDrapingTolerance(boolean useZDrapingTolerance)
          Indicates whether the ZDrapingTolerance property is used when adding segments to the edit sketch.
 void setUseZOffset(boolean useZOffset)
          Indicates whether new z-values are modified by the ZOffset property.
 void setZCaptureType(int zCaptureType)
          Determines method used for z-capture.
 void setZDrapingTolerance(double zDrapingTolerance)
          Determines the allowable error from the surface when draping.
 void setZOffset(double zOffset)
          Determines offset applied to z-value when new vertex is added to edit sketch.
 void setZSnapSymbolByRef(IMarkerSymbol symbol)
          Symbol used to indicate when vertex is snapped in Z.
 
Methods inherited from class com.esri.arcgis.interop.Dispatch
bindUsingMoniker, constructVtblPosTable, convertToNative, cookieForListener, createDispatch, createObjrefMonikerDisplayName, equals, getActiveObject, getActiveObject, getDefaultProperty, getDispatchIdOfName, getLastErrorCode, getMtsObjectContext, getObjRef, getPropertyByName, getPropertyByName, getVtblPos, hashCode, initDispatch, invoke, invokeMethodByName, invokeMethodByName, invokeMethodByName, invokePropertyGetByName, invokePropertyPutByName, invokePropertyPutByRefByName, isNativeMode, isObjRef, optimizedVtblInvoke, queryInterface, readExternal, release, setNativeMode, setPropertyByName, toString, vtblInvoke, writeExternal
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

noncastable

public boolean noncastable
Constructor Detail

IEditorZProxy

public IEditorZProxy()

IEditorZProxy

public IEditorZProxy(Object obj)
              throws IOException
Throws:
IOException

IEditorZProxy

protected IEditorZProxy(Object obj,
                        String iid)
                 throws IOException
Throws:
IOException
Method Detail

addListener

public void addListener(String iidStr,
                        Object theListener,
                        Object theSource)
                 throws IOException
Overrides:
addListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

removeListener

public void removeListener(String iidStr,
                           Object theListener)
                    throws IOException
Overrides:
removeListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

drapeGeometry

public void drapeGeometry(IGeometry geometry,
                          boolean addVertices,
                          IGeometry[] outputGeometry)
                   throws IOException,
                          AutomationException
Drapes a geometry to the current surface.. If addVertices is false, existing vertex Z's will be modified but no new vertices added.

Remarks

Drapes the input geometry on the editor's current surface (defined by IEditorZ::Surface). If addVertices is FALSE, then only Z values for existing vertices in the input geometry will be updated. If addVertices is TRUE, then new vertices will be inserted at changes in elevation defined by the surface. Existing vertices are not updated when addVertices is TRUE.

Product Availability

Available with ArcGIS Desktop.

Specified by:
drapeGeometry in interface IEditorZ
Parameters:
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
addVertices - The addVertices (in)
outputGeometry - A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

applyZ

public void applyZ(IPoint point)
            throws IOException,
                   AutomationException
Applies editor's Z-capture logic to point if it isn't already z-aware.

Remarks

This method checks to determine that incoming point is Z-aware; if it is not, this method will set it to be Z-aware and apply the current Z assignment behavior to the incoming point in the following order: ZCaptureType, ZOffset. If the z-assignment fails (usually because the z-capture type is surface, and the retrieval of the z-value fails) then the client can receive this message through INotifyZFinalize, and is given an opportunity to specify a valid z-value.


Note: If the incoming point is already z-aware then this method does not alter the incoming point.

Product Availability

Available with ArcGIS Desktop.

Specified by:
applyZ in interface IEditorZ
Parameters:
point - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

finalizeZs

public void finalizeZs(IGeometry geometry)
                throws IOException,
                       AutomationException
Resolves NaN Zs to definite values.

Remarks

This method ensures a particular geometry has a valid set of z values defined. This method attempts to interpolate the z-value of any non-simple points in the geometry; if result is non-simple then the Failed method of the class implementing INotifyZFinalize and hooked into IEditorZ::NotifyZFinalize is given an opportunity to manipulate the Z values. If the client handles this, the method checks for simplicity and defines the offending z-values as necessary to successfully store the feature (using IEditSketch2::CurrentZ).

Product Availability

Available with ArcGIS Desktop.

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

getZCaptureType

public int getZCaptureType()
                    throws IOException,
                           AutomationException
Determines method used for z-capture.

Remarks

ZCaptureType defines the current method the editor uses to assign z-values for newly created or edited vertices. The default value is esriZCaptureCurrentZ. When using one either esriCaptureInterpolateZ or esriCaptureSurfaceZ, the resulting z-value may not be defined; if these sources do not produce a valid z-value (non-NaN) then the editor applies the value defined in IEditSketch2::CurrentZ.

Product Availability

Available with ArcGIS Desktop.

Specified by:
getZCaptureType in interface IEditorZ
Returns:
A com.esri.arcgis.editor.esriZCaptureType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZCaptureType

public void setZCaptureType(int zCaptureType)
                     throws IOException,
                            AutomationException
Determines method used for z-capture.

Product Availability

Available with ArcGIS Desktop.

Specified by:
setZCaptureType in interface IEditorZ
Parameters:
zCaptureType - A com.esri.arcgis.editor.esriZCaptureType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isUseZOffset

public boolean isUseZOffset()
                     throws IOException,
                            AutomationException
Indicates whether new z-values are modified by the ZOffset property.

Remarks

Use this property to define whether an offset (specified through IEditorZ::ZOffset) is applied to a z-value captured using the editor. Default value is FALSE.

Product Availability

Available with ArcGIS Desktop.

Specified by:
isUseZOffset in interface IEditorZ
Returns:
The useZOffset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setUseZOffset

public void setUseZOffset(boolean useZOffset)
                   throws IOException,
                          AutomationException
Indicates whether new z-values are modified by the ZOffset property.

Remarks

This property will apply an offset to the z-value generated by the editor's ZCaptureType. Default value is 0. The ZOffset is not applied unless IEditorZ::UseZOffset is TRUE.

Product Availability

Available with ArcGIS Desktop.

Specified by:
setUseZOffset in interface IEditorZ
Parameters:
useZOffset - The useZOffset (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZOffset

public double getZOffset()
                  throws IOException,
                         AutomationException
Determines offset applied to z-value when new vertex is added to edit sketch.

Remarks

This property will apply an offset to the z-value generated by the editor's ZCaptureType. Default value is 0. The ZOffset is not applied unless IEditorZ::UseZOffset is TRUE.

Product Availability

Available with ArcGIS Desktop.

Specified by:
getZOffset in interface IEditorZ
Returns:
The zOffset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZOffset

public void setZOffset(double zOffset)
                throws IOException,
                       AutomationException
Determines offset applied to z-value when new vertex is added to edit sketch.

Product Availability

Available with ArcGIS Desktop.

Specified by:
setZOffset in interface IEditorZ
Parameters:
zOffset - The zOffset (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isUseZDrapingTolerance

public boolean isUseZDrapingTolerance()
                               throws IOException,
                                      AutomationException
Indicates whether the ZDrapingTolerance property is used when adding segments to the edit sketch.

Remarks

Determines whether a draping tolerance (defined in IEditorZ::ZDrapingTolerance) is applied to limit the number of points added to the sketch. Default value is FALSE.

Product Availability

Available with ArcGIS Desktop.

Specified by:
isUseZDrapingTolerance in interface IEditorZ
Returns:
The useZDrapingTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setUseZDrapingTolerance

public void setUseZDrapingTolerance(boolean useZDrapingTolerance)
                             throws IOException,
                                    AutomationException
Indicates whether the ZDrapingTolerance property is used when adding segments to the edit sketch.

Product Availability

Available with ArcGIS Desktop.

Specified by:
setUseZDrapingTolerance in interface IEditorZ
Parameters:
useZDrapingTolerance - The useZDrapingTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZDrapingTolerance

public double getZDrapingTolerance()
                            throws IOException,
                                   AutomationException
Determines the allowable error from the surface when draping.

Remarks

Double value that defines the maximum offset used to generalize the draped geometry. Will only remove points inserted via draping; does not affect any points explicitly defined by the user. Default value is 0. ZDrapingTolerance is only applied when IEditorZ::UseZDrapingTolerance is TRUE.

Product Availability

Available with ArcGIS Desktop.

Specified by:
getZDrapingTolerance in interface IEditorZ
Returns:
The zDrapingTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZDrapingTolerance

public void setZDrapingTolerance(double zDrapingTolerance)
                          throws IOException,
                                 AutomationException
Determines the allowable error from the surface when draping.

Product Availability

Available with ArcGIS Desktop.

Specified by:
setZDrapingTolerance in interface IEditorZ
Parameters:
zDrapingTolerance - The zDrapingTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDraping

public boolean isDraping()
                  throws IOException,
                         AutomationException
Indicates whether sketches are draped onto the surface.

Remarks

This property determines whether new segments added to the edit sketch are draped onto the defined surface. This behavior is only active when the editor's ZCaptureType is SurfaceZ. When draping is TRUE and the ZCaptureType is SurfaceZ then a new vertex will be inserted at each elevation change in the surface (triangle edges in TINs, cell boundaries in Rasters). When using very accurate surfaces, the number of points can be very high. To minimize the number of vertices inserted into the sketch, a tolerance can be defined using IEditorZ::ZDrapingTolerance; this uses the Douglas-Poiker algorithm to determine significant vertices in Z. The Default value is FALSE.

Product Availability

Available with ArcGIS Desktop.

Specified by:
isDraping in interface IEditorZ
Returns:
The useDraping
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDraping

public void setDraping(boolean useDraping)
                throws IOException,
                       AutomationException
Indicates whether sketches are draped onto the surface.

Product Availability

Available with ArcGIS Desktop.

Specified by:
setDraping in interface IEditorZ
Parameters:
useDraping - The useDraping (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSurface

public IFunctionalSurface getSurface()
                              throws IOException,
                                     AutomationException
Surface used for Z capture.

Remarks

This property defines the surface used to calculate new z-values. By default, the surface for the editor is built from any available sources (Terrains, Tins, and Rasters) added to the map.


If you choose to use a particular surface for z-capture, assign your surface to this property. This overrides the default "composite" surface defined by the available surfaces defined in your map. This surface does not need to be obtained through a layer in the map, although this is an efficient way to access surface-related information. Any layer associated with this surface does not need to be visible in order to be used for z-capture.

Setting this property to NULL will revert back to the "composite" surface defined by the surfaces in the map.


This property is only active when the editor's ZCaptureType is set to SurfaceZ.

Product Availability

Available with ArcGIS Desktop.

Specified by:
getSurface in interface IEditorZ
Returns:
A reference to a com.esri.arcgis.geometry.IFunctionalSurface
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSurfaceByRef

public void setSurfaceByRef(IFunctionalSurface surface)
                     throws IOException,
                            AutomationException
Surface used for Z capture.

Product Availability

Available with ArcGIS Desktop.

Specified by:
setSurfaceByRef in interface IEditorZ
Parameters:
surface - A reference to a com.esri.arcgis.geometry.IFunctionalSurface (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZSnapSymbol

public IMarkerSymbol getZSnapSymbol()
                             throws IOException,
                                    AutomationException
Symbol used to indicate when vertex is snapped in Z.

Remarks

Use this property to change the symbol displayed when the editor snaps to a particular snap agent in Z coordinate space. The Z snap symbol is displayed if you are working with an edit sketch that is Z-aware and the Z-snapping is set. The ZSnapSymbol is identical to the editor's SnapSymbol by default; if SnapTips (IEditProperties2::SnapTips) are enabled, the Z-value of the snapped location is added to the SnapTip when displayed.

The snap agent knows to draw the snap symbol twice, once to get rid of the old symbol and once to draw the symbol at its new location. When setting the symbol, don't forget to set its ROP property (on the ISymbol interface) to esriROPNotXOrPen. This setting allows the symbol to erase itself when drawn twice in the same location.

Product Availability

Available with ArcGIS Desktop.

Specified by:
getZSnapSymbol in interface IEditorZ
Returns:
A reference to a com.esri.arcgis.display.IMarkerSymbol
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZSnapSymbolByRef

public void setZSnapSymbolByRef(IMarkerSymbol symbol)
                         throws IOException,
                                AutomationException
Symbol used to indicate when vertex is snapped in Z.

Product Availability

Available with ArcGIS Desktop.

Specified by:
setZSnapSymbolByRef in interface IEditorZ
Parameters:
symbol - A reference to a com.esri.arcgis.display.IMarkerSymbol (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNotifyZFinalize

public INotifyZFinalize getNotifyZFinalize()
                                    throws IOException,
                                           AutomationException
Callback used to notify if ZCapture mode fails.

Remarks

Callback mechanism used when Z capture fails; allows the registered client an opportunity to define Zs prior to editor applying default fallback behavior to ensure Z simplicity (ensures Zs are not defined as NaN and geometry is Z-aware). To receive notification when Z assignment fails, you will need to implement INotifyZFinalize on your class and assign a reference to this property. Only one class can modify or receive this notification; you should code defensively to ensure that another extension is not already plugged in. To unhook, set the NotifyZFinalize property to null.

Product Availability

Available with ArcGIS Desktop.

Specified by:
getNotifyZFinalize in interface IEditorZ
Returns:
A reference to a com.esri.arcgis.editor.INotifyZFinalize
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setNotifyZFinalizeByRef

public void setNotifyZFinalizeByRef(INotifyZFinalize callback)
                             throws IOException,
                                    AutomationException
Callback used to notify if ZCapture mode fails.

Product Availability

Available with ArcGIS Desktop.

Specified by:
setNotifyZFinalizeByRef in interface IEditorZ
Parameters:
callback - A reference to a com.esri.arcgis.editor.INotifyZFinalize (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

initializeFeatureConstruction

public IFeatureConstruction initializeFeatureConstruction()
                                                   throws IOException,
                                                          AutomationException
Initialize a FeatureConstruction object that will use the Editor's ZEnvironment settings.

Product Availability

Available with ArcGIS Desktop.

Specified by:
initializeFeatureConstruction in interface IEditorZ
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureConstruction
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.