com.esri.arcgis.geodatabaseextensions
Class DynamicSurface

java.lang.Object
  extended by com.esri.arcgis.geodatabaseextensions.DynamicSurface
All Implemented Interfaces:
IDynamicSurface, IDynamicSurface2, com.esri.arcgis.interop.RemoteObjRef, Serializable

public class DynamicSurface
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IDynamicSurface, IDynamicSurface2

ESRI DynamicSurface object.

Description

A DynamicSurface is used to extract rasters, TINs, and measurement points/vertices from a terrain based on extent and level of detail.

This class is instantiated via the ITerrain.CreateDynamicSurface member of the Terrain object.

Product Availability

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

See Also:
Serialized Form

Constructor Summary
DynamicSurface(Object obj)
          Construct a DynamicSurface using a reference to such an object returned from ArcGIS Engine or Server.
 
Method Summary
 boolean equals(Object o)
          Compare this object with another
 void getLineOfSight(IPoint pObserver, IPoint pTarget, double resolution, ITrackCancel pTrackCancel, IPoint[] ppObstruction, IPolyline[] ppVisibleLines, IPolyline[] ppInvisibleLines, boolean[] pbIsVisible, boolean bApplyCurvature, boolean bApplyRefraction, Object pRefractionFactor)
          Returns a line-of-sight.
 void getLineOfSightFeatureCursor(IFeatureCursor pCursor, double resolution, ITrackCancel pTrackCancel, IFeatureClass pOutputLines, IFeatureClass pObstructionPoints, boolean bApplyCurvature, boolean bApplyRefraction, Object pRefractionFactor)
          Get line-of-sight.
 int getRasterBlockSize()
          The pixel block allocation size used when creating a raster.
 ITerrain getTerrain()
          The source terrain from which the DynamicSurface was derived.
 IPolygon getTileBasedDataArea(ITrackCancel pTrackCancel)
          Get tile-based terrain's Data Area.
 ITin getTin(IEnvelope pAreaOfInterest, double resolution, boolean bClipWithAOI, ITrackCancel pTrackCancel)
          Returns a TIN for a given area of interest and terrain pyramid level.
 int hashCode()
          the hashcode for this object
 void interpolateFeatureClass(IFeatureClass pInFeatureClass, IQueryFilter pFilter, double resolution, int type, IFeatureClass pOutFeatureClass, ITrackCancel pTrackCancel, Object pStepSize)
          Interpolates z values for features.
 void interpolateFeatureClassVertices(IFeatureClass pInFeatureClass, IQueryFilter pFilter, double resolution, int type, IFeatureClass pOutFeatureClass, ITrackCancel pTrackCancel)
          Interpolates z values for features.
 void interpolateFeatureCursor(IFeatureCursor pCursor, double resolution, int type, IFeatureClass pOutFeatureClass, ITrackCancel pTrackCancel, Object pStepSize)
          Interpolates z values for features.
 void interpolateFeatureCursorVertices(IFeatureCursor pCursor, double resolution, int type, IFeatureClass pOutFeatureClass, ITrackCancel pTrackCancel)
          Interpolates z values for features.
 void interpolateShape(IGeometry pInShape, double resolution, int type, ITrackCancel pTrackCancel, IGeometry[] ppOutShape, Object pStepSize)
          Interpolates z values for a defined geometric shape.
 void interpolateShapeVertices(IGeometry pInShape, double resolution, int type, ITrackCancel pTrackCancel, IGeometry[] ppOutShape)
          Interpolates z values for a defined geometric shape.
 boolean isCanDoCurvature()
          Indicates if earth curvature can be applied.
 boolean isMinimizeResourceUsage()
          Indicates whether or not resource uasge should be minimized.
 boolean isRefineBoundaryMatching()
          Indicates whether or not to refine boundary matching.
 void queryAsFeatureClass(IFeatureClass pFeatureClass, IEnvelope pAreaOfInterest, double resolution, ITrackCancel pTrackCancel)
          Writes terrain measurement points and breakline vertices to a multipoint feature class for a given area of interest and terrain pyramid level.
 void queryRaster(IRasterDataset pDataset, IEnvelope pAreaOfInterest, double resolution, int method, ITrackCancel pTrackCancel)
          Writes surface heights to a raster dataset for a given area of interest and terrain pyramid level.
 void setMinimizeResourceUsage(boolean pbMinimize)
          Indicates whether or not resource uasge should be minimized.
 void setRasterBlockSize(int pSize)
          The pixel block allocation size used when creating a raster.
 void setRefineBoundaryMatching(boolean pbRefine)
          Indicates whether or not to refine boundary matching.
 
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

DynamicSurface

public DynamicSurface(Object obj)
               throws IOException
Construct a DynamicSurface using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to DynamicSurface.
Casting to this class from the return value of a method will not work, as this class represents an abstract class in ArcObjects.
*
DynamicSurface o = (DynamicSurface)obj; // will not work

DynamicSurface o = new DynamicSurface(obj); // Use this constructor instead
* @param obj an object returned from ArcGIS Engine or Server

Throws:
IOException - if there are interop problems DynamicSurface theDynamicSurface = (DynamicSurface) obj;
Method Detail

equals

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

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

setRasterBlockSize

public void setRasterBlockSize(int pSize)
                        throws IOException,
                               AutomationException
The pixel block allocation size used when creating a raster.

Product Availability

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

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

getRasterBlockSize

public int getRasterBlockSize()
                       throws IOException,
                              AutomationException
The pixel block allocation size used when creating a raster.

Product Availability

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

Specified by:
getRasterBlockSize in interface IDynamicSurface
Returns:
The pSize
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTerrain

public ITerrain getTerrain()
                    throws IOException,
                           AutomationException
The source terrain from which the DynamicSurface was derived.

Product Availability

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

Specified by:
getTerrain in interface IDynamicSurface
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.ITerrain
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTin

public ITin getTin(IEnvelope pAreaOfInterest,
                   double resolution,
                   boolean bClipWithAOI,
                   ITrackCancel pTrackCancel)
            throws IOException,
                   AutomationException
Returns a TIN for a given area of interest and terrain pyramid level.

Description

AreaOfInterest (AOI) is an envelope that indicates the area of the terrain to be extracted. If a spatial reference is defined for the envelope the returned TIN will be in that spatial reference. Otherwise the TIN will be in the spatial reference of the terrain.

Resolution is used to indicate which pyramid level to extract from. The pyramid level with a resolution (e.g. z-tolerance) that is equal to or better than the value specified will be used. For example, take a terrain that has pyramids with resolutions 1.0, 2.5, and 5.0. If you give a value of 2.5 then the 2.5 resolution pyramid level is used. If you give 2.4 then the pyramid with a resolution of 1 is used. Specify a value of -1 to obtain the terrain's overview representation.

ClipWithAOI is a boolean that is used to neatline clip the returned TIN to the passed AOI. Otherwise, data outside the AOI envelope may be included. If the terrain is defined with a clip polygon the returned TIN with be clipped by the intersection of the clip polygon with the AOI.

TrackCancel is a pointer to a CancelTracker object. If you are not interested in supporting a user cancel operation then pass a NULL pointer ('Nothing' in VB).

You should call ITerrain.GetPointCount before this GetTIN using the same AOI and resolution parameters to ensure the resulting number of nodes is not too big. You should not attempt to build TINs with more than several million points.

The returned TIN will be in edit mode. To save it to disk and take it out of edit mode you call ITin.SaveAs followed by ITinEdit.StopEditing.

Product Availability

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

Specified by:
getTin in interface IDynamicSurface
Parameters:
pAreaOfInterest - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
resolution - The resolution (in)
bClipWithAOI - The bClipWithAOI (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITin
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryRaster

public void queryRaster(IRasterDataset pDataset,
                        IEnvelope pAreaOfInterest,
                        double resolution,
                        int method,
                        ITrackCancel pTrackCancel)
                 throws IOException,
                        AutomationException
Writes surface heights to a raster dataset for a given area of interest and terrain pyramid level.

Description

The raster dataset will be written to. The raster must already exist and may be file or SDE based.

AreaOfInterest (AOI) is an envelope that indicates the area of the terrain to be rasterized. If data already exists in the output raster for part of this area it will be overwritten.

Resolution is used to indicate which pyramid level to extract from. The pyramid level with a resolution (e.g. z-tolerance) that is equal to or better than the value specified will be used. For example, take a terrain that has pyramids with resolutions 1.0, 2.5, and 5.0. If you give a value of 2.5 then the 2.5 resolution pyramid level is used. If you give 2.4 then the pyramid with a resolution of 1 is used. Specify a value of -1 to obtain the terrain's overview representation.

The method is the type of interpolation. It may be esriLinearInterpolation or esriNaturalNeighborInterpolation.

TrackCancel is a pointer to a CancelTracker object. If you are not interested in supporting a user cancel operation then pass a NULL pointer ('Nothing' in VB).

Product Availability

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

Specified by:
queryRaster in interface IDynamicSurface
Parameters:
pDataset - A reference to a com.esri.arcgis.geodatabase.IRasterDataset (in)
pAreaOfInterest - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
resolution - The resolution (in)
method - A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryAsFeatureClass

public void queryAsFeatureClass(IFeatureClass pFeatureClass,
                                IEnvelope pAreaOfInterest,
                                double resolution,
                                ITrackCancel pTrackCancel)
                         throws IOException,
                                AutomationException
Writes terrain measurement points and breakline vertices to a multipoint feature class for a given area of interest and terrain pyramid level.

Description

FeatureClass is an existing, z-aware, multipoint feature class that shapes will be added to. The shapes are those measurement points and breakline vertices that would be used to construct a terrain representation based on the following parameters.

AreaOfInterest (AOI) is an envelope that indicates the area of the terrain to be extracted.

Resolution is used to indicate which pyramid level to extract from. The pyramid level with a resolution (e.g. z-tolerance) that is equal to or better than the value specified will be used. For example, take a terrain that has pyramids with resolutions 1.0, 2.5, and 5.0. If you give a value of 2.5 then the 2.5 resolution pyramid level is used. If you give 2.4 then the pyramid with a resolution of 1 is used. Specify a value of -1 to obtain the terrain's overview representation.

TrackCancel is a pointer to a CancelTracker object. If you are not interested in supporting a user cancel operation then pass a NULL pointer ('Nothing' in VB).

Product Availability

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

Specified by:
queryAsFeatureClass in interface IDynamicSurface
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pAreaOfInterest - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
resolution - The resolution (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMinimizeResourceUsage

public void setMinimizeResourceUsage(boolean pbMinimize)
                              throws IOException,
                                     AutomationException
Indicates whether or not resource uasge should be minimized.

Product Availability

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

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

isMinimizeResourceUsage

public boolean isMinimizeResourceUsage()
                                throws IOException,
                                       AutomationException
Indicates whether or not resource uasge should be minimized.

Description

By default, MinimizeResourceUsage is set to FALSE: if possible, it will construct TINs, from which to interpolate heights, using multiple terrain tiles at once. This applies to interpolation for both features and rasters. Whether or not it can do this depends on the amount of data required for the given area of interest, desired pyramid level, and available physical memory. This approach tends to improve performance at the expense of some memory resources. Setting the property to TRUE forces the terrain to triangulate no more than one tile at a time in memory, interpolating heights in an iterative, chunked, fashion. This sacrifices performance in favor of minimizing memory use.

Product Availability

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

Specified by:
isMinimizeResourceUsage in interface IDynamicSurface2
Returns:
The pbMinimize
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRefineBoundaryMatching

public void setRefineBoundaryMatching(boolean pbRefine)
                               throws IOException,
                                      AutomationException
Indicates whether or not to refine boundary matching.

Product Availability

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

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

isRefineBoundaryMatching

public boolean isRefineBoundaryMatching()
                                 throws IOException,
                                        AutomationException
Indicates whether or not to refine boundary matching.

Description

Operations such as rasterization and feature interpolation are performed iteratively on chuncks of terrain data. One or more contiguous terrain tiles are used to form chunks. When using a pyramid level other than full resolution the surfaces between neighboring chunk boundaries may not align, resulting in artifacts. Setting RefineBoundaryMatching to TRUE improves the match between these boundaries.

Product Availability

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

Specified by:
isRefineBoundaryMatching in interface IDynamicSurface2
Returns:
The pbRefine
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interpolateShape

public void interpolateShape(IGeometry pInShape,
                             double resolution,
                             int type,
                             ITrackCancel pTrackCancel,
                             IGeometry[] ppOutShape,
                             Object pStepSize)
                      throws IOException,
                             AutomationException
Interpolates z values for a defined geometric shape.

Description

pInShape is the input geometry for which heights will be interpolated. The shape types supported are points, multipoints, polylines, and polygons.

Resolution controls which pyramid level of the terrain to use as a surface. Depending on the type of filter used to generate the terrain pyramid, resolution represents either the z-tolerance or window size of the desired pyramid level. Pass a value of 0.0 to use the full resolution surface.

Type is used to control which interpolant is applied; linear or natural neighbors.

pTrackCancel supports process interruption. This can be set to NULL ('Nothing' in VB).

pOutShape is a placeholder for the resulting 3D geometry. It does not need to reference an instantiated, empty geometry. The geometry will be created by the function. The result will be NULL ('Nothing' in VB) if the input geometry does not have any overlap with the 2D extent of the surface.

stepSize is used to densify input polylines and polygon boundaries. If stepsize is omitted input polylines and polygon boundaries will be densified where they intersect terrain triangle edges. Typically, stepSize should be omitted when using linear interpolation because the 'natural' densification applied with triangle edges is sufficient to capture what information is available in the surface.

Notes

This function is best used to interpolate heights for one feature that crosses over multiple terrain tiles which, at the desired resolution, can't all be held in memory. An alternative is IDynamicSurface2.InterpolateFeatureClass, which is optimized for processing multiple features. If multiple features fall within an extent of the terrain which can be held in memory (estimate this using ITerrain.GetPointCount) then consider using IDynamicSurface.GetTin followed by ISurface.InterpolateShape on the TIN. Another approach would be to retreive a TIN using ITerrainLayer.GetCurrentSurface followed by ISurface.InterpolateShape on the TIN if the current representation of a terrain layer's surface is sufficient.

Product Availability

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

Specified by:
interpolateShape in interface IDynamicSurface2
Parameters:
pInShape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
resolution - The resolution (in)
type - A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
ppOutShape - A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)
pStepSize - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interpolateShapeVertices

public void interpolateShapeVertices(IGeometry pInShape,
                                     double resolution,
                                     int type,
                                     ITrackCancel pTrackCancel,
                                     IGeometry[] ppOutShape)
                              throws IOException,
                                     AutomationException
Interpolates z values for a defined geometric shape.

Description

pInShape is the input geometry for which heights will be interpolated. The shape types supported are points, multipoints, polylines, and polygons. Heights will only be calculated for input vertices. No densification of polyline or polygon vertices takes place.

Resolution controls which pyramid level of the terrain to use as a surface. Depending on the type of filter used to generate the terrain pyramid, resolution represents either the z-tolerance or window size of the desired pyramid level. Pass a value of 0.0 to use the full resolution surface.

Type is used to control which interpolant is applied; linear or natural neighbors.

pTrackCancel supports process interruption. This can be set to NULL ('Nothing' in VB).

pOutShape is a placeholder for the resulting 3D geometry. It does not need to reference an instantiated object. The geometry will be created by the function. The result will be NULL ('Nothing' in VB) if any part of the geometry falls outside the surface.

Notes

This function is best used to interpolate heights for one feature that crosses over multiple terrain tiles which, at the desired resolution, can't all be held in memory. An alternative is IDynamicSurface2.InterpolateFeatureClassVertices, which is optimized for processing multiple features. If multiple features fall within an extent of the terrain which can be held in memory (estimate this using ITerrain.GetPointCount) then consider using IDynamicSurface.GetTin followed by ISurface.InterpolateShapeVertices on the TIN. Another approach would be to retreive a TIN using ITerrainLayer.GetCurrentSurface followed by ISurface.InterpolateShapeVertices on the TIN if the current representation of a terrain layer's surface is sufficient.

Product Availability

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

Specified by:
interpolateShapeVertices in interface IDynamicSurface2
Parameters:
pInShape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
resolution - The resolution (in)
type - A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
ppOutShape - 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.

interpolateFeatureClass

public void interpolateFeatureClass(IFeatureClass pInFeatureClass,
                                    IQueryFilter pFilter,
                                    double resolution,
                                    int type,
                                    IFeatureClass pOutFeatureClass,
                                    ITrackCancel pTrackCancel,
                                    Object pStepSize)
                             throws IOException,
                                    AutomationException
Interpolates z values for features.

Description

InterpolateFeatureClass interpolates heights for shapes from an input feature class into a new feature class. The output will contain 3D geometry.

pInFeatureClass contains the input features. The shape types supported are points, multipoints, polylines, and polygons.

pFilter is a query filter used on the input features. It may be set to NULL ('Nothing n VB).

Resolution controls which pyramid level of the terrain to use as a surface. Depending on the type of filter used to generate the terrain pyramid, resolution represents either the z-tolerance or window size of the desired pyramid level. Pass a value of 0.0 to use the full resolution surface.

Type is used to control which interpolant is applied; linear or natural neighbors.

pOutFeatureClass is where features are written. It must be z-enabled (i.e.; IGeometryDef.HasZ = TRUE). Attribute fields and values will be copied from the input to the output. Input features that fall completely off the surface will not be written to the output.

pTrackCancel supports process interruption. This can be set to NULL ('Nothing' in VB).

stepSize is used to densify input polylines and polygon boundaries. If stepsize is omitted input polylines and polygon boundaries will be densified where they intersect terrain triangle edges. Typically, stepSize should be omitted when using linear interpolation because the 'natural' densification applied with triangle edges is sufficient to capture what information is available in the surface.

Product Availability

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

Specified by:
interpolateFeatureClass in interface IDynamicSurface2
Parameters:
pInFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
resolution - The resolution (in)
type - A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)
pOutFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
pStepSize - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interpolateFeatureCursor

public void interpolateFeatureCursor(IFeatureCursor pCursor,
                                     double resolution,
                                     int type,
                                     IFeatureClass pOutFeatureClass,
                                     ITrackCancel pTrackCancel,
                                     Object pStepSize)
                              throws IOException,
                                     AutomationException
Interpolates z values for features.

Description

If stepsize is omitted, and the interpolation option is set to natural neighbors, input polylines and polygon boundaries will be densified where they intersect terrain triangle edges.

Product Availability

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

Specified by:
interpolateFeatureCursor in interface IDynamicSurface2
Parameters:
pCursor - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)
resolution - The resolution (in)
type - A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)
pOutFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
pStepSize - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interpolateFeatureClassVertices

public void interpolateFeatureClassVertices(IFeatureClass pInFeatureClass,
                                            IQueryFilter pFilter,
                                            double resolution,
                                            int type,
                                            IFeatureClass pOutFeatureClass,
                                            ITrackCancel pTrackCancel)
                                     throws IOException,
                                            AutomationException
Interpolates z values for features.

Product Availability

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

Specified by:
interpolateFeatureClassVertices in interface IDynamicSurface2
Parameters:
pInFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
resolution - The resolution (in)
type - A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)
pOutFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interpolateFeatureCursorVertices

public void interpolateFeatureCursorVertices(IFeatureCursor pCursor,
                                             double resolution,
                                             int type,
                                             IFeatureClass pOutFeatureClass,
                                             ITrackCancel pTrackCancel)
                                      throws IOException,
                                             AutomationException
Interpolates z values for features.

Product Availability

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

Specified by:
interpolateFeatureCursorVertices in interface IDynamicSurface2
Parameters:
pCursor - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)
resolution - The resolution (in)
type - A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)
pOutFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCanDoCurvature

public boolean isCanDoCurvature()
                         throws IOException,
                                AutomationException
Indicates if earth curvature can be applied.

Description

Indicates whether earth curvature correction can be applied to line of sight functions. The result will be TRUE as long as both XY and Z coordinate systems for the terrain are defined.

Product Availability

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

Specified by:
isCanDoCurvature in interface IDynamicSurface2
Returns:
The pbCanDo
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLineOfSight

public void getLineOfSight(IPoint pObserver,
                           IPoint pTarget,
                           double resolution,
                           ITrackCancel pTrackCancel,
                           IPoint[] ppObstruction,
                           IPolyline[] ppVisibleLines,
                           IPolyline[] ppInvisibleLines,
                           boolean[] pbIsVisible,
                           boolean bApplyCurvature,
                           boolean bApplyRefraction,
                           Object pRefractionFactor)
                    throws IOException,
                           AutomationException
Returns a line-of-sight.

Product Availability

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

Specified by:
getLineOfSight in interface IDynamicSurface2
Parameters:
pObserver - A reference to a com.esri.arcgis.geometry.IPoint (in)
pTarget - A reference to a com.esri.arcgis.geometry.IPoint (in)
resolution - The resolution (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
ppObstruction - A reference to a com.esri.arcgis.geometry.IPoint (out: use single element array)
ppVisibleLines - A reference to a com.esri.arcgis.geometry.IPolyline (out: use single element array)
ppInvisibleLines - A reference to a com.esri.arcgis.geometry.IPolyline (out: use single element array)
pbIsVisible - The pbIsVisible (out: use single element array)
bApplyCurvature - The bApplyCurvature (in)
bApplyRefraction - The bApplyRefraction (in)
pRefractionFactor - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLineOfSightFeatureCursor

public void getLineOfSightFeatureCursor(IFeatureCursor pCursor,
                                        double resolution,
                                        ITrackCancel pTrackCancel,
                                        IFeatureClass pOutputLines,
                                        IFeatureClass pObstructionPoints,
                                        boolean bApplyCurvature,
                                        boolean bApplyRefraction,
                                        Object pRefractionFactor)
                                 throws IOException,
                                        AutomationException
Get line-of-sight.

Product Availability

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

Specified by:
getLineOfSightFeatureCursor in interface IDynamicSurface2
Parameters:
pCursor - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)
resolution - The resolution (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
pOutputLines - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pObstructionPoints - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
bApplyCurvature - The bApplyCurvature (in)
bApplyRefraction - The bApplyRefraction (in)
pRefractionFactor - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTileBasedDataArea

public IPolygon getTileBasedDataArea(ITrackCancel pTrackCancel)
                              throws IOException,
                                     AutomationException
Get tile-based terrain's Data Area.

Description

GetTileBasedDataArea returns a polygon that represents the union of the terrain's data tiles. It ignores the presense of any clip or erase features. This function provides a relatively fast means of extracting a rough approximation of the terrain's data area.

pTrackCancel is a reference to a CancelTracker which can be used to escape the process. A NULL pointer ('Nothing' in VB) can be past if desired.

Product Availability

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

Specified by:
getTileBasedDataArea in interface IDynamicSurface2
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Returns:
A reference to a com.esri.arcgis.geometry.IPolygon
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.