com.esri.arcgis.geodatabaseextensions
Class ITerrainProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.geodatabaseextensions.ITerrainProxy
All Implemented Interfaces:
ITerrain, Externalizable, Serializable
Direct Known Subclasses:
ITerrain2Proxy

public class ITerrainProxy
extends com.esri.arcgis.interop.Dispatch
implements ITerrain, Serializable

Provides access to members used to acquire information about a Terrain and to retrieve DynamicSurface objects from which raster and TIN surfaces are made.

Description

The ITerrain interface is used to acquire information about a terrain and its data sources. Additionally, it's used to retrieve DynamicSurface objects which extract terrain information in the form of rasters, TINs, and measurement points.

Product Availability

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

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
  ITerrainProxy()
           
  ITerrainProxy(Object obj)
           
protected ITerrainProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 IDynamicSurface createDynamicSurface()
          Returns an implicit surface from which TINs and rasters are derived.
 void extractFromEmbeddedDataSource(int index, IFeatureClass pFeatureClass, IEnvelope pAOI, double resolution, ITrackCancel pTrackCancel)
          Copies features of an embedded data source to the specified feature class.
 ITerrainDataSource getDataSource(int index)
          Returns the data source specified by the index.
 int getDataSourceCount()
          The number of data sources participating in the terrain.
 IEnumEnvelope getDirtyTiles()
          Returns all dirty tiles.
 IEnvelope getExtent()
          The approximate xyz extent of the terrain.
 IFeatureDataset getFeatureDataset()
          The feature dataset which contains the terrain.
 int getID()
          The database identifier of the terrain.
 int getMaxOverviewTerrainPoints()
          The maximum number of points in the most generalized representation of a Terrain.
 int getMaxPointsPerShape()
          The maximum number of vertices per multipoint.
 String getName()
          The name of the terrain.
 double getPointCount(IEnvelope pAOI, double resolution)
          Returns the approximate number of points in the terrain within a given area and at a particular pyramid level.
 ITerrainPyramidLevel getPyramidLevel(int index)
          Returns the pyramid level specified by the index.
 int getPyramidLevelCount()
          The number of pyramid levels in the terrain.
 int getPyramidType()
          The pyramid type of this Terrain.
 double getSize()
          The total number of points in the Terrain.
 ISpatialReference getSpatialReference()
          The spatial reference of the terrain.
 double getTileSize()
          The horizontal distance used to spatially index and partition terrain data.
 boolean isDirty()
          Indicates whether or not a partial rebuild is needed.
 boolean isValid()
          Indicates whether or not a full build is required.
 void queryTileInfo(int[] pRowBegin, int[] pRowEnd, int[] pColBegin, int[] pColEnd, double[] pXMin, double[] pYMin, double[] pTileSize, int[] pRowCountDomain, int[] pColCountDomain)
          Returns horizontal partitioning information about the terrain data.
 void removeListener(String iidStr, Object theListener)
           
 
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

ITerrainProxy

public ITerrainProxy()

ITerrainProxy

public ITerrainProxy(Object obj)
              throws IOException
Throws:
IOException

ITerrainProxy

protected ITerrainProxy(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

getName

public String getName()
               throws IOException,
                      AutomationException
The name of the terrain.

Product Availability

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

Specified by:
getName in interface ITerrain
Returns:
The pName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getID

public int getID()
          throws IOException,
                 AutomationException
The database identifier of the terrain.

Description

ID is the internal database identifier for the terrain.

Product Availability

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

Specified by:
getID in interface ITerrain
Returns:
The pID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSize

public double getSize()
               throws IOException,
                      AutomationException
The total number of points in the Terrain.

Description

Size is the total number of 3D mass point and breakline vertices in the terrain. The count does not consider the effect of clip or erase features and it does not include vertices of z-less features.

Product Availability

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

Specified by:
getSize in interface ITerrain
Returns:
The pcPoints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isValid

public boolean isValid()
                throws IOException,
                       AutomationException
Indicates whether or not a full build is required.

Description

Indicates whether the terrain schema has been modified since the last Build. When IsValid is FALSE the terrain must be built in order to be used.

Schema edits on terrains include the addition or removal of feature classes and pyramid levels.

Product Availability

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

Specified by:
isValid in interface ITerrain
Returns:
The pbIsValid
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public boolean isDirty()
                throws IOException,
                       AutomationException
Indicates whether or not a partial rebuild is needed.

Description

Indicates whether edits have taken place on feature classes that participate in the terrain. When IsDirty is TRUE a Build is needed to reconstruct the pyramid layers for the terrain tiles in which the edits have occurred.

Product Availability

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

Specified by:
isDirty in interface ITerrain
Returns:
The pbIsDirty
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSpatialReference

public ISpatialReference getSpatialReference()
                                      throws IOException,
                                             AutomationException
The spatial reference of the terrain.

Product Availability

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

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

getExtent

public IEnvelope getExtent()
                    throws IOException,
                           AutomationException
The approximate xyz extent of the terrain.

Description

Extent returns the tile boundary of the terrain for XY and Z.

Product Availability

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

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

getFeatureDataset

public IFeatureDataset getFeatureDataset()
                                  throws IOException,
                                         AutomationException
The feature dataset which contains the terrain.

Product Availability

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

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

getDataSourceCount

public int getDataSourceCount()
                       throws IOException,
                              AutomationException
The number of data sources participating in the terrain.

Description

The DataSourceCount represents the number of feature classes that participate in the terrain. This includes regular and embedded feature classes.

Product Availability

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

Specified by:
getDataSourceCount in interface ITerrain
Returns:
The pcDataSources
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDataSource

public ITerrainDataSource getDataSource(int index)
                                 throws IOException,
                                        AutomationException
Returns the data source specified by the index.

Product Availability

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

Specified by:
getDataSource in interface ITerrain
Parameters:
index - The index (in)
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.ITerrainDataSource
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPyramidLevelCount

public int getPyramidLevelCount()
                         throws IOException,
                                AutomationException
The number of pyramid levels in the terrain.

Description

The PyramidLevelCount is the number of pyramid levels defined for the terrain excluding the implicit full resolution level and also the coarsest level, the terrain overview.

Product Availability

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

Specified by:
getPyramidLevelCount in interface ITerrain
Returns:
The pcPyramidLevels
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPyramidLevel

public ITerrainPyramidLevel getPyramidLevel(int index)
                                     throws IOException,
                                            AutomationException
Returns the pyramid level specified by the index.

Product Availability

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

Specified by:
getPyramidLevel in interface ITerrain
Parameters:
index - The index (in)
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.ITerrainPyramidLevel
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTileSize

public double getTileSize()
                   throws IOException,
                          AutomationException
The horizontal distance used to spatially index and partition terrain data.

Description

The TileSize is the horizontal distance of the side of a terrain tile. Tiles are square. Terrain uses a tile system to divide measurement data into manageable chunks for iterative processing. The size should be set relative to the average point spacing of the data used to build the terrain such that each tile holds between one and two hundred thousand mass points and breakline vertices.

See also ITerrain.QueryTileInfo.

Product Availability

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

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

getPyramidType

public int getPyramidType()
                   throws IOException,
                          AutomationException
The pyramid type of this Terrain.

Description

At this time the only type of terrain pyramid is one based on z-tolerance. On a tile by tile basis, subsets of measurements are selected to contribute to pyramid levels. The surface for each level can only deviate from the next higher higher level of detail by an amount up to the z-tolerance.

Product Availability

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

Specified by:
getPyramidType in interface ITerrain
Returns:
A com.esri.arcgis.geodatabaseextensions.esriTerrainPyramidType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMaxOverviewTerrainPoints

public int getMaxOverviewTerrainPoints()
                                throws IOException,
                                       AutomationException
The maximum number of points in the most generalized representation of a Terrain.

Description

The overview is the coarsest representation of a terrain. It's like a vector based thumbnail. The primary intention of the overview is to enable a terrain to draw quickly when zoomed to its full extent, when detail and accuracy are not needed. The default for MaxOverviewTerrainPoints is 50,000.

Product Availability

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

Specified by:
getMaxOverviewTerrainPoints in interface ITerrain
Returns:
The pcPoints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMaxPointsPerShape

public int getMaxPointsPerShape()
                         throws IOException,
                                AutomationException
The maximum number of vertices per multipoint.

Description

Terrain pyramids are comprised of mass points and breakline vertices. These are stored as a collection of multipoints. MaxPointsPerShape controls how large an individual multipoint can get. The default is 5000.

Product Availability

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

Specified by:
getMaxPointsPerShape in interface ITerrain
Returns:
The pcPoints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTileInfo

public void queryTileInfo(int[] pRowBegin,
                          int[] pRowEnd,
                          int[] pColBegin,
                          int[] pColEnd,
                          double[] pXMin,
                          double[] pYMin,
                          double[] pTileSize,
                          int[] pRowCountDomain,
                          int[] pColCountDomain)
                   throws IOException,
                          AutomationException
Returns horizontal partitioning information about the terrain data.

Description

The feature dataset containing the terrain is logically tiled, in its entirety, to form the tile scheme with its origin in the southwest corner. Tiles are square. Row and column numbering starts at base 1. The data area of the terrain may not fill the extent of the feature dataset so it's possible that only a subset of rows and columns are involved. This method provides the info about those tiles overlapping the terrain extent.

The returned row and column numbers represent the rectangular subset of tiles that intersect the terrain extent. Row and column numbering start at base 1 with the first row and column being in the southwest corner of the feature dataset.

The xmin and ymin are the real world coordinates for the lower left corner of the origin tile of the terrain.

The tilesize is the horizontal length of one of the square tiles and is equal to that specified when the terrain was created.

Product Availability

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

Specified by:
queryTileInfo in interface ITerrain
Parameters:
pRowBegin - The pRowBegin (out: use single element array)
pRowEnd - The pRowEnd (out: use single element array)
pColBegin - The pColBegin (out: use single element array)
pColEnd - The pColEnd (out: use single element array)
pXMin - The pXMin (out: use single element array)
pYMin - The pYMin (out: use single element array)
pTileSize - The pTileSize (out: use single element array)
pRowCountDomain - The pRowCountDomain (out: use single element array)
pColCountDomain - The pColCountDomain (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDirtyTiles

public IEnumEnvelope getDirtyTiles()
                            throws IOException,
                                   AutomationException
Returns all dirty tiles.

Description

Each envelope returned by the enumerator represents the map based extent of a dirty tile.

Product Availability

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

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

getPointCount

public double getPointCount(IEnvelope pAOI,
                            double resolution)
                     throws IOException,
                            AutomationException
Returns the approximate number of points in the terrain within a given area and at a particular pyramid level.

Description

GetPointCount returns the number of points and breakline vertices, at a particular pyramid level, for those terrain tiles intersected by a given envelope. This yields a relatively quick estimate, albeit over-estimated, of the size of the terrain for that area and vertical tolerance. Only 3-D measurements are counted. Z-less line and polygon vertices are excluded.

GetPointCount will return an error when called on a terrain that is in need of being built. That is, when ITerrain.IsValid returns FALSE. Ensure the terrain IsValid before calling this member.

Product Availability

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

Specified by:
getPointCount in interface ITerrain
Parameters:
pAOI - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
resolution - The resolution (in)
Returns:
The pcPoints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createDynamicSurface

public IDynamicSurface createDynamicSurface()
                                     throws IOException,
                                            AutomationException
Returns an implicit surface from which TINs and rasters are derived.

Description

CreateDynamicSurface will return an error when called on a terrain that is in need of being built. That is, when ITerrain.IsValid returns FALSE. Ensure the terrain IsValid before calling this member.

Product Availability

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

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

extractFromEmbeddedDataSource

public void extractFromEmbeddedDataSource(int index,
                                          IFeatureClass pFeatureClass,
                                          IEnvelope pAOI,
                                          double resolution,
                                          ITrackCancel pTrackCancel)
                                   throws IOException,
                                          AutomationException
Copies features of an embedded data source to the specified feature class.

Description

Copies points from an embedded source into the target feature class.

index references the data source to use. This should be in the range of 0 to n-1 where n represents the number of data sources in the terrain, but it must also be a source which is embedded.

pFeatureClass is the target feature class, where the points will be written.

pAOI is the area of interest envelope. Points within the AOI will be extracted. This can be set to a NULL pointer ('Nothing' in VB) if the entire extent of the terrain is desired.

resolution indicates which pyramid level should be used for extraction. A value of 0.0 will extract the full resolution data. Any other value should correspond to one of the values used to define the terrain's pyramid. If you don't provide an exact match the software will round down to the next closest level.

pTrackCancel is a reference to a Cancel Tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.

Notes

Product Availability

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

Specified by:
extractFromEmbeddedDataSource in interface ITerrain
Parameters:
index - The index (in)
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pAOI - 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.