com.esri.arcgis.geodatabase
Class Tin

java.lang.Object
  extended by com.esri.arcgis.geodatabase.Tin
All Implemented Interfaces:
IDataset, IGeoDataset, IMetadata, IMetadataEdit, INativeTypeInfo, ISurface, ITin, ITinAdvanced, ITinAdvanced2, ITinAdvanced3, ITinClock, ITinEdit, ITinEdit2, ITinEditErrorLog, ITinFeatureEdit, ITinNodeCollection, ITinNodeInfo, ITinSelection, ITinSurface, ITinSurface2, ITinSurface3, IFunctionalSurface, IFunctionalSurface3, com.esri.arcgis.interop.RemoteObjRef, ISupportErrorInfo, Serializable

public class Tin
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IDataset, IGeoDataset, IMetadata, IMetadataEdit, ITin, INativeTypeInfo, ISupportErrorInfo, ITinAdvanced, ITinAdvanced2, ITinAdvanced3, ITinNodeCollection, IFunctionalSurface, IFunctionalSurface3, ISurface, ITinSurface, ITinSurface2, ITinSurface3, ITinEdit, ITinEdit2, ITinSelection, ITinFeatureEdit, ITinClock, ITinNodeInfo, ITinEditErrorLog

The ESRI TIN component.

Description

The Tin coclass is used for surface modeling and other types of spatial analysis. TIN is an acronym for Triangulated Irregular Network. A TIN is comprised of adjacent, non-overlapping, triangles formed from input points and vertices. It is a complete planar graph that maintains topologic relationships between its constituent elements: nodes, edges, and triangles.

TINs are most commonly used as surface models. They provide a natural solution for handling vector based inputs, particularly 3-D geometry. Points, lines, and polygons can be used. Lines and polygon boundaries, that provide structure and definition to the surface, are enforced as triangle edges. Source vertices are maintained in the triangulation and honored precisely in any resulting analysis. These traits make TIN the solution of choice for photogrammetrically derived mass points and breaklines. It's also an appropriate model to use for irregularly spaced input points like soundings and LiDAR.

The creation, editing, and analysis of TIN objects requires a 3D Analyst license.

There are a number of properties and methods that can be used on the TIN and its components to:

When being used, TINs are held in memory. For processing efficiency they should not be so large as to exceed physical RAM. When dealing with large input datasets consider an iterative, tile based, approach.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
Tin()
          Constructs a Tin using ArcGIS Engine.
Tin(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
Tin theTin = (Tin) obj;
 
Method Summary
 void addFrom3dMultipointFeatureClass(IFeatureClass pFeatureClass, ISpatialFilter pClippingFilter)
          Adds features from a 3D multi-point feature class to the TIN.
 void addFromFeatureClass(IFeatureClass pFeatureClass, IQueryFilter pFilter, IField pHeightField, IField pTagValueField, int type, Object pbUseShapeZ)
          Adds features from a feature class to the TIN.
 void addFromFeatureCursor(IFeatureCursor pCursor, IField pHeightField, IField pTagValueField, int type, Object pbUseShapeZ)
          Adds features from a feature cursor to the TIN.
 void addFromPixelBlock(double xOrigin, double yOrigin, double xPixelSize, double yPixelSize, Object valueForNoData, Object block, double zTolerance, Object pMaxPoints, Object[] pbToleranceAchieved)
          Adds pixels from a pixel block to the TIN.
 void addISurfaceIntersectionEventsListener(ISurfaceIntersectionEvents theListener)
          addISurfaceIntersectionEventsListener.
 int addPointZ(IPoint pPoint, int tagValue)
          Adds a 3D point to the TIN.
 void addPointZ(IPoint pPoint, int tagValue, ITinNode pSeed)
          Adds a 3D point to the TIN.
 void addPolygon(IPolygon pShape, int type, int tagValue, int edgeTagValue, int nodeTagValue, ITinTriangle pSeed, Object pZ)
          Adds polygon.
 void addPolygonZ(IPolygon pShape, int type, int tagValue, int edgeTagValue, int nodeTagValue, ITinTriangle pSeed)
          Adds Z-aware polygon.
 void addPolyline(IPolyline pShape, int type, int tagValue, int nodeTagValue, ITinEdge pSeed, Object pZ)
          Adds polyline.
 void addPolylineZ(IPolyline pShape, int type, int tagValue, int nodeTagValue, ITinEdge pSeed)
          Adds Z-aware polyline.
 void addPolyObjects(IFeatureClass pFeatureClass, IQueryFilter pFilter, IField pHeightField, IField pValueField, boolean bSetEdgeTagValue, boolean bSetNodeTagValue, int type)
          Adds polygons/polylines.
 void addShape(IGeometry pShape, int type, int tagValue, Object pZ)
          Adds a 2D shape to the TIN.
 void addShapeZ(IGeometry pShape, int type, int tagValue, Object pbUseShapeZ)
          Adds a 3D shape to the TIN.
 int addWKSPointZ(_WKSPointZ pPoint, int vlue)
          Adds a well known structure point to the TIN.
 void asPolygons(IFeatureClass pFeatureClass, int type, IDoubleArray pClassBreaks, ILongArray pClassCodes, Object fieldName)
          Converts the surface to a polygon feature class representing slope or aspect.
 boolean canAdd(IGeometry pShape, double spacing)
          Checks if the specified shape can be added without creating spatial conflict.
 boolean canAddVertex(IGeometry pPoly, IPoint pNewPoint, boolean bClose, double spacing)
          Checks if a new polygon/polyline vertex can be added without creating spatial conflict.
 boolean canCopy()
          True if this dataset can be copied.
 boolean canDelete()
          True if this dataset can be deleted.
 boolean canDeleteVertex(ITinNode pNode, ITinFeatureSeed pSeed, double spacing)
          Checks if a polygon/polyline vertex can be deleted without creating spatial conflict.
 boolean canMove(ITinFeatureSeed pSeed, double dx, double dy, double spacing)
          Checks if the embedded object can be relocated to a new location without creating spatial conflict.
 boolean canMoveVertex(ITinNode pNode, ITinFeatureSeed pSeed, _WKSPoint pNewLocation, double spacing)
          Checks if a polygon/polyline vertex can be moved to a new location without creating spatial conflict.
 boolean canRename()
          True if this dataset can be renamed.
 boolean canReplace(IGeometry pShape, ITinFeatureSeed pSeed, double spacing)
          Checks if the embedded object can be replaced by the new shape without creating spatial conflict.
 boolean canRotate(ITinFeatureSeed pSeed, IPoint pOrigin, double angle, double spacing)
          Checks if the embedded polyline/polygon can be rotated without creating spatial conflict.
 boolean canScalePolygon(ITinTriangle pSeed, IPoint pOrigin, double scale, double spacing)
          Checks if the embedded polygon can be expanded or shrinked without creating spatial conflict.
 void clearEditErrorLog()
          Clears existing error log contents.
 void clearSelection(int type)
          Clears selected element(s).
 IEnumTinNode clusterPoints(ITinNode pSeed, double spacing, ITinFilter pFilter)
          Finds a cluster of nodes, each node in the group has at least one neighbor, to which the distance is smaller, or equal to, the specified value.
 void contour(double referenceContourHeight, double interval, IFeatureClass pFeatureClass, String fieldName, int digitsAfterDecimalPoint)
          Output contours based on the specified root value and interval.
 void contourList(IDoubleArray pBreaks, IFeatureClass pFeatureClass, String fieldName, int digitsAfterDecimalPoint)
          Output a list of contours corresponding to the specified eleveation values.
 void convertToMultiPatches(IFeatureClass pFeatureClass, int maxPatchSize, int maxStripSize)
          Convert TIN into Multipatches.
 void convertToPolygons(IFeatureClass pFeatureClass, ITinDynamicFilter pFilter, boolean bStopAtEnforcedEdge, boolean bSkipDensifiedNodes, Object pFieldName)
          Converts qualified triangles to a polygon feature class.
 void convertToPolygons(IFeatureClass pFeatureClass, ITinDynamicFilter pFilter, boolean bStopAtEnforcedEdge, Object pFieldName)
          Converts similar triangles to a polygon feature class.
 void convertToPolylines(IFeatureClass pFeatureClass, ITinDynamicFilter pFilter, boolean bSkipDensifiedNodes, Object pFieldName)
          Converts qualified edges to a polyline feature class.
 void convertToPolylines(IFeatureClass pFeatureClass, ITinDynamicFilter pFilter, Object pFieldName)
          Converts qualified edges to a polyline feature class.
 void convertToVoronoiRegions(IFeatureClass pFeatureClass, ITinFilter pFilter, IPolygon pClippingPolygon, String indexFieldName, String tagFieldName)
          Writes the set of Voronoi polygons for each node to a feature class.
 IDataset copy(String copyName, IWorkspace copyWorkspace)
          Copies this dataset to a new dataset with the specified name.
 void decimateNodes(IEnvelope pAreaOfInterest, double zTolerance, boolean bCopyBreakline, Object pMaxRemainingNodeCount, ITin[] ppNewTin, Object[] pbToleranceAchieved)
          Outputs a new TIN with reduced number of nodes.
 void decimateNodesByCount(IEnvelope pAreaOfInterest, int maxRemainingNodeCount, boolean bCopyBreakline, ITin[] ppNewTin)
          Outputs a new TIN with reduced number of nodes.
 void delete()
          Deletes this dataset.
 void delete(ITinFeatureSeed pSeed)
          Deletes the embedded point/polygon/polyline represented by the specified seed.
 void deleteEdgeTagValues()
          Deletes all edge tag values in the TIN.
 void deleteNode(int index)
          Deletes a specified node from the TIN.
 void deleteNodesOutsideDataArea()
          Deletes all nodes from outside the TIN interpolation zone.
 void deleteNodeTagValues()
          Deletes all node tag values in the TIN.
 void deleteSelectedNodes()
          Deletes specified nodes from the TIN.
 void deleteTriangleTagValues()
          Deletes all triangle face tag values in the TIN.
 void deleteVertex(ITinNode pNode, ITinFeatureSeed pSeed)
          Deletes the specified vertex from an embedded polygon/polyline.
 boolean equals(Object o)
          Compare this object with another
 ITin extract(IPolygon pBoundary, int boundaryEdgeType, int boundaryEdgeValue, boolean bConstrainedDelaunay, boolean bAllowEdgeSwapping)
          Extract part of the TIN.
 ITinPolygon extractPolygon(ITinElement pSeed, ITinFilter pFilter, boolean bStopAtEnforcedEdge)
          Returns a polygon definition based on all contiguous triangles having the same filter criteria.
 IPolygon extractPolygon(ITinFeatureSeed pSeed, boolean bGetZ, boolean bSkipDensifiedNodes)
          Extracts polygon.
 ITinPolyline extractPolyline(ITinEdge pSeed, ITinFilter pFilter)
          Returns a polyline definition based on triangle edges that meet the same filter criteria.
 IPolyline extractPolyline(ITinFeatureSeed pSeed, boolean bGetZ, boolean bSkipDensifiedNodes)
          Extracts polyline.
 ITinNodeArray findNaturalNeighbors(IPoint pPoint)
          Returns the immediate surrounding nodes to the query point.
 ITinTriangle findTriangle(IPoint pPoint)
          The triangle at the specified location.
 int findTriangleIndex(IPoint pPoint)
          The triangle at the specified location.
 ITinTriangleArray findTriangleNeighborhood(IPoint pPoint)
          Returns all triangles whose circumscribed circle contains the query point.
 void flipSelection(int type, boolean bDataElementsOnly)
          Flips current selection of the specified element type in the TIN.
 int generateUniqueTagValue(int type)
          Returns a new, previously unused tag value for the element.
 double getAspectDegrees(IPoint pPoint)
          Returns the aspect at the specified location in degrees.
 double getAspectRadians(IPoint pPoint)
          Returns the aspect at the specified location in radians.
 String getBrowseName()
          The browse name of the dataset.
 String getCategory()
          The category of the dataset.
static String getClsid()
          getClsid.
 void getContour(IPoint pPoint, IPolyline[] ppContour, double[] pElevation)
          Returns a countour passing through the queried point.
 void getCountedUniqueTagValues(int type, ILongArray[] ppValues, ILongArray[] ppCounts)
          Returns unique tag values with counts for the specified element type.
 String getCurrentObjectClassName()
          Name representing a group of shapes to be added/edited.
 int getCurrentObjectID()
          ID of the shape to be added/edited.
 IPolygon getDataArea()
          Returns a polygon representing the data area of the TIN.
 int getDataEdgeCount()
          The number of TIN edges that have a data triangle on one side or the other.
 int getDataNodeCount()
          The number of data nodes in the TIN.
 int getDataTriangleCount()
          The number of data triangles in the TIN.
 IPolygon getDomain()
          The interpolation domain of the surface.
 ITinEdge getEdge(int index)
          The edge referenced by the index.
 int getEdgeCount()
          The total number of edges in the TIN.
 int getEdgeTagValue(int index)
          The tag value of the edge referenced by the index.
 void getEdgeType(int edgeIndex, int[] pType)
          Gets the specified edge's type.
 int getEditErrorCount()
          The number of errors.
 double getElapsedTime()
          Return elapsed (since last Reset call) time in seconds.
 int getElementsIgnoredInConflictTest()
          The TIN nodes or edges to be ignored in conflict detection (used by processes such as CanAdd and CanMove).
 double getElevation(IPoint pPoint)
          Returns the z value of the specified location.
 IEnvelope getExtent()
          The extent of the GeoDataset.
 IFields getFields()
          The collection of attribute items of the TIN.
 int getFlag()
          The user-defined flag for the TIN.
 IEnvelope getFullExtent()
          The full 2D-extent of the TIN including NODATA nodes.
 IName getFullName()
          The associated name object.
 double getIntensity(_WKSPointZ pPi, _WKSPointZ pPj, _WKSPointZ pPk)
          Returns the hillshade brightness value of the plane defined by the three points.
 int getInterpolationMethod()
          The elevation interpolation method.
 int getLeftTriangleIndex(int edgeIndex)
          Gets left triangle index of the specified edge.
 void getLineOfSight(IPoint pObserver, IPoint pTarget, IPoint[] ppObstruction, IPolyline[] ppVisibleLines, IPolyline[] ppInvisibleLines, boolean[] pbIsVisible, boolean bApplyCurvature, boolean bApplyRefraction, Object pRefractionFactor)
          Computes the visibility of a line-of-sight from the observer to the target.
 IPropertySet getMetadata()
          The PropertySet containing metadata.
 String getName()
          The name of the Dataset.
 INativeType getNativeType()
          The native type.
 double getNaturalNeighborZ(double x, double y)
          Return the z-coordinate of the specified location using Natural Neighbor interpolation.
 int getNeighborEdgeIndex(int edgeIndex)
          Gets neighbor edge index.
 int getNextCCWEdgeIndex(int edgeIndex)
          Gets next counter clockwise edge index.
 int getNextCWEdgeIndex(int edgeIndex)
          Gets next clockwise edge index.
 int getNextEdgeIndexInTriangle(int edgeIndex)
          Gets next edge index in triangle.
 ITinNode getNode(int index)
          The node referenced by the specified index.
 int getNodeCount()
          The total number of nodes in the TIN.
 int getNodeDegree(int nodeIndex, boolean bEnforcedEdgesOnly)
          Returns the degree of the specified node.
 int getNodeEditInfo(int nodeIndex)
          Node info.
 int getNodeSource(int nodeIndex)
          Returns the source of the specified node.
 void getNodeSourceCounts(int[] pcOriginal, int[] pcSuper, int[] pcDensified, int[] pcIntersection, int[] pcUnknown)
          Returns the number of nodes with respect to different sources.
 int getNodeTagValue(int index)
          The tag value of the node referenced by the index.
 double getNodeZ(int index)
          The z value of the node referenced by the index.
 void getPartialVolumeAndArea(double referenceHeight, int type, IEnumTinTriangle pTriangles, Object[] pVolume, Object[] pSurfaceArea, Object[] pProjectedArea)
          Returns portion of the TIN's volume above or below an input z value.
 int getPreviousEdgeIndexInTriangle(int edgeIndex)
          Gets previous edge index in triangle.
 void getProfile(IGeometry pShape, IGeometry[] ppProfile, Object pStepSize)
          Returns a polyline with z values interpolated from the surface.
 double getProfileWeedTolerance()
          The profile weeding tolerance.
 double getProjectedArea(double referenceHeight, int type)
          Returns the projected area of the surface above or below an input z value.
 IPropertySet getPropertySet()
          The set of properties for the dataset.
 int getRasterInterpolationMethod()
          The elevation interpolation method for rasterization.
 int getRightTriangleIndex(int edgeIndex)
          Gets right triangle index of the specified edge.
 int getSelectedElementCount(int type)
          The number of selected elements.
 IEnumTinElement getSelection(int type)
          Returns an enumerator containing selected elements.
 double getSlopeDegrees(IPoint pPoint)
          Returns the slope at the specified location in degrees.
 double getSlopePercent(IPoint pPoint)
          Returns the slope at the specified location in percent.
 double getSlopeRadians(IPoint pPoint)
          Returns the slope at the specified location in radians.
 ISpatialReference getSpatialReference()
          The spatial reference of the GeoDataset.
 void getSpecialEdgeCounts(int[] pcHardDataEdges, int[] pcSoftDataEdges, int[] pcTagValueDataEdges)
          Returns the total number of special edges in the TIN.
 IPolyline getSteepestPath(IPoint pPoint)
          Returns the steepest path downhill from the specified point.
 IEnumDataset getSubsets()
          Datasets contained within this dataset.
 _WKSPointZ getSunPosition()
          The vector indicating the direction of the light source relative to the scene.
 IEnvelope getSuperNodeExtent()
          The full extent of the TIN based on the super nodes.
 ISurface getSurface()
          The ISurface interface (convenient tool for chaining in VB).
 double getSurfaceArea(double referenceHeight, int type)
          Returns the area measured on its surface above or below an input z value.
 ITinSurfaceElement getSurfaceElement(IPoint pPoint)
          Returns the surface element at the specified location.
 int getTinVersion()
          Returns the version number of the TIN dataset.
 ITrackCancel getTrackCancel()
          The process cancellation on TIN methods.
 ITinTriangle getTriangle(int index)
          The triangle referenced by the index.
 int getTriangleCount()
          The total number of triangles in the TIN.
 IEnumTinTriangle getTriangleSeeds(ITinDynamicFilter pFilter, boolean bStopAtEnforcedEdge)
          Returns one triangle representing each polygon defined by the filter criteria of the TIN.
 int getTriangleTagValue(int index)
          The tag value of the triangle referenced by the index.
 int getType()
          The type of the Dataset.
 int getUniqueTagValueCount(int type)
          The number of unique tag values for the specified element type.
 ILongArray getUniqueTagValues(int type)
          Returns unique tag values for the specified element type.
 int getVersion()
          Returns the version number of the TIN engine used to build the TIN.
 double getVolume(double reference, int type)
          Returns the volume above or below an input z value.
 void getVolumeAndArea(IGeometry pAOI, double referenceHeight, int type, boolean[] pbIsOutsideDataArea, Object[] pVolume, Object[] pSurfaceArea, Object[] pProjectedArea)
          Returns TIN's volume/area above or below an input z value.
 IPolygon getVoronoiRegion(int nodeIndex, IPolygon pClippingPolygon)
          Returns a Voronoi polygon about the node referenced by the index.
 IPolygon getVoronoiRegionNoClip(int nodeIndex)
          Returns a Voronoi polygon about the node referenced by the index.
 IWorkspace getWorkspace()
          The workspace containing this dataset.
 double getZ(double x, double y)
          The surface Z = f(x,y).
 double getZFactor()
          Multiplication factor applied to all z values in a TIN to provide unit-congruency between coordinate components.
 boolean hasEdgeType(int type)
          Returns TRUE if the TIN contains the specified edge type.
 int hashCode()
          the hashcode for this object
 boolean hasSelection(int type)
          Indicates if element(s) is/are selected.
 void init(String name)
          Opens the specified TIN.
 void initNew(IEnvelope pExtent)
          Initializes a new TIN using the passed extent to define the data area.
 void interfaceSupportsErrorInfo(GUID riid)
          interfaceSupportsErrorInfo
 void interpolateAsMultiPatch(IPolygon pShape, int maxStripSize, IMultiPatch[] ppMultiPatch)
          Interpolate the input Polygon and output as a Multipatch.
 void interpolateShape(IGeometry pShape, IGeometry[] ppOutShape, Object pStepSize)
          Interpolates z values for a defined geometric shape.
 void interpolateShapeVertices(IGeometry pShape, IGeometry[] ppOutShape)
          Interpolates z values for a defined geometric shape at its vertices only.
 double interpolateZ(double x, double y)
          Interpolate the z-coordinate of the specified location.
 void intersect(ITinSurface pReferenceSurface, IGeometry pAOI, IFeatureClass pOutFeatureClass, String volumeFieldName, String surfaceAreaFieldName, String codeFieldName)
          Intersect with a reference TIN.
 boolean isCanEditMetadata()
          Indicates if metadata can be edited.
 boolean isDelaunay()
          Indicates if TIN was constructed using Delaunay triangulation.
 boolean isDirty()
          Indicates if the TIN is dirty.
 boolean isEdgeInsideDataArea(int edgeIndex)
          Returns TRUE if the edge is inside data area.
 boolean isEditable()
          Indicates if the TIN can be edited.
 boolean isEmpty()
          Indicates if the TIN contains no data.
 boolean isHasEdgeTagValues()
          Indicates if the TIN dataset has edge tag values.
 boolean isHasNodeTagValues()
          Indicates if the TIN dataset has node tag values.
 boolean isHasTriangleTagValues()
          Indicates if the TIN dataset has triangle tag values.
 boolean isInEditMode()
          Indicates if the TIN is in edit mode.
 boolean isInMemoryEditMode()
          Indicates if the specified TIN is in in-memory-edit mode.
 boolean isNodeInsideDataArea(int nodeIndex)
          Returns TRUE if the node is inside data area.
 boolean isNodeOnDomainBoundary(int nodeIndex)
          Returns TRUE if the specified node is on domain's boundary.
 boolean isNodeShared(ITinNode pNode)
          Returns TRUE if specified node is shared by more than two enforced edges.
 boolean isProcessCancelled()
          Indicates if a process has been cancelled.
 boolean isSelected(int index, int type)
          Returns TRUE if the element referenced by the index is selected.
 boolean isStopAtEnforcedEdge()
          Indicates if a polygon related process (e.g., ExtractPolygon) should stop when reach an enforced edge.
 boolean isStopAtJuncture()
          Indicates if a polyline related process (e.g., ExtractPolyline) should stop at juncture.
 boolean isTriangleInsideDataArea(int triangleIndex)
          Returns TRUE if the triangle is inside data area.
 boolean isVoidZ(double value)
          Indicates if the passed value is equal to the TIN's void value.
 IPoint locate(IRay pRay, int hint)
          Returns the intersection of the query ray and the surface.
 IDoubleArray locateAll(IRay pRay, int hint)
          Returns the distances of intersections of the query ray and the surface.
 IMultipoint locateMultiple(IRay pRay)
          Returns the intersections of the query ray and the surface.
 IEnumTinEdge makeEdgeEnumerator(IEnvelope pAreaOfInterest, int criteria, ITinFilter pFilter)
          Makes an edge enumerator based on the extent of the envelope.
 IEnumTinNode makeNodeEnumerator(IEnvelope pAreaOfInterest, int criteria, ITinFilter pFilter)
          Makes a node enumerator based on the extent of the envelope.
 IEnumTinTriangle makeTriangleEnumerator(IEnvelope pAreaOfInterest, int criteria, ITinFilter pFilter)
          Makes a triangle enumerator based on the extent of the envelope.
 void merge(ITinEdge pCommonEdge, int newValue, boolean bKeepCommonNodes)
          Merges two embedded polygons sharing the specified common edge.
 void move(ITinFeatureSeed pSeed, double dx, double dy, boolean bGetNewZ)
          Moves the embedded point/polygon/polyline represented by the specified seed.
 void moveVertex(ITinNode pNode, ITinFeatureSeed pSeed, _WKSPoint pNewLocation, boolean bGetNewZ)
          Moves the specified vertex of an embedded polygon/polyline to a new location.
 void propagateTriangleTagValue(ITinTriangle pSeed, int newTagValue, boolean bStopAtEnforcedEdge)
          Propagates triangle tag value changes to all immediate triangles with the same initial value.
 void queryAdjacentVertices(ITinFeatureSeed pSeedEdge, ITinNode pBehind, ITinNode pFront)
          Queries the first two non-densified nodes of a line segment represented by the specified edge).
 void queryAllEdgeIndicesAroundNode(int nodeIndex, ILongArray pEdges)
          Returns all edges connected to the specified node.
 void queryBeginEndNodeIndices(int edgeIndex, int[] pBegin, int[] pEnd)
          Gets begin and end nodes of the specified edge.
 void queryEdge(int index, ITinEdge pEdge)
          The edge equal to that referenced by the index.
 void queryEdgeAsLine(int index, ILine pLine)
          The line equal to the edge referenced by the index.
 void queryEdgeAsWKSPointZs(int index, _WKSPointZ[] pFrom, _WKSPointZ[] pTo)
          The points equal to the end points of the edge referenced by the index.
 void queryEdgeIndicesAroundNode(int nodeIndex, ILongArray pEdges)
          Returns all edges having the specified node as begin node.
 void queryElementAsGeometry(int type, int index, IGeometry pGeometry)
          Output the specified TIN element as Geometry object.
 void queryElementIndicesAroundNode(int type, int localNodeIndex, int triangleIndex, ILongArray pIndices)
          Returns the indices of all elements connected to the specified node.
 void queryLocate(IRay pRay, int hint, IPoint pLocation)
          Returns the first intersection of the query ray and the TIN.
 void queryLocateWithinDistance(IRay pRay, double maxDistance, IGeometry pLocations)
          Returns the intersections of the query ray and the TIN.
 void queryNaturalNeighborIndices(IPoint pPoint, ILongArray pNodes)
          Returns all Natural Neighbors corresponding to the query point.
 void queryNearestEdge(IPoint pPoint, ITinEdge pEdge, double[] pDistance)
          Finds and returns the nearest edge to the query point.
 void queryNearestNode(IPoint pPoint, ITinNode pNode, double[] pDistance)
          Finds and returns the nearest node to the query point.
 void queryNeighborsAndWeights(double x, double y, ILongArray pNeighbors, IDoubleArray pWeights)
          Returns natural neighbors and their weights corresponding to the query point.
 void queryNode(int index, ITinNode pNode)
          Queries the node equal to that specified by the index.
 void queryNodeAsPoint(int index, IPoint pPoint)
          Queries the point equal to that specified by the index.
 void queryNodeAsWKSPointZ(int index, _WKSPointZ[] pPoint)
          Queries the point equal to that specified by the index.
 void queryNodeIndicesAroundNode(int nodeIndex, ILongArray pNodes)
          Returns all nodes connected to the specified node.
 void queryNormal(IPoint pLocation, IVector3D pNormal)
          Returns the vector normal to the specified triangle.
 void queryPixelBlock(double xOrigin, double yOrigin, double xPixelSize, double yPixelSize, int type, Object valueForNoData, Object block)
          Derives slope, aspect, hillshade, or elevation from the input surface and writes the result to the provided PixelBlock.
 void querySelectionExtent(int type, IEnvelope pExtent)
          Returns the extent of the selected elements.
 void querySurfaceLength(IGeometry pShape, double[] pLength, Object pStepSize)
          Returns the length of an input polyline measured on the surface.
 void queryTriangle(int index, ITinTriangle pTriangle)
          The triangle equal to that referenced by the index.
 void queryTriangleAsRing(int index, IRing pRing)
          The ring equal to the triangle referenced by the index.
 void queryTriangleAsWKSPointZs(int index, _WKSPointZ[] pPi, _WKSPointZ[] pPj, _WKSPointZ[] pPk)
          Queries the points equal to the nodes of the triangle referenced by the index.
 void queryTriangleEdgeIndices(int triangleIndex, int[] pA, int[] pB, int[] pC)
          Gets the three edges of the specified triangle (clockwise).
 void queryTriangleIndicesAroundNode(int nodeIndex, ILongArray pTriangles)
          Returns all triangles sharing the specified node.
 void queryTriangleNeighborhoodIndices(IPoint pPoint, ILongArray pTriangles)
          Returns all triangles whose circumscribed circle contains the query point.
 void queryTriangleNodeIndices(int triangleIndex, int[] pA, int[] pB, int[] pC)
          Gets the three nodes of the specified triangle (clockwise).
 void queryTriangleNormal(int triangle, IVector3D pNormal)
          Returns the vector normal to the specified triangle.
 void refresh()
          Updates TIN's extents, data area, and data elements count.
 void refreshTagValues()
          Refresh cached TIN tag values.
 void removeIslands(ITinTriangle pSeed, double area, boolean bKeepNodes, boolean bZeroTag)
          Removes islands whose area is smaller than the specified value, from the embedded polygon represented by the specified seed.
 void removeISurfaceIntersectionEventsListener(ISurfaceIntersectionEvents theListener)
          removeISurfaceIntersectionEventsListener.
 void rename(String name)
          Renames this Dataset.
 void reset()
          Reset clock.
 void resetExtent(IEnvelope pExtent)
          Reset TIN's extent.
 void rotate(ITinFeatureSeed pSeed, IPoint pOrigin, double angle, boolean bGetNewZ)
          Rotates the embedded polygon/polyline represented by the specified seed.
 void save()
          Saves edits to disk.
 void saveAs(String newName, Object pOverWrite)
          Saves the TIN to disk using the specified name.
 void saveAsVersion(String newName, int ver, Object pOverWrite)
          Saves the TIN to disk using the specified (full path) name.
 void saveEditErrorLog(String fileName)
          Saves error log contents to a file.
 void saveSnapshot(String name, boolean bOverWrite)
          Saves a snapshot of the TIN that is been edited to disk.
 void scalePolygon(ITinTriangle pSeed, IPoint pOrigin, double scale, boolean bGetNewZ)
          Expands or shrinks the embedded polygon represented by the specified seed.
 void selectAll(int type, boolean bDataElementsOnly)
          Selects all elements of the specified element type in the TIN.
 void selectByArea(int type, IPolygon pArea, boolean bPassThrough, boolean bDataElementsOnly, int action)
          Selects all elements of the specified element type in a specified polygonal area.
 void selectByEnvelope(int type, IEnvelope pEnvelope, boolean bPassThrough, boolean bDataElementsOnly, int action)
          Selects all elements of the specified element type in a specified rectangular envelope.
 void setBrowseName(String name)
          The browse name of the dataset.
 void setCurrentObjectClassName(String pName)
          Name representing a group of shapes to be added/edited.
 void setCurrentObjectID(int pID)
          ID of the shape to be added/edited.
 void setEdgeTagValue(int index, int value)
          Sets the tag value of the triangle edge referenced by the index.
 void setEdgeType(int index, int type)
          Sets the type of the triangle edge referenced by the TIN.
 void setElementsIgnoredInConflictTest(int pElementsExcluded)
          The TIN nodes or edges to be ignored in conflict detection (used by processes such as CanAdd and CanMove).
 void setEmpty()
          Uninitializes the TIN.
 void setFlag(int pFlag)
          The user-defined flag for the TIN.
 void setInterpolationMethod(int pType)
          The elevation interpolation method.
 void setMetadata(IPropertySet ppPropertySet)
          The PropertySet containing metadata.
 void setNodeTagValue(int index, int value)
          Sets the tag value of a TIN node referenced by the index.
 void setNodeZ(int index, double z)
          Sets the z value of a TIN node referenced by the index.
 void setProcessCancelled(boolean pbCancelled)
          Indicates if a process has been cancelled.
 void setProfileWeedTolerance(double pTolerance)
          The profile weeding tolerance.
 void setRasterInterpolationMethod(int pType)
          The elevation interpolation method for rasterization.
 void setSelected(int index, int type, int action)
          Selects the element referenced by the index.
 void setSelection(IEnumTinElement pElements, int action)
          Selects elements returned by the enumerator.
 void setSpatialReference(ISpatialReference pSpatialReference)
          Set a copy of the specified spatial reference to the TIN.
 void setStopAtEnforcedEdge(boolean pbStop)
          Indicates if a polygon related process (e.g., ExtractPolygon) should stop when reach an enforced edge.
 void setStopAtJuncture(boolean pbStop)
          Indicates if a polyline related process (e.g., ExtractPolyline) should stop at juncture.
 void setSunPosition(_WKSPointZ pPosition)
          The vector indicating the direction of the light source relative to the scene.
 void setToConstrainedDelaunay()
          Apply constrained Delaunay from now on.
 void setTrackCancelByRef(ITrackCancel ppTrackCancle)
          The process cancellation on TIN methods.
 void setTriangleInsideDataArea(int index)
          Sets a triangle within the TIN interpolation zone.
 void setTriangleOutsideDataArea(int index)
          Sets a triangle outside of the TIN interpolation zone.
 void setTrianglesInsideDataArea()
          Sets all triangles within the TIN interpolation zone.
 void setTriangleTagValue(int index, int value)
          Sets the face tag value of the triangle referenced by the index.
 void setZFactor(double pFactor)
          Multiplication factor applied to all z values in a TIN to provide unit-congruency between coordinate components.
 void sleep(double seconds)
          Suspends the execution of the current thread for the specified interval (in seconds).
 boolean startEditing()
          Initiates edit mode.
 boolean startInMemoryEditing()
          Initiates memory edit mode.
 boolean stopEditing(boolean bSaveEdits)
          Terminates edit mode, optionally saving changes to disk.
 int swapEdge(int index, int type, int tag)
          Swap the specified edge and set the TIN as constrained Delaunay triangulation.
 void synchronize(int action, int interval)
          Updates metadata with the current properties; may create metadata if it doesn't already exist.
 
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

Tin

public Tin()
    throws IOException,
           UnknownHostException
Constructs a Tin using ArcGIS Engine.

Throws:
IOException - if there are interop problems
UnknownHostException - if there are interop problems

Tin

public Tin(Object obj)
    throws IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
Tin theTin = (Tin) obj;

Construct a Tin using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to Tin.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


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

addISurfaceIntersectionEventsListener

public void addISurfaceIntersectionEventsListener(ISurfaceIntersectionEvents theListener)
                                           throws IOException
addISurfaceIntersectionEventsListener. Listen to events generated by this class.

Parameters:
theListener - An object that implements the com.esri.arcgis.geodatabase.ISurfaceIntersectionEvents interface.
Throws:
IOException - If there are communications problems.

removeISurfaceIntersectionEventsListener

public void removeISurfaceIntersectionEventsListener(ISurfaceIntersectionEvents theListener)
                                              throws IOException
removeISurfaceIntersectionEventsListener. Stop listening to events generated by this class.

Parameters:
theListener - An object that implements the com.esri.arcgis.geodatabase.ISurfaceIntersectionEvents interface.
Throws:
IOException - If there are communications problems.

getName

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getFullName

public IName getFullName()
                  throws IOException,
                         AutomationException
The associated name object.

Remarks

The FullName property returns a Name object for the dataset. The Name object can be persisted and provides a way to get back to the dataset in a future session of the application, via the Open method on the Name object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFullName in interface IDataset
Returns:
A reference to a com.esri.arcgis.system.IName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getBrowseName

public String getBrowseName()
                     throws IOException,
                            AutomationException
The browse name of the dataset.

Remarks

BrowseName returns file names without their extension. For example, States.shp would appear as States.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getBrowseName in interface IDataset
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setBrowseName

public void setBrowseName(String name)
                   throws IOException,
                          AutomationException
The browse name of the dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getType

public int getType()
            throws IOException,
                   AutomationException
The type of the Dataset.

Remarks

The Type property returns the an esriDatasetType value indicating the dataset type, such as esriDTTable or esriDTFeatureClass.

Example:


// Assume we have a reference to an IfeatureClass (pFeatureClass) IDataset pDataset = null;
pDataset = new IDatasetProxy(pFeatureClass);
System.out.println(pDataset.getName() + " " + pDataset.getType());
if(pFeatureClass != null){
pDataset = pFeatureClass.getFeatureDataset();
System.out.println(pDataset.getName() + " " + pDataset.getType());
}
pDataset = new IDatasetProxy(pDataset.getWorkspace());
System.out.println(pDataset.getName() + " " +
pDataset.getType());

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getType in interface IDataset
Returns:
A com.esri.arcgis.geodatabase.esriDatasetType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCategory

public String getCategory()
                   throws IOException,
                          AutomationException
The category of the dataset.

Remarks

IDataset::Category returns a description of the category of the dataset. The description returned from the Category property is the same value that is displayed in the Type column within the Contents tab in ArcCatalog. The value will contain a description of the dataset such as "Topology" prefixed with a description of the type of workspace containing the dataset such as "File Geodatabase".

The description returned from IDataset::Category may change between releases of ArcGIS. In addition to this, returned strings are localized, meaning that code relying on a specific string being provided may fail when deployed with a different version of ArcGIS than it was developed with, or when deployed to a client using a different language than it was developed with.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCategory in interface IDataset
Returns:
The category
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSubsets

public IEnumDataset getSubsets()
                        throws IOException,
                               AutomationException
Datasets contained within this dataset.

Description

The Subsets property returns other Dataset objects contained in this dataset.

Remarks

IDataset::Subsets is not supported for Graph objects such as a Geometric Network. To return the feature classes contained in a Geometric Network, use the IFeatureClassContainer interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getWorkspace

public IWorkspace getWorkspace()
                        throws IOException,
                               AutomationException
The workspace containing this dataset.

Description

The Workspace property returns the containing workspace for this dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getPropertySet

public IPropertySet getPropertySet()
                            throws IOException,
                                   AutomationException
The set of properties for the dataset.

Description

The PropertySet property is used to return any additional intrinsic properties (but not metadata properties) that may apply to the dataset. One use of this property is to distinguish between the types of File Geodatabase datafile formats. If called on a Feature Class or Table in a File Geodatabase the Datafile Format property can either be esriFGDBStandardDatafile or esriFGDBCompressedDatafile.

Most datasets do not implement this property and will either raise an error or return a null value if it's called. There are a handful of exceptions that will return property sets; these include the datasets from file geodatabases (as mentioned above) and coverages.

Remarks

Examples of intrinsic properties for which explicit methods exist include the SpatialReference and the Extent methods available on the IGeoDataset interface. In most cases this PropertySet will be empty.

IDataset::PropertySet is not supported for Graph objects such as a Geometric Network.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getPropertySet in interface IDataset
Returns:
A reference to a com.esri.arcgis.system.IPropertySet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canCopy

public boolean canCopy()
                throws IOException,
                       AutomationException
True if this dataset can be copied.

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

The CanCopy method is supported by:

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

copy

public IDataset copy(String copyName,
                     IWorkspace copyWorkspace)
              throws IOException,
                     AutomationException
Copies this dataset to a new dataset with the specified name.

Remarks

IDataset::Copy should only be used with datasets from file-based data sources, such as shapefiles and coverages.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
copy in interface IDataset
Parameters:
copyName - The copyName (in)
copyWorkspace - A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canDelete

public boolean canDelete()
                  throws IOException,
                         AutomationException
True if this dataset can be deleted.

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

delete

public void delete()
            throws IOException,
                   AutomationException
Deletes this dataset.

Remarks

Certain feature classes, such as network and topology feature classes, cannot be deleted until their containing objects are deleted.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
delete in interface IDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canRename

public boolean canRename()
                  throws IOException,
                         AutomationException
True if this dataset can be renamed.

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete or rename a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

rename

public void rename(String name)
            throws IOException,
                   AutomationException
Renames this Dataset.

Remarks

IDataset::Rename does not support the renaming of Graph objects such as a Geometric Network. In addition, certain feature classes, such as network feature classes, cannot be renamed.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
rename in interface IDataset
Parameters:
name - The name (in)
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 GeoDataset.

Remarks

This property is read only. For layers, when the first layer is added to ArcMap, its spatial reference is read by this property, and the map is set to this spatial reference.

Instances of the esriCarto.GroupLayer class will return null for this property, as a group layer can contain multiple datasets with different spatial references.

Modifications to a spatial reference returned by this property will not be persisted. To modify the spatial reference of a dataset, the IGeoDatasetSchemaEdit and IGeoDatasetSchemaEdit2 interfaces should be used.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSpatialReference in interface IGeoDataset
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 extent of the GeoDataset.

Remarks

The IGeoDataset::Extent property returns an envelope representing the maximum extent of data which has been stored in the dataset.

Consider the following scenario. A new feature class has features added to it. The IGeoDataset::Extent is then requested and an envelope is returned. The extents of the envelope returned are represented by the red box in the image below.

The red box represents the IGeoDataset extent

If a portion of the features were then deleted and the extent is again requested an envelope with the exact same extents as during the first request would be returned (see image below). This is because the deletion of features does not shrink the extent. However all additions of features outside the red box would increase the envelope returned to encompass the newly added features.

The red box represents the IGeoDataset extent after some of the features have been deleted

If you would like to update the IGeoDataset::Extent property to reflect the current features in your dataset please see IFeatureClassManage::UpdateExtent (also see IFeatureClassLoad). In the image below the extent has been updated and a new envelope is being returned.

The red box represents the IGeoDataset extent after it has been updated

ESRI's GroupLayer implements this property differently from most other layer coclasses. When you instantiate a new GroupLayer, this property will return a valid envelope with zero height and width. With most other newly instantiated layers (for example FeatureLayer, RasterLayer, TinLayer), this property initally returns Nothing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getExtent in interface IGeoDataset
Specified by:
getExtent in interface ITin
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.

getMetadata

public IPropertySet getMetadata()
                         throws IOException,
                                AutomationException
The PropertySet containing metadata.

Remarks

The variable to hold the data must be of IPropertySet data type.

The metadata property is frequently used to save, or update, changes to metadata documents that have taken place through methods available on the IPropertySet, IXmlPropertySet, and/or IXmlPropertySet2 interfaces.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getMetadata in interface IMetadata
Returns:
A reference to a com.esri.arcgis.system.IPropertySet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMetadata

public void setMetadata(IPropertySet ppPropertySet)
                 throws IOException,
                        AutomationException
The PropertySet containing metadata.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setMetadata in interface IMetadata
Parameters:
ppPropertySet - A reference to a com.esri.arcgis.system.IPropertySet (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

synchronize

public void synchronize(int action,
                        int interval)
                 throws IOException,
                        AutomationException
Updates metadata with the current properties; may create metadata if it doesn't already exist.

Description

The Synchronize method is used to extract metadata properties from an object and write those properties to the metadata .xml. Depending on the value of the esriMetaSyncAction, the Synchronize method may generate a new set of metadata if it doesn't already exist.

Remarks

The following actions will result in synchronization given each of the listed conditions:

Action Metadata status Esri/Sync element Interval parameter
esriMSAAccessed Doesn't matter Must not be FALSE Must be less than actual interval
esriMSAAlways Doesn't matter Doesn't matter Doesn't matter
esriMSACreated Must not exist Must not be FALSE Must be less than actual interval
esriMSANotCreated Must exist Must not be FALSE Must be less than actual interval
esriMSAOverwrite Doesn't matter Doesn't matter Doesn't matter

The difference between esriMSAAlways and esriMSAOverwrite lies in which elements are synchronized. esriMSAAlways will honor the removal or value change of an element's Sync attribute (to disable synchronization), whereas using esriMSAOverwrite is equivalent to setting the IXmlPropertySet2.OverwriteSyncAttribute to true for the metadata's property set, meaning that even elements without a Sync attribute of TRUE will be synchronized.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
synchronize in interface IMetadata
Parameters:
action - A com.esri.arcgis.geodatabase.esriMetadataSyncAction constant (in)
interval - The interval (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCanEditMetadata

public boolean isCanEditMetadata()
                          throws IOException,
                                 AutomationException
Indicates if metadata can be edited.

Remarks

This property is available to those objects that support metadata.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isCanEditMetadata in interface IMetadataEdit
Returns:
The pCanEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEmpty

public boolean isEmpty()
                throws IOException,
                       AutomationException
Indicates if the TIN contains no data.

Remarks

IsEmpty is TRUE if the TIN contains no user data. In this state the TIN only has the four dummy nodes and two NODATA triangles added automatically by the software at the time the TIN was created.

IsEmpty is FALSE if any user data has been added to the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isEmpty in interface ITin
Returns:
The pbIsEmpty
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDelaunay

public boolean isDelaunay()
                   throws IOException,
                          AutomationException
Indicates if TIN was constructed using Delaunay triangulation.

Remarks

IsDelaunay is TRUE if the circumscribing circles for all triangles in the TIN do not contain any of the nodes used to construct the TIN. Nodes may fall on the circumcircle perimeters but not inside.

IsDelaunay is FALSE if the above condition is not met.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isDelaunay in interface ITin
Returns:
The pbIsEmpty
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

saveAs

public void saveAs(String newName,
                   Object pOverWrite)
            throws IOException,
                   AutomationException
Saves the TIN to disk using the specified name.

Description

SaveAs saves the TIN to disk using the specified name. The interface pointer will reference the saved TIN after the call is made.

Remarks

Use SaveAs for copying a TIN and for saving any edits made to a TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
saveAs in interface ITin
Specified by:
saveAs in interface ITinEdit
Parameters:
newName - The newName (in)
pOverWrite - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDataNodeCount

public int getDataNodeCount()
                     throws IOException,
                            AutomationException
The number of data nodes in the TIN.

Remarks

The DataNodeCount is the number of nodes in the TIN that are associated with data triangles. Nodes that are surrounded only by masked triangles are excluded from this count.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDataNodeCount in interface ITin
Returns:
The pcNodes
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDataEdgeCount

public int getDataEdgeCount()
                     throws IOException,
                            AutomationException
The number of TIN edges that have a data triangle on one side or the other.

Remarks

The DataEdgeCount is the number of edges in the TIN associated with data triangles. Edges that have masked triangles on either side are excluded from this count.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDataEdgeCount in interface ITin
Returns:
The pcEdges
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDataTriangleCount

public int getDataTriangleCount()
                         throws IOException,
                                AutomationException
The number of data triangles in the TIN.

Remarks

The DataTriangleCount is the number of data triangles in the TIN. Masked triangles are excluded from this count.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDataTriangleCount in interface ITin
Returns:
The pcTriangles
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZFactor

public double getZFactor()
                  throws IOException,
                         AutomationException
Multiplication factor applied to all z values in a TIN to provide unit-congruency between coordinate components.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getZFactor in interface ISurface
Specified by:
getZFactor in interface ITin
Returns:
The pFactor
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZFactor

public void setZFactor(double pFactor)
                throws IOException,
                       AutomationException
Multiplication factor applied to all z values in a TIN to provide unit-congruency between coordinate components.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setZFactor in interface ISurface
Specified by:
setZFactor in interface ITin
Parameters:
pFactor - The pFactor (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getVersion

public int getVersion()
               throws IOException,
                      AutomationException
Returns the version number of the TIN engine used to build the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getVersion in interface ITin
Returns:
The pVer
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isHasNodeTagValues

public boolean isHasNodeTagValues()
                           throws IOException,
                                  AutomationException
Indicates if the TIN dataset has node tag values.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isHasNodeTagValues in interface ITin
Specified by:
isHasNodeTagValues in interface ITinNodeCollection
Returns:
The pbHasNodeValues
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isHasEdgeTagValues

public boolean isHasEdgeTagValues()
                           throws IOException,
                                  AutomationException
Indicates if the TIN dataset has edge tag values.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isHasEdgeTagValues in interface ITin
Returns:
The pbHasEdgeValues
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isHasTriangleTagValues

public boolean isHasTriangleTagValues()
                               throws IOException,
                                      AutomationException
Indicates if the TIN dataset has triangle tag values.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isHasTriangleTagValues in interface ITin
Returns:
The pbHasTriangleValues
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFields

public IFields getFields()
                  throws IOException,
                         AutomationException
The collection of attribute items of the TIN.

Description

Returns fields used to represent intrinsic attributes of the TIN.

While a TIN doesn't have attributes stored in a database table it does have intrinsic properties that can be treated like attributes. In this manner, TINs can 'pretend' to be like other data types that have attributes. An identify operation is an example where this behavior is useful. An identify tool asks the dataset what attributes (fields) it has and what the values are for a selected feature. For TINs it's based on selected location.

Fields are Elevation, Slope, Aspect, Node Tag Value, and Face Tag Value.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getNativeType

public INativeType getNativeType()
                          throws IOException,
                                 AutomationException
The native type.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

interfaceSupportsErrorInfo

public void interfaceSupportsErrorInfo(GUID riid)
                                throws IOException,
                                       AutomationException
interfaceSupportsErrorInfo

Description

Indicates whether the interface supports IErrorInfo.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
interfaceSupportsErrorInfo in interface ISupportErrorInfo
Parameters:
riid - A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTrackCancel

public ITrackCancel getTrackCancel()
                            throws IOException,
                                   AutomationException
The process cancellation on TIN methods.

Description

Having cancel tracking enabled lets you halt processes through use of the escape key. The following TIN processes support this:

ITinAdvanced.ConvertToPolygons
ISurface.AsPolygons
ISurface.Contour
ISurface.ContourList
ISurface.GetProjectedArea
ISurface.GetSurfaceArea
ISurface.GetVolume
ISurface.QueryPixelBlock
ITinEdit.AddFromFeatureClass
ITinEdit.AddFromFeatureCursor
ITinEdit.AddFromPixelBlock
ITinNodeCollection.ConvertToVoronoiRegions

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getTrackCancel in interface ITinAdvanced
Returns:
A reference to a com.esri.arcgis.system.ITrackCancel
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTrackCancelByRef

public void setTrackCancelByRef(ITrackCancel ppTrackCancle)
                         throws IOException,
                                AutomationException
The process cancellation on TIN methods.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setTrackCancelByRef in interface ITinAdvanced
Parameters:
ppTrackCancle - 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.

isProcessCancelled

public boolean isProcessCancelled()
                           throws IOException,
                                  AutomationException
Indicates if a process has been cancelled.

Description

If the TIN has its TrackCancel property set, and one of the following functions is cancelled (e.g. by user pressing Esc), this property will return TRUE.

ITinAdvanced.ConvertToPolygons
ISurface.AsPolygons
ISurface.Contour
ISurface.ContourList
ISurface.GetProjectedArea
ISurface.GetSurfaceArea
ISurface.GetVolume
ISurface.QueryPixelBlock
ITinEdit.AddFromFeatureClass
ITinEdit.AddFromFeatureCursor
ITinEdit.AddFromPixelBlock
ITinNodeCollection.ConvertToVoronoiRegions

Custom functions that pay attention to TrackCancel can write to the ProcessCancelled property to indicate whether or not the function was cancelled. This is something that should be considered when developing custom functions that can run on for some time and where a user might be inclined to cancel the operation.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isProcessCancelled in interface ITinAdvanced
Returns:
The pbCancelled
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setProcessCancelled

public void setProcessCancelled(boolean pbCancelled)
                         throws IOException,
                                AutomationException
Indicates if a process has been cancelled.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSurface

public ISurface getSurface()
                    throws IOException,
                           AutomationException
The ISurface interface (convenient tool for chaining in VB).

Description

This returns the ISurface interface. You can always get the ISurface interface from the Tin object, but this method enables you to avoid having to declare and set an ISurface interface pointer.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setEmpty

public void setEmpty()
              throws IOException,
                     AutomationException
Uninitializes the TIN.

Description

Brings the Tin object to the state that exists immediately after it is CoCreated (i.e. with 'New'). It references no dataset on disk, has no triangles, etc.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setEmpty in interface ITinAdvanced
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

init

public void init(String name)
          throws IOException,
                 AutomationException
Opens the specified TIN.

Description

Initializes the object by pointing to a TIN on disk at the specified location.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setFlag

public void setFlag(int pFlag)
             throws IOException,
                    AutomationException
The user-defined flag for the TIN.

Description

An integer (long) value that can be assigned to the TIN. Its meaning/purpose is user defined.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getFlag

public int getFlag()
            throws IOException,
                   AutomationException
The user-defined flag for the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFlag in interface ITinAdvanced
Returns:
The pFlag
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFullExtent

public IEnvelope getFullExtent()
                        throws IOException,
                               AutomationException
The full 2D-extent of the TIN including NODATA nodes.

Description

Returns the miminum bounding rectangle (2D) that surrounds all user supplied data in the TIN, including data outside the interpolation zone.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFullExtent in interface ITinAdvanced
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.

getSuperNodeExtent

public IEnvelope getSuperNodeExtent()
                             throws IOException,
                                    AutomationException
The full extent of the TIN based on the super nodes.

Description

When a TIN is initially constructed (with ITinEdit.InitNew) it contains four software generated points that reside far outside the declared data extent. These are connected into two triangles and this initial triangulation is what the user adds data to. The four software generated points are referred to as SuperNodes. The SuperNodeExtent is the minimum bounding rectangle that surrounds these points.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSuperNodeExtent in interface ITinAdvanced
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.

isVoidZ

public boolean isVoidZ(double value)
                throws IOException,
                       AutomationException
Indicates if the passed value is equal to the TIN's void value.

Description

Returns TRUE or FALSE depending on whether the specified Z is considered NODATA. Mathmatical operations cannot be performed on NODATA.

Some functions, such as ISurface.GetElevation, return a floating point number representing some characteristic of the surface for a given location. If the location does not fall within the interpolation zone some value representing NODATA must be returned. IsVoidZ can be used to evaluate if the result is NODATA.

The super nodes of a TIN have a Z value equal to NODATA. A super node is one of four nodes added by the software when a TIN is initially created (ITinEdit.InitNew). They reside far outside the declared data extent and are used to define an initial triangulation before user data gets added. Triangles incident to these nodes are always flagged as being outside the TIN's interpolation zone.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isVoidZ in interface ISurface
Specified by:
isVoidZ in interface ITinAdvanced
Parameters:
value - The value (in)
Returns:
The pbIsVoid
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

makeNodeEnumerator

public IEnumTinNode makeNodeEnumerator(IEnvelope pAreaOfInterest,
                                       int criteria,
                                       ITinFilter pFilter)
                                throws IOException,
                                       AutomationException
Makes a node enumerator based on the extent of the envelope.

Description

Returns a node enumerator that honors the constraints defined by the input arguments.

The pAreaOfInterest argument is an envelope that defines the area for which elements will be returned. Only nodes that fall inside the envelope qualify. The argument can be set to a Null pointer ('Nothing' in VB) in which case the TIN's data extent will be used.

The Criteria argument takes an esriTinQualification enumeration. The possible values for nodes are esriTinAll, esriTinInsideTin, esriTinInsideDataArea.

The pFilter argument is an additional constraint that can be applied. Any valid TinFilter can be used. Pass a Null pointer ('Nothing' in VB) if you don't want to apply a filter.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
makeNodeEnumerator in interface ITinAdvanced
Parameters:
pAreaOfInterest - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
criteria - The criteria (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinFilter (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumTinNode
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

makeEdgeEnumerator

public IEnumTinEdge makeEdgeEnumerator(IEnvelope pAreaOfInterest,
                                       int criteria,
                                       ITinFilter pFilter)
                                throws IOException,
                                       AutomationException
Makes an edge enumerator based on the extent of the envelope.

Description

Returns an edge enumerator that honors the constraints defined by the input arguments.

The pAreaOfInterest argument is an envelope that defines the area for which elements will be returned. Only edges that fall inside the envelope qualify. The argument can be set to a Null pointer ('Nothing' in VB) in which case the TIN's data extent will be used.

The Criteria argument takes an esriTinQualification enumeration. The possible values for edges are esriTinAll, esriTinInsideTin, esriTinInsideDataArea, esriTinSingleEdge and esriTinDoubleEdges. The arguments are additive so you can set two things at once. For example 'esriTinInsideDataArea + esriTinDoubleEdges'. The esriTinSingleEdge and esriTinDoubleEdges enumerations define whether a maximum of one edge between two adjacent triangles is returned or two (one edge for each triangle). If unspecified, esriTinSingleEdge is used.

The pFilter argument is an additional constraint that can be applied. Any valid TinFilter can be used. Pass a Null pointer ('Nothing' in VB) if you don't want to apply a filter.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
makeEdgeEnumerator in interface ITinAdvanced
Parameters:
pAreaOfInterest - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
criteria - The criteria (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinFilter (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumTinEdge
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

makeTriangleEnumerator

public IEnumTinTriangle makeTriangleEnumerator(IEnvelope pAreaOfInterest,
                                               int criteria,
                                               ITinFilter pFilter)
                                        throws IOException,
                                               AutomationException
Makes a triangle enumerator based on the extent of the envelope.

Description

Returns a triangle enumerator that honors the constraints defined by the input arguments.

The pAreaOfInterest argument is an envelope that defines the area for which elements will be returned. Only triangles that fall inside the envelope qualify. The argument can be set to a Null pointer ('Nothing' in VB) in which case the TIN's data extent will be used.

The Criteria argument takes an esriTinQualification enumeration. The possible values for triangles are esriTinAll, esriTinInsideTin, esriTinInsideDataArea.

The pFilter argument is an additional constraint that can be applied. Any valid TinFilter can be used. Pass a Null pointer ('Nothing' in VB) if you don't want to apply a filter.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
makeTriangleEnumerator in interface ITinAdvanced
Parameters:
pAreaOfInterest - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
criteria - The criteria (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinFilter (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumTinTriangle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNodeCount

public int getNodeCount()
                 throws IOException,
                        AutomationException
The total number of nodes in the TIN.

Description

The total number of nodes in the TIN includes those both inside and outside the interpolation zone.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNodeCount in interface ITinAdvanced
Specified by:
getNodeCount in interface ITinNodeCollection
Returns:
The pcNodes
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNode

public ITinNode getNode(int index)
                 throws IOException,
                        AutomationException
The node referenced by the specified index.

Description

Returns the node referenced by the index. The index base value for nodes is 1.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNode in interface ITinAdvanced
Specified by:
getNode in interface ITinNodeCollection
Parameters:
index - The index (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITinNode
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryNode

public void queryNode(int index,
                      ITinNode pNode)
               throws IOException,
                      AutomationException
Queries the node equal to that specified by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNode in interface ITinAdvanced
Specified by:
queryNode in interface ITinNodeCollection
Parameters:
index - The index (in)
pNode - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryNodeAsPoint

public void queryNodeAsPoint(int index,
                             IPoint pPoint)
                      throws IOException,
                             AutomationException
Queries the point equal to that specified by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNodeAsPoint in interface ITinAdvanced
Specified by:
queryNodeAsPoint in interface ITinNodeCollection
Parameters:
index - The index (in)
pPoint - 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.

queryNodeAsWKSPointZ

public void queryNodeAsWKSPointZ(int index,
                                 _WKSPointZ[] pPoint)
                          throws IOException,
                                 AutomationException
Queries the point equal to that specified by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNodeAsWKSPointZ in interface ITinAdvanced
Specified by:
queryNodeAsWKSPointZ in interface ITinNodeCollection
Parameters:
index - The index (in)
pPoint - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNodeZ

public double getNodeZ(int index)
                throws IOException,
                       AutomationException
The z value of the node referenced by the index.

Description

Returns the Z value of the node referenced by the index. The base index for nodes is 1.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNodeZ in interface ITinAdvanced
Specified by:
getNodeZ in interface ITinNodeCollection
Parameters:
index - The index (in)
Returns:
The pZ
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNodeTagValue

public int getNodeTagValue(int index)
                    throws IOException,
                           AutomationException
The tag value of the node referenced by the index.

Description

Returns the tag value of the node referenced by the index. The base index for nodes is 1.

The returned value will be 0 if the TIN has never been assigned any node tag values or the node itself has not been assigned a value.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNodeTagValue in interface ITinAdvanced
Specified by:
getNodeTagValue in interface ITinNodeCollection
Parameters:
index - The index (in)
Returns:
The pValue
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEdgeCount

public int getEdgeCount()
                 throws IOException,
                        AutomationException
The total number of edges in the TIN.

Description

The total number of edges in the TIN. The number is equivalent to 3 times the total number of triangles.

Note, the edge count uses what's termed a double edge interpretation. This is where the shared edge between two triangles is counted twice; once for each triangle.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getEdgeCount in interface ITinAdvanced
Returns:
The pcEdges
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEdge

public ITinEdge getEdge(int index)
                 throws IOException,
                        AutomationException
The edge referenced by the index.

Description

Returns the edge referenced by the index. The index base value for edges is 1.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

queryEdge

public void queryEdge(int index,
                      ITinEdge pEdge)
               throws IOException,
                      AutomationException
The edge equal to that referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryEdge in interface ITinAdvanced
Parameters:
index - The index (in)
pEdge - A reference to a com.esri.arcgis.geodatabase.ITinEdge (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryEdgeAsLine

public void queryEdgeAsLine(int index,
                            ILine pLine)
                     throws IOException,
                            AutomationException
The line equal to the edge referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryEdgeAsLine in interface ITinAdvanced
Parameters:
index - The index (in)
pLine - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryEdgeAsWKSPointZs

public void queryEdgeAsWKSPointZs(int index,
                                  _WKSPointZ[] pFrom,
                                  _WKSPointZ[] pTo)
                           throws IOException,
                                  AutomationException
The points equal to the end points of the edge referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryEdgeAsWKSPointZs in interface ITinAdvanced
Parameters:
index - The index (in)
pFrom - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pTo - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEdgeTagValue

public int getEdgeTagValue(int index)
                    throws IOException,
                           AutomationException
The tag value of the edge referenced by the index.

Description

Returns the tag value of the edge referenced by the index. The base index for edges is 1.

The returned value will be 0 if the TIN has never been assigned any edge tag values or the edge itself has not been assigned a value.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getEdgeTagValue in interface ITinAdvanced
Parameters:
index - The index (in)
Returns:
The pValue
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEdgeType

public void getEdgeType(int edgeIndex,
                        int[] pType)
                 throws IOException,
                        AutomationException
Gets the specified edge's type.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getEdgeType in interface ITinAdvanced
Parameters:
edgeIndex - The edgeIndex (in)
pType - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTriangleCount

public int getTriangleCount()
                     throws IOException,
                            AutomationException
The total number of triangles in the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getTriangleCount in interface ITinAdvanced
Returns:
The pcTriangles
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTriangle

public ITinTriangle getTriangle(int index)
                         throws IOException,
                                AutomationException
The triangle referenced by the index.

Description

Returns the triangle referenced by the index. The index base for triangles is 1.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

queryTriangle

public void queryTriangle(int index,
                          ITinTriangle pTriangle)
                   throws IOException,
                          AutomationException
The triangle equal to that referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryTriangle in interface ITinAdvanced
Parameters:
index - The index (in)
pTriangle - A reference to a com.esri.arcgis.geodatabase.ITinTriangle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTriangleAsRing

public void queryTriangleAsRing(int index,
                                IRing pRing)
                         throws IOException,
                                AutomationException
The ring equal to the triangle referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryTriangleAsRing in interface ITinAdvanced
Parameters:
index - The index (in)
pRing - A reference to a com.esri.arcgis.geometry.IRing (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTriangleAsWKSPointZs

public void queryTriangleAsWKSPointZs(int index,
                                      _WKSPointZ[] pPi,
                                      _WKSPointZ[] pPj,
                                      _WKSPointZ[] pPk)
                               throws IOException,
                                      AutomationException
Queries the points equal to the nodes of the triangle referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryTriangleAsWKSPointZs in interface ITinAdvanced
Parameters:
index - The index (in)
pPi - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pPj - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pPk - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTriangleTagValue

public int getTriangleTagValue(int index)
                        throws IOException,
                               AutomationException
The tag value of the triangle referenced by the index.

Description

Returns the tag value of the triangle referenced by the index. The base index for triangles is 1.

The returned value will be 0 if the TIN has never been assigned any triangle tag values or the triangle itself has not been assigned a value.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getTriangleTagValue in interface ITinAdvanced
Parameters:
index - The index (in)
Returns:
The pValue
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryNearestNode

public void queryNearestNode(IPoint pPoint,
                             ITinNode pNode,
                             double[] pDistance)
                      throws IOException,
                             AutomationException
Finds and returns the nearest node to the query point.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNearestNode in interface ITinAdvanced
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
pNode - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
pDistance - The pDistance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryNearestEdge

public void queryNearestEdge(IPoint pPoint,
                             ITinEdge pEdge,
                             double[] pDistance)
                      throws IOException,
                             AutomationException
Finds and returns the nearest edge to the query point.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNearestEdge in interface ITinAdvanced
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
pEdge - A reference to a com.esri.arcgis.geodatabase.ITinEdge (in)
pDistance - The pDistance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findTriangle

public ITinTriangle findTriangle(IPoint pPoint)
                          throws IOException,
                                 AutomationException
The triangle at the specified location.

Description

Returns the triangle that contains the given query point.

If the query point is incident to a node or edge than the triangle to return is ambiguous. In either case the function will select the first triangle it finds.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
findTriangle in interface ITinAdvanced
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITinTriangle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findNaturalNeighbors

public ITinNodeArray findNaturalNeighbors(IPoint pPoint)
                                   throws IOException,
                                          AutomationException
Returns the immediate surrounding nodes to the query point.

Description

Returns an array of nodes that are the natural neighbors of the input query point.

The natural neighbors of a given query point are the nodes it would connect with to form triangles if it were inserted in the triangulation. They are the closest surrounding nodes in all directions.

In most cases, the number of neighboring nodes is small. It averages around 6 to 8. Depending on the data distribution and the location of the query point it can be much larger though.

If the query point is coincident with an existing node then that node's neighbors will be returned.

Returns a null pointer ('Nothing' in VB) if the result is an empty set. This will occur when the query point falls outside the triangulation.

The TIN must be Delaunay.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
findNaturalNeighbors in interface ITinAdvanced
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITinNodeArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findTriangleNeighborhood

public ITinTriangleArray findTriangleNeighborhood(IPoint pPoint)
                                           throws IOException,
                                                  AutomationException
Returns all triangles whose circumscribed circle contains the query point.

Description

Returns an array of triangles that are in proximity to the input query point.

The triangles returned are those that would be invalidated/redefined if the query point were inserted into the TIN as a new node.

In most cases, the number of triangles is small. It averages around 6-8. Depending on the data distribution and the location of the query point it can be much larger though.

Returns Nothing if result is empty set (query point outside tin).

The TIN must be Delaunay.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
findTriangleNeighborhood in interface ITinAdvanced
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITinTriangleArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

extractPolyline

public ITinPolyline extractPolyline(ITinEdge pSeed,
                                    ITinFilter pFilter)
                             throws IOException,
                                    AutomationException
Returns a polyline definition based on triangle edges that meet the same filter criteria.

Description

Returns a TinPolyline that represents the polyline defined by the input seed and filter.

The seed is a TIN edge that falls anywhere along the desired polyline.

The filter defines the criteria used to extract the polyline. Starting from one node of the seed edge, the function looks for an adjoining edge that passes through the filter. As long as there is one, and only one, adjoining edge that passes through the filter it gets included in the polyline definition and becomes the next step in the iteration. After the end is reached in one direction, the same process occurs starting from the other node of the seed edge.

If the polyline you want to extract is, for example, a hard breakline, you find one edge along that line to use as a seed, and set the Type property of the TinEdgeTypeFilter to ‘esriTinHardEdge’.

Line junctures exist when three or more edges with the filter property meet at a node. They are where lines meet or intersect. ExtractPolyline stops at junctures; it never returns lines that pass through them.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
extractPolyline in interface ITinAdvanced
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinEdge (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinFilter (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITinPolyline
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

extractPolygon

public ITinPolygon extractPolygon(ITinElement pSeed,
                                  ITinFilter pFilter,
                                  boolean bStopAtEnforcedEdge)
                           throws IOException,
                                  AutomationException
Returns a polygon definition based on all contiguous triangles having the same filter criteria.

Description

Returns a TinPolygon that references the polygon defined by the input seed and filter.

The seed is a TIN triangle that falls within the desired polygon or a TIN edge that falls on its boundary. An edge seed can only extract a single part polygon without holes.

The filter defines the criteria used to extract the polygon. Starting from a triangle based seed outward, all triangles that can pass through the filter are considered part of the polygon (the inside). If an edge is given as a seed, connected edges that pass through the filter are used to define the polygon boundary.

The filter argument can be NULL ('Nothing' in VB) if the seed is a triangle. A filter is required if the seed is an edge.

Use no filter with the bStopAtEnforcedEdge argument set to TRUE to extract polygons whose definition is that they are enclosed by breaklines. Be careful, no filter with bStopAtEnforcedEdge set to FALSE is guaranteed to return all triangles in the TIN. Also, while an area may look closed it may not actually be. This can return many more triangles than expected.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
extractPolygon in interface ITinAdvanced
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinElement (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinFilter (in)
bStopAtEnforcedEdge - The bStopAtEnforcedEdge (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITinPolygon
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTriangleSeeds

public IEnumTinTriangle getTriangleSeeds(ITinDynamicFilter pFilter,
                                         boolean bStopAtEnforcedEdge)
                                  throws IOException,
                                         AutomationException
Returns one triangle representing each polygon defined by the filter criteria of the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getTriangleSeeds in interface ITinAdvanced
Parameters:
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinDynamicFilter (in)
bStopAtEnforcedEdge - The bStopAtEnforcedEdge (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumTinTriangle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

convertToPolygons

public void convertToPolygons(IFeatureClass pFeatureClass,
                              ITinDynamicFilter pFilter,
                              boolean bStopAtEnforcedEdge,
                              Object pFieldName)
                       throws IOException,
                              AutomationException
Converts similar triangles to a polygon feature class.

Description

Converts a TIN to a polygon based feature class. Contiguous clusters of triangles that fall into the same class, as defined by the passed filter, define the polygons.

FeatureClass must be a 2D polygon feature class. This is the target for the output polygons.

The filter needs to implement ITinDynamicFilter. Examples of these are TinValueFilter and TinTriangleFilter. Through use of these filters you can classify triangles based on a variety of attributes including, but not limited to, tag value, slope, and aspect. Contiguous clusters of triangles belonging to the same class are grouped into polygons and written to the feature class. If the ActiveBound for either of these filters is set to esriTinUniqueValue it means contiguous triangles with identical values will be extracted as polygons - for all unique values (with the exception of zero if ITinValueFilter2.ZeroTagValueExcluded is set to TRUE).

If the StopAtEnforcedEdges Boolean is set to TRUE then adjacent clusters of triangles belonging to the same class, but separated by enforced edges (breaklines), will be output as separate polygons.

Polygon class codes are written to a field that is added to the feature class. It is named ‘Code’ by default but you can use the optional FieldName argument to give it a different name.

Do not have WorkspaceEdit turned on as this member needs to add a field to the output feature class, which is a schema edit operation that WorkspaceEdit does not permit.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
convertToPolygons in interface ITinAdvanced
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinDynamicFilter (in)
bStopAtEnforcedEdge - The bStopAtEnforcedEdge (in)
pFieldName - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDataArea

public IPolygon getDataArea()
                     throws IOException,
                            AutomationException
Returns a polygon representing the data area of the TIN.

Description

Returns the data area of the TIN as a ZAware polygon. The data area is defined as the boundary between those triangles that are marked as 'inside' and those marked as 'outside'. It is the same thing as the interpolation zone.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDataArea in interface ITinAdvanced
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.

getUniqueTagValueCount

public int getUniqueTagValueCount(int type)
                           throws IOException,
                                  AutomationException
The number of unique tag values for the specified element type.

Product Availability

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

Specified by:
getUniqueTagValueCount in interface ITinAdvanced
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
Returns:
The pCount
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getUniqueTagValues

public ILongArray getUniqueTagValues(int type)
                              throws IOException,
                                     AutomationException
Returns unique tag values for the specified element type.

Description

Returns an array of integers containing all the tag values used for the given element type - node, edge, or triangle.

The array can potentially be as large as the number of elements. It's a good idea to check how many unique values there are using UniqueTagValueCount before executing this function.

The returned tag values will be sorted in ascending order if the TIN has been created by, or saved/copied by the 8.1 version of this software or later. The tag values might otherwise not be sorted.

The arrays will be set to Null ('Nothing' in VB) if the TIN has no tags related to the specified element type.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getUniqueTagValues in interface ITinAdvanced
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
Returns:
A reference to a com.esri.arcgis.system.ILongArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

generateUniqueTagValue

public int generateUniqueTagValue(int type)
                           throws IOException,
                                  AutomationException
Returns a new, previously unused tag value for the element.

Description

Returns an integer that is not already used as a tag value by the specified element type - node, triangle or edge. This can be useful in assigning unique identifiers to features that are added to the triangulation.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
generateUniqueTagValue in interface ITinAdvanced
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
Returns:
The pValue
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNodeSource

public int getNodeSource(int nodeIndex)
                  throws IOException,
                         AutomationException
Returns the source of the specified node.

Description

The source of the specified node is returned as an esriTinNodeSourceType enumeration. This gives an indication of where the node came from; its origin. If a node has the value esriTinOriginal it was input, as a point or vertex, by a user. All other node source types, with the possible exception of esriTinUnknown, represent those which are software generated. These others include the four super nodes that are added upon initial TIN creation, and densification and intersection nodes added to breaklines. Nodes are added to breaklines, where necessary, in order to make them Delaunay conforming.

If the intersection point between two or more breaklines was input as part of the source data the node source will be set to esriTinOriginal because the software did not need to generate the intersection point. If you need to discover nodes where breaklines intersect, regardless of whether they were software generated, use ITinAdvanced2.GetNodeDegree or ITinNode2.Degree with the EnforcedEdgesOnly option set to TRUE. Returned values greater than two are intersection points. A value of two might be considered an intersection but only if the node is the endpoint of two different breaklines.

TINs do not yet persist node source information. It is only maintained while the TIN is is edit mode. This means after a TIN has been saved to disk, all nodes, except for super nodes, become unknown.

See also: ITinNode2.Source

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNodeSource in interface ITinAdvanced2
Parameters:
nodeIndex - The nodeIndex (in)
Returns:
A com.esri.arcgis.geodatabase.esriTinNodeSourceType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
ITinNode2

getNodeSourceCounts

public void getNodeSourceCounts(int[] pcOriginal,
                                int[] pcSuper,
                                int[] pcDensified,
                                int[] pcIntersection,
                                int[] pcUnknown)
                         throws IOException,
                                AutomationException
Returns the number of nodes with respect to different sources.

Description

Returns the total number of nodes in the TIN for each source type. The different types include original, densified, intersection, supernode, and unknown.

TINs do not yet persist node source information. It is only maintained while the TIN is is edit mode. This means after a TIN has been saved to disk, all nodes, except for super nodes, become unknown.

See also: ITinAdvanced2.GetNodeSource, ITinNode2.Source

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNodeSourceCounts in interface ITinAdvanced2
Parameters:
pcOriginal - The pcOriginal (out: use single element array)
pcSuper - The pcSuper (out: use single element array)
pcDensified - The pcDensified (out: use single element array)
pcIntersection - The pcIntersection (out: use single element array)
pcUnknown - The pcUnknown (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNodeDegree

public int getNodeDegree(int nodeIndex,
                         boolean bEnforcedEdgesOnly)
                  throws IOException,
                         AutomationException
Returns the degree of the specified node.

Description

GetNodeDegree returns the number of edges incident to the node. If bEnforcedEdgesOnly is set to True then only the number of hard and soft break edges are counted.

This member uses the SingleEdge interpretation where only one edge between node pairs is considered.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNodeDegree in interface ITinAdvanced2
Parameters:
nodeIndex - The nodeIndex (in)
bEnforcedEdgesOnly - The bEnforcedEdgesOnly (in)
Returns:
The pDegree
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isNodeOnDomainBoundary

public boolean isNodeOnDomainBoundary(int nodeIndex)
                               throws IOException,
                                      AutomationException
Returns TRUE if the specified node is on domain's boundary.

Description

Returns TRUE if the node resides on the perimeter of the TIN's interpolation zone. This is the case if there's at least one nodata triangle and one data triangle incident to the node.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isNodeOnDomainBoundary in interface ITinAdvanced2
Parameters:
nodeIndex - The nodeIndex (in)
Returns:
The pbIsOn
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSpecialEdgeCounts

public void getSpecialEdgeCounts(int[] pcHardDataEdges,
                                 int[] pcSoftDataEdges,
                                 int[] pcTagValueDataEdges)
                          throws IOException,
                                 AutomationException
Returns the total number of special edges in the TIN.

Description

Returns the number of hard, soft, and tagged edges.

Since edges can be both tagged and hard or soft, some overlap in the counts can exist.

At present, edge tags can only be assigned and used while a TIN's being edited. Edge tags do not get persisted so they are lost when a TIN is saved to disk.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSpecialEdgeCounts in interface ITinAdvanced2
Parameters:
pcHardDataEdges - The pcHardDataEdges (out: use single element array)
pcSoftDataEdges - The pcSoftDataEdges (out: use single element array)
pcTagValueDataEdges - The pcTagValueDataEdges (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

hasEdgeType

public boolean hasEdgeType(int type)
                    throws IOException,
                           AutomationException
Returns TRUE if the TIN contains the specified edge type.

Description

HasEdgeType will return True if the specified edge type, esriTinRegularEdge, esriTinHardEdge, or esriTinSoftEdge, is present.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
hasEdgeType in interface ITinAdvanced2
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (in)
Returns:
The pbHasType
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLeftTriangleIndex

public int getLeftTriangleIndex(int edgeIndex)
                         throws IOException,
                                AutomationException
Gets left triangle index of the specified edge.

Description

Returns the index of the triangle on the left side of the specified edge. Note that edges of triangles are ordered clockwise.

If the edge is on the extreme perimeter of the TIN, the returned index will equal 0, meaning no triangle, as the base index for triangles is 1.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getLeftTriangleIndex in interface ITinAdvanced2
Parameters:
edgeIndex - The edgeIndex (in)
Returns:
The pTriangle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRightTriangleIndex

public int getRightTriangleIndex(int edgeIndex)
                          throws IOException,
                                 AutomationException
Gets right triangle index of the specified edge.

Description

Returns the index of the triangle on the right side of the specified edge. Note that edges of triangles are ordered clockwise.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getRightTriangleIndex in interface ITinAdvanced2
Parameters:
edgeIndex - The edgeIndex (in)
Returns:
The pTriangle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryBeginEndNodeIndices

public void queryBeginEndNodeIndices(int edgeIndex,
                                     int[] pBegin,
                                     int[] pEnd)
                              throws IOException,
                                     AutomationException
Gets begin and end nodes of the specified edge.

Description

Returns the indices of the from and to nodes of the specified edge.

Note that edges in a triangle are ordered clockwise.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryBeginEndNodeIndices in interface ITinAdvanced2
Parameters:
edgeIndex - The edgeIndex (in)
pBegin - The pBegin (out: use single element array)
pEnd - The pEnd (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNeighborEdgeIndex

public int getNeighborEdgeIndex(int edgeIndex)
                         throws IOException,
                                AutomationException
Gets neighbor edge index.

Description

Returns the index of the corresponding edge in the adjacent triangle.

Zero is returned if the given edge is on the extreme perimeter of the TIN with no adjacent triangle.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNeighborEdgeIndex in interface ITinAdvanced2
Parameters:
edgeIndex - The edgeIndex (in)
Returns:
The pNeighbor
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTriangleNodeIndices

public void queryTriangleNodeIndices(int triangleIndex,
                                     int[] pA,
                                     int[] pB,
                                     int[] pC)
                              throws IOException,
                                     AutomationException
Gets the three nodes of the specified triangle (clockwise).

Description

Returns the indices of the three nodes that comprise the specified triangle.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryTriangleNodeIndices in interface ITinAdvanced2
Parameters:
triangleIndex - The triangleIndex (in)
pA - The pA (out: use single element array)
pB - The pB (out: use single element array)
pC - The pC (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTriangleEdgeIndices

public void queryTriangleEdgeIndices(int triangleIndex,
                                     int[] pA,
                                     int[] pB,
                                     int[] pC)
                              throws IOException,
                                     AutomationException
Gets the three edges of the specified triangle (clockwise).

Description

Returns the indices of the three edges that comprise the specified triangle.

They are returned from smaller index to larger in clockwise order.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryTriangleEdgeIndices in interface ITinAdvanced2
Parameters:
triangleIndex - The triangleIndex (in)
pA - The pA (out: use single element array)
pB - The pB (out: use single element array)
pC - The pC (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryNodeIndicesAroundNode

public void queryNodeIndicesAroundNode(int nodeIndex,
                                       ILongArray pNodes)
                                throws IOException,
                                       AutomationException
Returns all nodes connected to the specified node.

Description

Returns indices for nodes adjacent to specified node. These are its direct neighbors which are connected by triangle edges.

The passed object that implements ILongArray must have already been instantiated.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNodeIndicesAroundNode in interface ITinAdvanced2
Parameters:
nodeIndex - The nodeIndex (in)
pNodes - A reference to a com.esri.arcgis.system.ILongArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryEdgeIndicesAroundNode

public void queryEdgeIndicesAroundNode(int nodeIndex,
                                       ILongArray pEdges)
                                throws IOException,
                                       AutomationException
Returns all edges having the specified node as begin node.

Description

This populates a LongArray with the indices of edges that surround a given node.

The passed LongArray must already have been instantiated.

A single edge interpretation is used. This is where edges between adjacent triangles are shared.

Only edges that have their from node in common with the specified node are returned. Because of this, some boundary edges incident to super nodes will have no representation.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryEdgeIndicesAroundNode in interface ITinAdvanced2
Parameters:
nodeIndex - The nodeIndex (in)
pEdges - A reference to a com.esri.arcgis.system.ILongArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryAllEdgeIndicesAroundNode

public void queryAllEdgeIndicesAroundNode(int nodeIndex,
                                          ILongArray pEdges)
                                   throws IOException,
                                          AutomationException
Returns all edges connected to the specified node. If the last edge in the array has negative value, then its end node, instead of begin node, is the specified node.

Description

This populates a LongArray with the indices of edges that surround a given node.

The passed LongArray must already have been instantiated.

A Single Edge interpretation is used. This is where edges between adjacent triangles are shared.

For non-super nodes, all returned edges have their from node in common with the specified node. In the special case of a super node, the last returned edge will have its to node in common. That returned index will also be flagged using a negative value.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryAllEdgeIndicesAroundNode in interface ITinAdvanced2
Parameters:
nodeIndex - The nodeIndex (in)
pEdges - A reference to a com.esri.arcgis.system.ILongArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTriangleIndicesAroundNode

public void queryTriangleIndicesAroundNode(int nodeIndex,
                                           ILongArray pTriangles)
                                    throws IOException,
                                           AutomationException
Returns all triangles sharing the specified node.

Description

Returns indices for triangles incident to the specified node.

The passed object that implements ILongArray must have already been instantiated.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryTriangleIndicesAroundNode in interface ITinAdvanced2
Parameters:
nodeIndex - The nodeIndex (in)
pTriangles - A reference to a com.esri.arcgis.system.ILongArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryNaturalNeighborIndices

public void queryNaturalNeighborIndices(IPoint pPoint,
                                        ILongArray pNodes)
                                 throws IOException,
                                        AutomationException
Returns all Natural Neighbors corresponding to the query point.

Description

Returns the indices of the nodes that are natural neighbors of the query point. This set represents those the point would connect to if inserted into the triangulation.

If the query point is coincident with an existing node, that nodes neighbors will be returned.

An empty set is returned if the query point falls outside the triangulation.

The passed LongArray must already be instantiated.

The TIN must be Delaunay.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNaturalNeighborIndices in interface ITinAdvanced2
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
pNodes - A reference to a com.esri.arcgis.system.ILongArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTriangleNeighborhoodIndices

public void queryTriangleNeighborhoodIndices(IPoint pPoint,
                                             ILongArray pTriangles)
                                      throws IOException,
                                             AutomationException
Returns all triangles whose circumscribed circle contains the query point.

Description

Returns the indices of all triangles that would be effected if the query point were inserted in the triangulation. These are the triangles whose circumscribed circles contain the query point.

No special attention is paid to the presence of breaklines or whether the query point falls inside the interpolation zone. Triangles connected to super nodes may be included in the returned set.

An empty set will be returned if the query point resides entirely outside the triangulation (including the super node extent).

The passed object that implements ILongArray must have already been instantiated.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryTriangleNeighborhoodIndices in interface ITinAdvanced2
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
pTriangles - A reference to a com.esri.arcgis.system.ILongArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryElementAsGeometry

public void queryElementAsGeometry(int type,
                                   int index,
                                   IGeometry pGeometry)
                            throws IOException,
                                   AutomationException
Output the specified TIN element as Geometry object.

Description

Returns the specified TIN element as the type of geometry object that's passed.

The passed geometry object must already be instantiated.

Node elements can be returned as points.

Edge elements can be returned as multipoints, lines, paths, and polylines.

Triangle elements can be returned as multipoints, paths, rings, polylines, and polygons.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryElementAsGeometry in interface ITinAdvanced2
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
index - The index (in)
pGeometry - 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.

queryNeighborsAndWeights

public void queryNeighborsAndWeights(double x,
                                     double y,
                                     ILongArray pNeighbors,
                                     IDoubleArray pWeights)
                              throws IOException,
                                     AutomationException
Returns natural neighbors and their weights corresponding to the query point.

Description

Returns the natural neighbor indices and their normalized weights for the given query point. The weights are based on area-stealing, or Sibson, interpolation. There is a one to one correspondence between the index and weight entries placed in the two arrays.

For valid results the TIN should have been constructed using only mass points. It must be Delaunay and have a convex interpolation zone. Breaklines are not taken into consideration.

If the query point is incident to a node only that node's index will be returned along with a weight of 1.0.

Zero neighbors will be reported if a query point falls outside the TIN's interpolation zone.

If a super node is discovered to be a neighbor it will be excluded from consideration. It will not be reported as a neighbor or be included in determining weights.

Both objects implementing the array functionality must be instantiated before being used with this member.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryNeighborsAndWeights in interface ITinAdvanced2
Parameters:
x - The x (in)
y - The y (in)
pNeighbors - A reference to a com.esri.arcgis.system.ILongArray (in)
pWeights - A reference to a com.esri.arcgis.system.IDoubleArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findTriangleIndex

public int findTriangleIndex(IPoint pPoint)
                      throws IOException,
                             AutomationException
The triangle at the specified location.

Description

Returns the index of the triangle that encompasses the point.

If the point falls completely outside the TIN, including the area represented by its super nodes, the returned index will be 0.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
findTriangleIndex in interface ITinAdvanced2
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The pTriangle
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isTriangleInsideDataArea

public boolean isTriangleInsideDataArea(int triangleIndex)
                                 throws IOException,
                                        AutomationException
Returns TRUE if the triangle is inside data area.

Description

Returns TRUE if the triangle is inside the data area. This is the same as the domain or interpolation zone of the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isTriangleInsideDataArea in interface ITinAdvanced2
Parameters:
triangleIndex - The triangleIndex (in)
Returns:
The pbIsInside
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEdgeInsideDataArea

public boolean isEdgeInsideDataArea(int edgeIndex)
                             throws IOException,
                                    AutomationException
Returns TRUE if the edge is inside data area.

Description

If the triangle the edge belongs to, its RightTriangle, is inside the TIN's data area then this function will return True for the edge.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isEdgeInsideDataArea in interface ITinAdvanced2
Parameters:
edgeIndex - The edgeIndex (in)
Returns:
The pbIsInside
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isNodeInsideDataArea

public boolean isNodeInsideDataArea(int nodeIndex)
                             throws IOException,
                                    AutomationException
Returns TRUE if the node is inside data area.

Description

Returns True if any triangles incident to the node are inside the TIN's interpolation zone.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isNodeInsideDataArea in interface ITinAdvanced2
Parameters:
nodeIndex - The nodeIndex (in)
Returns:
The pbIsInside
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCountedUniqueTagValues

public void getCountedUniqueTagValues(int type,
                                      ILongArray[] ppValues,
                                      ILongArray[] ppCounts)
                               throws IOException,
                                      AutomationException
Returns unique tag values with counts for the specified element type.

Description

Returns an array of integers containing all the tag values used for the given element type - node, edge, or triangle. An additional returned array reports the number of elements that have been assigned a particular tag. The indices of the two arrays correspond with one another. So, the first element of the count array indicates the number of elements that have been assigned the value of the of the first element in the tag value array.

The arrays can potentially be as large as the number of elements. It's a good idea to check how many unique values there are using UniqueTagValueCount before executing this function.

When an edge is assigned a tag the corresponding edge in the adjacent triangle is automatically assigned the same tag. So, even though you only assigned one unique tag to an individual edge the reported element count for that tag will reported as two. The only exception is with super edges where there are no adjacent triangles with corresponding edges.

The returned tag values will be sorted in ascending order if the TIN has been created by, or saved/copied by the 8.1 version of this software or later. The tag values might otherwise not be sorted.

The arrays will be set to Null ('Nothing' in VB) if the TIN has no tags related to the specified element type.

Note as soon as one element is assigned a tag all the other elements of the same type are given the default tag of 0. So, if you only assign a one non-zero tag to one element you will find two values reported by this member, 0 and the value you assigned.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCountedUniqueTagValues in interface ITinAdvanced2
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
ppValues - A reference to a com.esri.arcgis.system.ILongArray (out: use single element array)
ppCounts - A reference to a com.esri.arcgis.system.ILongArray (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNaturalNeighborZ

public double getNaturalNeighborZ(double x,
                                  double y)
                           throws IOException,
                                  AutomationException
Return the z-coordinate of the specified location using Natural Neighbor interpolation.

Description

The returned height is based on natural neighbor interpolation. This scheme finds the closest nodes in all directions, the ones that would be connected to if the query point were inserted in the triangulation, and applies an area based weighting scheme to them.

Hard breaklines and the TIN data area boundary constrain the neighbor search. Data on the opposite side of these boundaries, relative to the query point, are excluded from consideration. Therefore, the surface is continuously smooth except across hard breaklines and at the data area boundary. Hard breaklines constitute an abrupt change in slope.

The z value returned when the query point falls outside the interpolation zone is NODATA (or not-a-number, NaN). You can determine if this is the case by passing it to ITinAdvanced.IsVoidZ or ISurface.IsVoidZ.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNaturalNeighborZ in interface ITinAdvanced2
Parameters:
x - The x (in)
y - The y (in)
Returns:
The pZ
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

convertToPolylines

public void convertToPolylines(IFeatureClass pFeatureClass,
                               ITinDynamicFilter pFilter,
                               Object pFieldName)
                        throws IOException,
                               AutomationException
Converts qualified edges to a polyline feature class.

Description

Extracts embedded TIN polylines and writes them out to the specified feature class.

The specified feature class must exist and be polyline based.

If the feature class is Z enabled the polylines written to it will be 3D, otherwise they will be 2D.

The specified filter must be edge based (e.g. TinEdgeTypeFilter) and implement ITinDynamicFilter. You can use ITinEdgeTypeFilter2 with its RegularEdgesExcluded property set to TRUE to extract hard and soft breaklines as polyline features.

A field will be added to the feature class and is used to store a numeric code for the output features. In the case of edge type, a value of 1 is used for soft breaklines and 2 for hard. The added field will be called 'Code' unless you provide a different name via the optional field name argument.

Do not have WorkspaceEdit turned on as this member needs to add fields to the output feature class, a schema edit operation that WorkspaceEdit does not permit.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
convertToPolylines in interface ITinAdvanced2
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinDynamicFilter (in)
pFieldName - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

saveAsVersion

public void saveAsVersion(String newName,
                          int ver,
                          Object pOverWrite)
                   throws IOException,
                          AutomationException
Saves the TIN to disk using the specified (full path) name.

Description

Saves the TIN to disk using the format, or version, specified by esriTinVersion.

If you need a TIN that is backwards compatible with ArcINFO Workstation, ArcView 3.x, and versions of ArcGIS 9.3.1 and prior you must use esriTin70001. These packages will not recognized TINs saved using esriTin80001.

If the TIN is Delaunay conforming (see ITin.IsDelaunay, ITinEdit2.SetToConstrainedDelaunay) it can be saved to either esriTin70001 or esriTin80001. If it isn't it can only be saved to esriTin80001. An error will be raised if you attempt to save it to esriTin70001.

If the TIN has edge tag values (see ITin.HasEdgeTags) they will be dropped when saving to esriTin70001.

Node source information (see ITinNode2.Source) will be dropped when saving to esriTin70001.

Some spatial references are not supported with esriTin70001. Those which aren't will be excluded when saving to esriTin70001.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
saveAsVersion in interface ITinAdvanced2
Parameters:
newName - The newName (in)
ver - A com.esri.arcgis.geodatabase.esriTinVersion constant (in)
pOverWrite - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTinVersion

public int getTinVersion()
                  throws IOException,
                         AutomationException
Returns the version number of the TIN dataset.

Description

TINs with a version of esriTin70001 can be used with ArcINFO Workstation, ArcView 3.x, and all versions of ArcGIS.

TINs with a version of esriTin80001 can be used with ArcGIS 10 and later.

See also ITinAdvanced2.SaveAsVersion.

Product Availability

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

Specified by:
getTinVersion in interface ITinAdvanced3
Returns:
A com.esri.arcgis.geodatabase.esriTinVersion constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPreviousEdgeIndexInTriangle

public int getPreviousEdgeIndexInTriangle(int edgeIndex)
                                   throws IOException,
                                          AutomationException
Gets previous edge index in triangle.

Description

Returns the index for the previous edge in a triangle relative to a given edge. Since nodes and edges are oriented clockwise in a TIN the previous edge is counter-clockwise to the given edge.

Use this method instead of ITinEdge.GetPreviousInTriangle when inside a loop.

Product Availability

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

Specified by:
getPreviousEdgeIndexInTriangle in interface ITinAdvanced3
Parameters:
edgeIndex - The edgeIndex (in)
Returns:
The pIndex
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNextEdgeIndexInTriangle

public int getNextEdgeIndexInTriangle(int edgeIndex)
                               throws IOException,
                                      AutomationException
Gets next edge index in triangle.

Description

Returns the index for the next edge in a triangle relative to a given edge. Since nodes and edges are oriented clockwise in a TIN the next edge is clockwise to the given edge.

Use this method instead of ITinEdge.GetNextInTriangle when inside a loop.

Product Availability

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

Specified by:
getNextEdgeIndexInTriangle in interface ITinAdvanced3
Parameters:
edgeIndex - The edgeIndex (in)
Returns:
The pIndex
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNextCWEdgeIndex

public int getNextCWEdgeIndex(int edgeIndex)
                       throws IOException,
                              AutomationException
Gets next clockwise edge index.

Product Availability

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

Specified by:
getNextCWEdgeIndex in interface ITinAdvanced3
Parameters:
edgeIndex - The edgeIndex (in)
Returns:
The pIndex
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNextCCWEdgeIndex

public int getNextCCWEdgeIndex(int edgeIndex)
                        throws IOException,
                               AutomationException
Gets next counter clockwise edge index.

Product Availability

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

Specified by:
getNextCCWEdgeIndex in interface ITinAdvanced3
Parameters:
edgeIndex - The edgeIndex (in)
Returns:
The pIndex
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryElementIndicesAroundNode

public void queryElementIndicesAroundNode(int type,
                                          int localNodeIndex,
                                          int triangleIndex,
                                          ILongArray pIndices)
                                   throws IOException,
                                          AutomationException
Returns the indices of all elements connected to the specified node.

Description

Used to return the indices of nodes, edges, or triangles around a node when the node is referenced by specifying its local position (0, 1, 2) in a triangle.

Type indicates the desired element type for the returned indices: nodes, edges, or triangles.

LocalNodeIndex is the nth position for the node of interest in the triangle. Local indices, that indicate relative position in a triangle, start at base 0. Therefore, the passed value must be 0, 1, or 2.

TriangleIndex is used to indicate which triangle the local node index is relative to. Element indexes that are global, at the TIN level rather than local to a triangle, start at base 1. Therefore the passed value must be 1..NumTriangles.

pIndices is a reference to a LongArray into which the indices will be placed. The LongArray object must already be instantiated. Any values already in the array when it's passed will be removed before the return values get added.

See related methods ITinAdvanced2 QueryEdgeIndicesAroundNodes, ITinAdvanced2.QueryNodeIndicesAroundNode, and ITinAdvanced2.QueryTriangleIndicesAroundNodes.

This method is faster than those related methods. They all require a spatial search to find an incident triangle or edge to start iterating from while this method does not.

Product Availability

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

Specified by:
queryElementIndicesAroundNode in interface ITinAdvanced3
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
localNodeIndex - The localNodeIndex (in)
triangleIndex - The triangleIndex (in)
pIndices - A reference to a com.esri.arcgis.system.ILongArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getVoronoiRegionNoClip

public IPolygon getVoronoiRegionNoClip(int nodeIndex)
                                throws IOException,
                                       AutomationException
Returns a Voronoi polygon about the node referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getVoronoiRegionNoClip in interface ITinNodeCollection
Parameters:
nodeIndex - The nodeIndex (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.

getVoronoiRegion

public IPolygon getVoronoiRegion(int nodeIndex,
                                 IPolygon pClippingPolygon)
                          throws IOException,
                                 AutomationException
Returns a Voronoi polygon about the node referenced by the index.

Description

The Voronoi region (also known as Thiessen or proximal polygon) that is returned encloses an area that is closer to the source node than to any other node in the triangulation.

'Nothing' (a null pointer) can be passed as the clip polygon. In this case, a default rectangle will be used to clip the voronoi region. The rectangle is set to be somewhat larger than the FullExtent of the TIN.

GetVoronoiRegion used on a super node will return Nothing (a null pointer). Super nodes are added by the software when the TIN is initially created and reside far outside the declared data extent.

If you wish to process the entire TIN and write the output to a feature class consider ITinNodeCollection.ConvertToVoronoiRegions.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getVoronoiRegion in interface ITinNodeCollection
Parameters:
nodeIndex - The nodeIndex (in)
pClippingPolygon - A reference to a com.esri.arcgis.geometry.IPolygon (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.

convertToVoronoiRegions

public void convertToVoronoiRegions(IFeatureClass pFeatureClass,
                                    ITinFilter pFilter,
                                    IPolygon pClippingPolygon,
                                    String indexFieldName,
                                    String tagFieldName)
                             throws IOException,
                                    AutomationException
Writes the set of Voronoi polygons for each node to a feature class.

Description

The FeatureClass should be an empty 2D polygon feature class. The Voronoi/Thiessen polygons will be written to it.

The Filter is used to determine which nodes to generate Voronoi/Thiessen polygons for. A Null pointer ('Nothing' in VisualBasic) can be passed in which case all nodes will be processed.

Output polygons will be intersected with the specified ClippingPolygon. A Null pointer ('Nothing' in VB) can be passed in which case a default polygon, which is a rectangulat bounding box that is slightly larger than the TINs FullExtent, will be used.

The indexFieldName is the name of the field added to the output feature class that's used to record the source node index for the polygon. If an empty string is passed the name "NodeIndex" is used as a default.

The tagFieldName is the name of the field added to the output feature class that's used to record the source node tag value for the polygon. If an empty string is passed the name "TagValue" is used as a default.

When constructing the TIN from a feature class it can be useful to specify the OIDField as the source of node tags. This way the output Voronoi/Thiessen polygons can be joined to the source features by associating the Thiessen polygon's TagField to the input feature's OIDField.

Since this method added fields to the specified feature class make sure WorkspaceEdit is off as it does not permit this type of schema modification.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
convertToVoronoiRegions in interface ITinNodeCollection
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinFilter (in)
pClippingPolygon - A reference to a com.esri.arcgis.geometry.IPolygon (in)
indexFieldName - The indexFieldName (in)
tagFieldName - The tagFieldName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZ

public double getZ(double x,
                   double y)
            throws IOException,
                   AutomationException
The surface Z = f(x,y).

Product Availability

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

Specified by:
getZ in interface IFunctionalSurface
Parameters:
x - The x (in)
y - The y (in)
Returns:
The z
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDomain

public IPolygon getDomain()
                   throws IOException,
                          AutomationException
The interpolation domain of the surface.

Description

Returns the Polygon Domain in which the FunctionalSurface is defined. The Domain is the region in which all (x, y) coordinates have a single corresponding Z value on the FunctionalSurface.

If the surface is a raster the returned polygon will be 2D. If it's a TIN it will be 3-D.

Remarks

Use IFunctionalSurface2::Domain to set the Domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDomain in interface IFunctionalSurface
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.

interpolateShape

public void interpolateShape(IGeometry pShape,
                             IGeometry[] ppOutShape,
                             Object pStepSize)
                      throws IOException,
                             AutomationException
Interpolates z values for a defined geometric shape.

Product Availability

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

Specified by:
interpolateShape in interface ISurface
Specified by:
interpolateShape in interface IFunctionalSurface3
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IGeometry (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.

interpolateAsMultiPatch

public void interpolateAsMultiPatch(IPolygon pShape,
                                    int maxStripSize,
                                    IMultiPatch[] ppMultiPatch)
                             throws IOException,
                                    AutomationException
Interpolate the input Polygon and output as a Multipatch.

Product Availability

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

Specified by:
interpolateAsMultiPatch in interface ITinSurface2
Specified by:
interpolateAsMultiPatch in interface IFunctionalSurface3
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IPolygon (in)
maxStripSize - The maxStripSize (in)
ppMultiPatch - A reference to a com.esri.arcgis.geometry.IMultiPatch (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getProjectedArea

public double getProjectedArea(double referenceHeight,
                               int type)
                        throws IOException,
                               AutomationException
Returns the projected area of the surface above or below an input z value.

Description

Returns the 2D projected/planar area of the surface relative to a specified reference plane.

The plane used in the calculation is horizontal and is therefore defined simply by height. You indicate the height and whether the area is to be calculated above or below it.

Note, the area is not the 3D volume between the plane and the surface. Rather, think of the intersection between the plane and the surface. If you outline the intersection you end up with one or more polygons. If you want the projected area above the plane, it's the summed area of these polygons. If you want the area below the plane the polygons represent holes inside an outer polygon, the interpolation zone. The area below the plane is that of the interpolation zone minus the holes.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getProjectedArea in interface ISurface
Parameters:
referenceHeight - The referenceHeight (in)
type - A com.esri.arcgis.geodatabase.esriPlaneReferenceType constant (in)
Returns:
The pArea
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSurfaceArea

public double getSurfaceArea(double referenceHeight,
                             int type)
                      throws IOException,
                             AutomationException
Returns the area measured on its surface above or below an input z value.

Description

Returns the 3D area of the surface relative to a specified reference plane. The area is measured along the slope of a surface, taking height into consideration. The surface area will always be greater than the 2D planimetric extent of the model (unless the surface is flat).

The plane used in the calculation is horizontal and is therefore defined simply by height. You indicate the height and whether the area is to be calculated above or below it.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSurfaceArea in interface ISurface
Parameters:
referenceHeight - The referenceHeight (in)
type - A com.esri.arcgis.geodatabase.esriPlaneReferenceType constant (in)
Returns:
The pArea
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getVolume

public double getVolume(double reference,
                        int type)
                 throws IOException,
                        AutomationException
Returns the volume above or below an input z value.

Description

Calculates the cubic space between the TIN surface and a horizontal plane located at the specified elevation.

If you choose to calculate volume above the plane, the area of consideration is that which is above the plane and the underside of the surface. If you choose below the plane the area of consideration is below the plane and the topside of the surface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getVolume in interface ISurface
Parameters:
reference - The reference (in)
type - A com.esri.arcgis.geodatabase.esriPlaneReferenceType constant (in)
Returns:
The pVolume
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryNormal

public void queryNormal(IPoint pLocation,
                        IVector3D pNormal)
                 throws IOException,
                        AutomationException
Returns the vector normal to the specified triangle.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getElevation

public double getElevation(IPoint pPoint)
                    throws IOException,
                           AutomationException
Returns the z value of the specified location.

Description

Returns the height for the specified location.

Bilinear interpolation is used on a raster surface. Linear interpolation is used on a TIN surface

A void value is returned if the query point does not fall within the interpolation zone of the surface. You can check for this case using ISurface.IsVoidZ on the returned value.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getElevation in interface ISurface
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The pElevation
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSlopeDegrees

public double getSlopeDegrees(IPoint pPoint)
                       throws IOException,
                              AutomationException
Returns the slope at the specified location in degrees.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSlopeDegrees in interface ISurface
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The pSlope
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSlopeRadians

public double getSlopeRadians(IPoint pPoint)
                       throws IOException,
                              AutomationException
Returns the slope at the specified location in radians.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSlopeRadians in interface ISurface
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The pSlope
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSlopePercent

public double getSlopePercent(IPoint pPoint)
                       throws IOException,
                              AutomationException
Returns the slope at the specified location in percent.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSlopePercent in interface ISurface
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The pSlope
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAspectDegrees

public double getAspectDegrees(IPoint pPoint)
                        throws IOException,
                               AutomationException
Returns the aspect at the specified location in degrees.

Description

Returns the aspect of the surface, in degrees, for the specified location. Aspect is defined as the direction of steepest slope. The possible range of values falls between 0.0 and 360. 0.0 represents a north facing slope with increasing values changing aspect in a clockwise direction. For example, 90 degrees is due east, 180 degrees due south, and 270 degrees due west.

For some operations it may be desirable to work with aspect in radians rather than degrees. Use AspectRadians for this.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getAspectDegrees in interface ISurface
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The pAspect
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAspectRadians

public double getAspectRadians(IPoint pPoint)
                        throws IOException,
                               AutomationException
Returns the aspect at the specified location in radians.

Description

Returns the aspect of the surface, in radians, for the specified location. Aspect is defined as the direction of steepest slope. The possible range of values falls between 0.0 and 6.283185. 0.0 represents a north facing slope with increasing values changing aspect in a clockwise direction. For example, 1.570796 radians is due east, 3.141593 radians due south, and 4.712389 radians due west.

For some operations it may be desirable to work with aspect in degrees rather than radians. Use AspectDegrees for this.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getAspectRadians in interface ISurface
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The pAspect
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interpolateShapeVertices

public void interpolateShapeVertices(IGeometry pShape,
                                     IGeometry[] ppOutShape)
                              throws IOException,
                                     AutomationException
Interpolates z values for a defined geometric shape at its vertices only.

Description

Takes an input polyline or polygon, interpolates heights for its vertices from the surface, and outputs the result as 3D geometry. A NULL pointer ('Nothing' in VB) is returned if any portion of the input feature falls outside the surface.

InterpolateShapeVertices will handle differences in spatial reference between the input shape and the surface. It will project (a copy of) the input geometry to match the surface for the sake of interpolation. It will then re-project the output geometry so it's the same as the input shape.

Notes:

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
interpolateShapeVertices in interface ISurface
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IGeometry (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.

getProfile

public void getProfile(IGeometry pShape,
                       IGeometry[] ppProfile,
                       Object pStepSize)
                throws IOException,
                       AutomationException
Returns a polyline with z values interpolated from the surface.

Description

Takes an input polyline or polygon, interpolates heights for it from the surface, and outputs the result as 3D geometry.

The input geometry should be polyline or polygon based. Portions of the input not falling within the interpolation zone of the surface will be clipped. A Null pointer ('Nothing' in Visual Basic) is returned when the input falls entirely off the surface.

If specified, the input geometry will be densified by the stepSize. This takes place before interpolating heights from the surface. The densification ensures no two vertices are spaced more than stepSize apart.

Notes:

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getProfile in interface ISurface
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
ppProfile - 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.

getLineOfSight

public void getLineOfSight(IPoint pObserver,
                           IPoint pTarget,
                           IPoint[] ppObstruction,
                           IPolyline[] ppVisibleLines,
                           IPolyline[] ppInvisibleLines,
                           boolean[] pbIsVisible,
                           boolean bApplyCurvature,
                           boolean bApplyRefraction,
                           Object pRefractionFactor)
                    throws IOException,
                           AutomationException
Computes the visibility of a line-of-sight from the observer to the target.

Description

Returns information about the line of sight between two points, an observer and target. Information returned includes whether the target is visible, the location of the first obstruction point if it isn't, and both the visible and invisible portions of the sight line along the surface.

Both the observer and target points need to be 3D. Any vertical offsets that need to be applied should already be accounted for in their Z values.

The obstruction point is set, as a 3D point, if the target is not visible from the observer. In this case the first intersection point, from the observer toward the target, between the surface and line of sight is used. The variable for the obstruction point need not reference an instantiated object. GetLineOfSight will automatically create the point. If the target is visible, there is no obstruction point and the returned object will be a Null pointer ('Nothing' in VB).

The visible and invisible polylines represent that which is seen from the observation point and that which is not. The variables used for these features need not reference instantiated objects. The function will create them. The line of sight may be entirely visible, entirely invisible, or a combination. These polylines will have Z values interpolated from the surface. If there is no output for one or the other of these polylines the corresponding pointer will be Null ('Nothing' in VB).

Set bApplyCurvature to True to have earth curvature taken into consideration. The default is False. It can be set to True if the surface has a defined projected coordinate system that includes defined ZUnits.

Set bApplyRefraction to True to have refraction of visible light taken into consideration. The default is False. It can be set to True if the surface has a defined projected coordinate system that includes defined ZUnits.

The default refraction factor is 0.13.

Notes:

This member should not be used in .NET. As a substitute, .NET developers must use IGeoDatabaseBridge2.GetLineOfSight.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getLineOfSight in interface ISurface
Parameters:
pObserver - A reference to a com.esri.arcgis.geometry.IPoint (in)
pTarget - A reference to a com.esri.arcgis.geometry.IPoint (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.

querySurfaceLength

public void querySurfaceLength(IGeometry pShape,
                               double[] pLength,
                               Object pStepSize)
                        throws IOException,
                               AutomationException
Returns the length of an input polyline measured on the surface.

Description

Returns the 3D length of the polyline by interpolating heights from the surface and calculating the sum of 3D distances between the vertices. Portions of the line falling outside the interpolation zone are excluded from the calculation.

The stepSize argument isn't very important when the surface is a TIN as the default sampling scheme of using input vertices and triangle edge intersections is sufficient to capture all surface information. If the surface is a raster it becomes more important. Generally, the smaller the interval the greater the detail (unless smaller than 1/2 cellsize), but at an increased cost in processing time and size of resulting geometry. The default stepSize for raster based surface is set equal to the cellsize.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
querySurfaceLength in interface ISurface
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
pLength - The pLength (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.

locate

public IPoint locate(IRay pRay,
                     int hint)
              throws IOException,
                     AutomationException
Returns the intersection of the query ray and the surface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
locate in interface ISurface
Parameters:
pRay - A reference to a com.esri.arcgis.geometry.IRay (in)
hint - The hint (in)
Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

locateAll

public IDoubleArray locateAll(IRay pRay,
                              int hint)
                       throws IOException,
                              AutomationException
Returns the distances of intersections of the query ray and the surface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
locateAll in interface ISurface
Parameters:
pRay - A reference to a com.esri.arcgis.geometry.IRay (in)
hint - The hint (in)
Returns:
A reference to a com.esri.arcgis.system.IDoubleArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getContour

public void getContour(IPoint pPoint,
                       IPolyline[] ppContour,
                       double[] pElevation)
                throws IOException,
                       AutomationException
Returns a countour passing through the queried point.

Description

Returns the contour and height corresponding to a specified query point.

If the query point falls outside the interpolation zone, or on an area of zero slope, a nil polyline (nothing) is returned along with a void value for the height. You can check for a void height using ISurface.IsVoidZ.

The IPolyline pointer that is passed need not be referencing an instantiated object. GetContour will instantiate the object itself.

The returned contour elevation will be NaN when the returned contour is empty.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getContour in interface ISurface
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
ppContour - A reference to a com.esri.arcgis.geometry.IPolyline (out: use single element array)
pElevation - The pElevation (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

contourList

public void contourList(IDoubleArray pBreaks,
                        IFeatureClass pFeatureClass,
                        String fieldName,
                        int digitsAfterDecimalPoint)
                 throws IOException,
                        AutomationException
Output a list of contours corresponding to the specified eleveation values.

Description

Creates contours, based on a list of heights, sending the ouput to a polyline based feature class.

The pBreaks height list contains the elevation values for which contours will be derived.

Contours will be written to the specified 2D polyline feature class. It should be an empty feature class and is typically created immediately before calling Contour.

Do not have WorkspaceEdit turned on as this member needs to add a field to the feature class, a scheme editing operation not supported by WorkspaceEdit.

fieldName is used to name the field added to the feature class to store each contour's height.

digitsAfterDecimalPoint controls the precision of the output height values. Use a value of 0 if you want heights recorded as integers, as is likely when both the rootHeight and interval values are integers.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
contourList in interface ISurface
Parameters:
pBreaks - A reference to a com.esri.arcgis.system.IDoubleArray (in)
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
fieldName - The fieldName (in)
digitsAfterDecimalPoint - The digitsAfterDecimalPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

contour

public void contour(double referenceContourHeight,
                    double interval,
                    IFeatureClass pFeatureClass,
                    String fieldName,
                    int digitsAfterDecimalPoint)
             throws IOException,
                    AutomationException
Output contours based on the specified root value and interval.

Description

Creates contours, based on a specified interval, sending the ouput to a polyline based feature class.

The rootHeight is the height from which potential contours are generated, both above and below, at the specified interval. It does not mean minimum contour. Rather it permits you to have contours that aren't based on 0.0. For example, if you want a 5 unit contour interval, but need them at heights of -8, -3, 2, 7, and 12 you'd provide a rootHeight of -3 or 2, or even -13. Note the root height need not be a height within the surface z range. You can use any value but only those contours that fall within the surface's z range will be created. The default rootHeight is 0.0.

The interval defines at what frequency, in height, the contours will be generated. Smaller intervals produce more contours.

Contours will be written to the specified 2D polyline feature class. It should be an empty feature class and is typically created immediately before calling Contour.

Do not have WorkspaceEdit turned on as this member needs to add a field to the feature class, a scheme editing operation not supported by WorkspaceEdit.

fieldHeight is used to name the field added to the feature class to store each contour's height.

digitsAfterDecimalPoint controls the precision of the output height values. Use a value of 0 if you want heights recorded as integers, as is likely when both the rootHeight and interval values are integers.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
contour in interface ISurface
Parameters:
referenceContourHeight - The referenceContourHeight (in)
interval - The interval (in)
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
fieldName - The fieldName (in)
digitsAfterDecimalPoint - The digitsAfterDecimalPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

asPolygons

public void asPolygons(IFeatureClass pFeatureClass,
                       int type,
                       IDoubleArray pClassBreaks,
                       ILongArray pClassCodes,
                       Object fieldName)
                throws IOException,
                       AutomationException
Converts the surface to a polygon feature class representing slope or aspect.

Description

Converts the surface into a 2D polygon based feature class representing areas classified by slope or aspect.

Polygons will be written to the specified 2D polygon feature class. It should be an empty feature class and is typically created immediately before calling AsPolygons.

Do not have WorkspaceEdit turned on as this member adds fields to the feature class. The adding of fields is a schema editing operation not supported by WorkspaceEdit.

The esriSurfaceConversionType enumeration specifies whether the surface is classified on slope or aspect.

The pClassBreaks parameter is an array of doubles that defines the classification. Let's say there were 4 values placed in it: 1, 5, 10, and 15. The classification would result in 5 classes defined as follows:


 1:  <= 1

 5:  >  1 and <= 5

10:  >  5 and <= 10

15:  > 10 and <= 15

     > 15

The pClassCodes parameter is an array of long integers used to specify a class code for each class. You need to specify one more code than the number of class breaks to capture the last implied class (based on example the '>15' class). This code is written to the output feature class attribute table. The ClassCodes array can be 'Nothing' in which case the codes are automatically assigned 1..n.

When the esriSurfaceConversionType is set to esriDegreeAspect, the output code will automatically be set to -1 for polygons with undefined aspect (flat areas). This code can be overridden by providing it as an additional value at the end of the pClassCodes array. The method will know to use it because the code array will be one larger than necessary to capture the classification.

The optional FieldName argument is used to specify a name for the class code field. Defaults are provided if not specified. When esriSurfaceConversionType is esriDegreeAspect the default field name is 'AspectCode'. For both slope options it will be 'SlopeCode'. The field name is not to exceed 10 characters if writing to a shapefile as this is a dBase file limit.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
asPolygons in interface ISurface
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
type - A com.esri.arcgis.geodatabase.esriSurfaceConversionType constant (in)
pClassBreaks - A reference to a com.esri.arcgis.system.IDoubleArray (in)
pClassCodes - A reference to a com.esri.arcgis.system.ILongArray (in)
fieldName - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSteepestPath

public IPolyline getSteepestPath(IPoint pPoint)
                          throws IOException,
                                 AutomationException
Returns the steepest path downhill from the specified point.

Description

Returns the steepest downhill path, the direction of steepest slope, from the specified query point. It will start at the query point and end in a pit or the edge of the surface. The returned polyline will be 3D.

The resulting polyline pointer will be set to Nil (nothing) if the query point falls outside the surface or on a flat area.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

queryPixelBlock

public void queryPixelBlock(double xOrigin,
                            double yOrigin,
                            double xPixelSize,
                            double yPixelSize,
                            int type,
                            Object valueForNoData,
                            Object block)
                     throws IOException,
                            AutomationException
Derives slope, aspect, hillshade, or elevation from the input surface and writes the result to the provided PixelBlock.

Description

xOrigin and yOrigin represent the map coordinates of the upper left cell center of the output pixel block.

xPixelSize and yPixelSize are the horizontal and vertical dimensions of the cells in the output pixel block.

type is an esriRasterizationType enumeration that indicates what type of surface information is written; elevation or a derivative.

valueForNodata is the value written into the pixel block for areas of NoData. It's a variant that must be set to the the same numeric type as the target raster (see rstPixelType). It should be the same value and variant type used as when constructing/defining the output raster via IRasterProps.NoDataValue.

block is a pointer to pixel data used for writing output values. It should be retrieved from a pixel block from the output raster via IPixelBlock3.PixelDataByRef.

Notes:

This member should not be used in .NET. As a substitute, .NET developers must use IGeoDatabaseBridge2.QueryPixelBlock.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryPixelBlock in interface ISurface
Parameters:
xOrigin - The xOrigin (in)
yOrigin - The yOrigin (in)
xPixelSize - The xPixelSize (in)
yPixelSize - The yPixelSize (in)
type - A com.esri.arcgis.geodatabase.esriRasterizationType constant (in)
valueForNoData - A Variant (in)
block - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRasterInterpolationMethod

public void setRasterInterpolationMethod(int pType)
                                  throws IOException,
                                         AutomationException
The elevation interpolation method for rasterization.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setRasterInterpolationMethod in interface ITinSurface
Parameters:
pType - A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRasterInterpolationMethod

public int getRasterInterpolationMethod()
                                 throws IOException,
                                        AutomationException
The elevation interpolation method for rasterization.

Description

The interpolation method used when converting a TIN to a raster using ITinSurface.QueryPixelBlock.

esriSurfaceInterpolationType can be set to either esriLinearInterpolation or esriNaturalNeighborInterpolation.

Linear interpolation considers each triangle as a flat plane. For each cell center in the output raster the encompassing triangle is found and the height for the location on the plane is determined.

Natural neighbor interpolation uses an area based weighting scheme to calculate height for output raster cell centers and produces smoother results than linear interpolation. The closest TIN nodes in all directions found for each raster cell center are used in the calculation. Hard breaklines present in the TIN will influence results as the surface definition is not continuously smooth across them with this interpolator.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getRasterInterpolationMethod in interface ITinSurface
Returns:
A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSunPosition

public void setSunPosition(_WKSPointZ pPosition)
                    throws IOException,
                           AutomationException
The vector indicating the direction of the light source relative to the scene.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setSunPosition in interface ITinSurface
Parameters:
pPosition - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSunPosition

public _WKSPointZ getSunPosition()
                          throws IOException,
                                 AutomationException
The vector indicating the direction of the light source relative to the scene.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSunPosition in interface ITinSurface
Returns:
A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getIntensity

public double getIntensity(_WKSPointZ pPi,
                           _WKSPointZ pPj,
                           _WKSPointZ pPk)
                    throws IOException,
                           AutomationException
Returns the hillshade brightness value of the plane defined by the three points.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getIntensity in interface ITinSurface
Parameters:
pPi - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
pPj - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
pPk - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
Returns:
The pIntensity
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSurfaceElement

public ITinSurfaceElement getSurfaceElement(IPoint pPoint)
                                     throws IOException,
                                            AutomationException
Returns the surface element at the specified location.

Description

A surface element contains information about the TIN and the surface it defines specific to a given point position. It maintains the surface attributes of elevation, slope, and aspect, as well as the the index and tag value of the containing triangle, and the index and tag value of the closest node in the containing triangle.

The element is constructed from the triangle containing the query point. If the query point falls on a triangle edge, one of the triangles on either side is picked randomly by the software. If the query point falls on a TIN node the triangle used is picked randomnly from those incident to the node.

A Nil pointer (nothing) is returned when the query point falls outside the interpolation zone.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSurfaceElement in interface ITinSurface
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITinSurfaceElement
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPartialVolumeAndArea

public void getPartialVolumeAndArea(double referenceHeight,
                                    int type,
                                    IEnumTinTriangle pTriangles,
                                    Object[] pVolume,
                                    Object[] pSurfaceArea,
                                    Object[] pProjectedArea)
                             throws IOException,
                                    AutomationException
Returns portion of the TIN's volume above or below an input z value.

Description

Calculates projected area, surface area, and/or volume relative to a given reference height and collection of triangles.

reference is the height against which area and volume statistics will be gathered. Height is used to define a horizontal plane. Area and volume is calculated per triangle and the values are summed for all triangles to produce the results.

esriPlaneReferenceType can be set to esriPlaneReferenceAbove or esriPlaneReferenceBelow. When set to esriPlaneReferenceAbove projected area and surface area is calculated for the portion of each triangle that falls above the plane. Triangles, or portions of triangles, that fall below the plane are excluded. Volume is calculated for the cubic area between the top of the reference plane and the underside of triangles above it. When the plane type is set to esriPlaneReferenceBelow the opposite action takes place. Area is calculated for triangles, or portions of triangles, that are below the plane. Volume is the cubic area between the underside of the plane and the tops of triangles that fall below it.

pTriangles is a triangle enumerator that determines which triangles are involved in the calculation. This enables analysis on a sub-portion of the TIN because only triangles passed by the enumerator are used. Alternately, if you want to perform the operation on the entire TIN use ISurface.GetProjectedArea, ISurface.GetSurfaceArea, or ISurface.GetVolume.

Volume, SurfaceArea, and ProjectedArea are optional double variables that are the output results. Only specify the ones you're interested in to avoid unnecessary computation.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getPartialVolumeAndArea in interface ITinSurface
Parameters:
referenceHeight - The referenceHeight (in)
type - A com.esri.arcgis.geodatabase.esriPlaneReferenceType constant (in)
pTriangles - A reference to a com.esri.arcgis.geodatabase.IEnumTinTriangle (in)
pVolume - A Variant (in/out: use single element array, optional, pass single element of null if not required)
pSurfaceArea - A Variant (in/out: use single element array, optional, pass single element of null if not required)
pProjectedArea - A Variant (in/out: use single element array, optional, pass single element of null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

convertToMultiPatches

public void convertToMultiPatches(IFeatureClass pFeatureClass,
                                  int maxPatchSize,
                                  int maxStripSize)
                           throws IOException,
                                  AutomationException
Convert TIN into Multipatches.

Description

Converts the TIN to a feature class comprised of one or more multipatches. To perform this the TIN is turned into triangle strips that are used as parts in output multipatches.

pFeatureClass is the target. It needs to be an existing, empty, multipatch based FeatureClass.

maxPatchSize is the maximum number of triangle strips to use as parts for each output multipatch.

maxStripSize is the maximum number of vertices to use in each triangle strip.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
convertToMultiPatches in interface ITinSurface2
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
maxPatchSize - The maxPatchSize (in)
maxStripSize - The maxStripSize (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

decimateNodes

public void decimateNodes(IEnvelope pAreaOfInterest,
                          double zTolerance,
                          boolean bCopyBreakline,
                          Object pMaxRemainingNodeCount,
                          ITin[] ppNewTin,
                          Object[] pbToleranceAchieved)
                   throws IOException,
                          AutomationException
Outputs a new TIN with reduced number of nodes.

Description

Produces an output TIN that is constructed by removing nodes from an input TIN. The resulting TIN's linearly interpolated surface is within a user specified vertical tolerance of the input.

pAreaOfInterest is an Envelope that constrains where nodes are removed. This can be a NULL pointer ('Nothing' in VB) in which case the entire data area of the input TIN is used.

zTolerance is the maximum amount of height the output TIN is allowed to deviate fom the input. Specify a value in units equal to the Z units of the input.

bCopyBreaklines is an optional boolean parameter, which defaults to FALSE, used to indicate whether breaklines should be copied from the input TIN to the output. These are not generalized in any way. Note, this parameter is in reference to breaklines on the inside of the TIN. The data area boundary is always copied into the output TIN as a breakline, regardless of the setting of this parameter, in order to properly enforce the interpolation zone.

maxRemainingNodeCount is an estimate of the maximum number of nodes allowed in the output TIN. The decimation process will stop when the output TIN has exceeded this count. If this happens, the vertical tolerance has not been achieved and the output parameter bToleranceAchieved will be set to FALSE. By default, this parameter is not set, there is no maximum limit of nodes.

pNewTin is the output TIN. Pass a compatible TIN interface pointer (e.g. ITin) to receive the object.

bToleranceAchieved is an optional output boolean parameter. It's set to TRUE if the zTolerance is achieved or FALSE if not because a specified maxRemainingNodeCount was reached.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
decimateNodes in interface ITinSurface2
Parameters:
pAreaOfInterest - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
zTolerance - The zTolerance (in)
bCopyBreakline - The bCopyBreakline (in)
pMaxRemainingNodeCount - A Variant (in)
ppNewTin - A reference to a com.esri.arcgis.geodatabase.ITin (out: use single element array)
pbToleranceAchieved - A Variant (in/out: use single element array, optional, pass single element of null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

decimateNodesByCount

public void decimateNodesByCount(IEnvelope pAreaOfInterest,
                                 int maxRemainingNodeCount,
                                 boolean bCopyBreakline,
                                 ITin[] ppNewTin)
                          throws IOException,
                                 AutomationException
Outputs a new TIN with reduced number of nodes.

Description

Produces an output TIN that is constructed by removing nodes from an input TIN.

pAreaOfInterest is an Envelope that constrains where nodes are removed. This can be a NULL pointer ('Nothing' in VB) in which case the entire data area of the input TIN is used.

maxRemainingNodeCount is an estimate of the maximum number of nodes allowed in the output TIN. The decimation process will stop when the output TIN has exceeded this count.

bCopyBreaklines is an optional boolean parameter, which defaults to FALSE, used to indicate whether breaklines should be copied from the input TIN to the output. These are not generalized in any way. Note, this parameter is in reference to breaklines on the inside of the TIN. The data area boundary is always copied into the output TIN as a breakline, regardless of the setting of this parameter, in order to properly enforce the interpolation zone.

pNewTin is the output TIN. Pass a compatible TIN interface pointer (e.g. ITin) to receive the object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
decimateNodesByCount in interface ITinSurface2
Parameters:
pAreaOfInterest - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
maxRemainingNodeCount - The maxRemainingNodeCount (in)
bCopyBreakline - The bCopyBreakline (in)
ppNewTin - A reference to a com.esri.arcgis.geodatabase.ITin (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

locateMultiple

public IMultipoint locateMultiple(IRay pRay)
                           throws IOException,
                                  AutomationException
Returns the intersections of the query ray and the surface.

Description

Returns the intersection points between a 3D ray and the surface.

The returned multipoint will contain 0..n points depending on the number of intersections between the ray and the surface.

Notes:

Consider using ITinSurface3.QueryLocate or ITinSurface3.QueryLocateWithinDistance when inside a loop, for the sake of efficiency, since those methods allow you to reuse output point and multipoint objects whereas this method always creates new ones.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
locateMultiple in interface ITinSurface2
Parameters:
pRay - A reference to a com.esri.arcgis.geometry.IRay (in)
Returns:
A reference to a com.esri.arcgis.geometry.IMultipoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setInterpolationMethod

public void setInterpolationMethod(int pType)
                            throws IOException,
                                   AutomationException
The elevation interpolation method.

Product Availability

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

Specified by:
setInterpolationMethod in interface ITinSurface3
Parameters:
pType - A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getInterpolationMethod

public int getInterpolationMethod()
                           throws IOException,
                                  AutomationException
The elevation interpolation method.

Description

The method of interpolation used to obtain heights for points, lines, and polygons. The default is linear. Applies to ITinSurface.GetProfile as well as members prefaced by 'Interpolate' in the ITinSurface, ITinSurface2, and ITinSurface3 interfaces.

The value of this property should be saved before, and reset after, calling any of the applicable interpolation functions.

Product Availability

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

Specified by:
getInterpolationMethod in interface ITinSurface3
Returns:
A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interpolateZ

public double interpolateZ(double x,
                           double y)
                    throws IOException,
                           AutomationException
Interpolate the z-coordinate of the specified location.

Description

Interpolates a height for the given XY. The method of interpolation used is defined by the ITinSurface3.InterpolationMethod property.

Product Availability

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

Specified by:
interpolateZ in interface ITinSurface3
Parameters:
x - The x (in)
y - The y (in)
Returns:
The pZ
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getVolumeAndArea

public void getVolumeAndArea(IGeometry pAOI,
                             double referenceHeight,
                             int type,
                             boolean[] pbIsOutsideDataArea,
                             Object[] pVolume,
                             Object[] pSurfaceArea,
                             Object[] pProjectedArea)
                      throws IOException,
                             AutomationException
Returns TIN's volume/area above or below an input z value.

Description

Calculates volume, area, and surface area from the TIN. Volume is the cubic area between a reference plane and the TIN. The area values are based on the portions of the TIN which are above or below a reference plane. Surface area is measured along the slope of a surface and is therefore greater than the 2D, projected area.

pAOI is the area of interest. It can be NULL, an envelope, or a polygon. If it's NULL the calculation will be based on the entire data area of the TIN. For envelopes and polygons the calculation is constrained to be inside their extent.

referenceHeight is a double that indicates the height of a horizontal plane from which calculations will be based.

esriReferencePlaneType controls on which side of the reference plane the calculation is made. If you choose to calculate volume above the plane, the cubic area of consideration is that which is above the plane and the underside of the surface. If you choose below the plane the area of consideration is below the plane and the topside of the surface. If you choose to calculate one of the area properties the returned values will be based on the those portions of the TIN which are above or below the reference plane.

pTrackCancel is a reference to a CancelTracker to support progress reporting and the ability to halt the process. To bypass this feature pass a NULL pointer.

pblsOutsideDataArea is an output boolean that will be set to TRUE if pAOI falls outside the horizontal data extent of the TIN. If TRUE the resulting volume and area are really NoData even though they will be set to 0.0. Note, it's possible for those values to be 0.0 when pAOI is inside the TIN and these are valid results. This parameter is used to distinguish between the two cases.

pVolume, pSurfaceArea, and pProjectedArea are output results. These are optional. If you're not interested in one of these parameters don't specify it and time will not be spent in its calculation.

Notes:

The TIN must not be in edit mode when calling this method. An error will be returned if it is.

Product Availability

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

Specified by:
getVolumeAndArea in interface ITinSurface3
Parameters:
pAOI - A reference to a com.esri.arcgis.geometry.IGeometry (in)
referenceHeight - The referenceHeight (in)
type - A com.esri.arcgis.geodatabase.esriPlaneReferenceType constant (in)
pbIsOutsideDataArea - The pbIsOutsideDataArea (out: use single element array)
pVolume - A Variant (in/out: use single element array, optional, pass single element of null if not required)
pSurfaceArea - A Variant (in/out: use single element array, optional, pass single element of null if not required)
pProjectedArea - A Variant (in/out: use single element array, optional, pass single element of null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

intersect

public void intersect(ITinSurface pReferenceSurface,
                      IGeometry pAOI,
                      IFeatureClass pOutFeatureClass,
                      String volumeFieldName,
                      String surfaceAreaFieldName,
                      String codeFieldName)
               throws IOException,
                      AutomationException
Intersect with a reference TIN.

Description

Calculates the difference between two TINs. Outputs 2D polygons that divide space based on whether the source surface is above, coincident to, or below the reference surface. Boundaries of the polygons represent where the two surfaces intersect in 3D space. Each polygon is assigned a numeric code to indicate its relation: -1 is assigned to polygons where the source surface is below the reference surface, 0 to polygons where it's coincident, and 1 to polygons where it's above. Volume, area, and surface area are also calculated for each polygon. Volume represents the cubic space between the two surfaces. Area is the planimetric, or projected, area. Surface area takes slope into account and is that of the source surface.

pReferenceSurface is the other TIN being used to compare the source surface against. Above, coincident, and below assessments on the source surface are made relative to the reference surface.

pOutFeatureClass is where output features will be written. It needs to be a 2D polygon feature class.

volumeFieldName is the name of the field where volume is written. The field type should be a double.

surfaceAreaFieldName is the name of the field where surface area is written. The field type should be a double.

codeFieldName is the name of the field where the verical relation code is written.

Notes:
Surfaces must have some overlap in XY extent.

While this method will add fields if they don't already exist it's best to add them first. This gives you the opportunity to place the feature class into LoadOnly mode (if not a shapefile) before calling the method. It's not recommended for anything to be adding fields while in LoadOnly mode.

Both TINs must not be in edit mode when calling this method.

Product Availability

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

Specified by:
intersect in interface ITinSurface3
Parameters:
pReferenceSurface - A reference to a com.esri.arcgis.geodatabase.ITinSurface (in)
pAOI - A reference to a com.esri.arcgis.geometry.IGeometry (in)
pOutFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
volumeFieldName - The volumeFieldName (in)
surfaceAreaFieldName - The surfaceAreaFieldName (in)
codeFieldName - The codeFieldName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTriangleNormal

public void queryTriangleNormal(int triangle,
                                IVector3D pNormal)
                         throws IOException,
                                AutomationException
Returns the vector normal to the specified triangle.

Description

Returns the surface normal for the specified triangle. This is a vector orthogonal to the plane of the triangle.

Triangle is the triangle index.

pNormal is a vector whose component properties are to be set. It must be instantiated before calling the method. The magnitude of the result is not normalized, it is relative to the size of the triangle. If you need it normalized call IVector3D.Normalize.

Product Availability

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

Specified by:
queryTriangleNormal in interface ITinSurface3
Parameters:
triangle - The triangle (in)
pNormal - A reference to a com.esri.arcgis.geometry.IVector3D (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryLocate

public void queryLocate(IRay pRay,
                        int hint,
                        IPoint pLocation)
                 throws IOException,
                        AutomationException
Returns the first intersection of the query ray and the TIN.

Description

Returns the intersection point between a ray and the TIN.

pRay is the input 3D ray the calculation will be based on.

hint is the index of the triangle intersected by the ray. If you don't know the triangle provide a -1 for the hint. If you know which triangle is intersected then provide its index and the method will be faster, it won't need to search for it, and will simply intersect the ray with the plane of the specified triangle.

pLocation is the point of intersection. You must provide an instantiated point object. The method will populate its coordinates. If the ray does not intersect the TIN the point will be set empty. Check for this via IGeometry.IsEmpty.

Notes:

Product Availability

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

Specified by:
queryLocate in interface ITinSurface3
Parameters:
pRay - A reference to a com.esri.arcgis.geometry.IRay (in)
hint - The hint (in)
pLocation - 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.

queryLocateWithinDistance

public void queryLocateWithinDistance(IRay pRay,
                                      double maxDistance,
                                      IGeometry pLocations)
                               throws IOException,
                                      AutomationException
Returns the intersections of the query ray and the TIN.

Description

Finds the points of intersection between a ray and the surface. Can return either the first point of intersection or all intersections. The search for intersections can also be constrained by distance.

pRay is the ray for which intersections will be calculated.

maxDistance is the 2D search distance along the ray that acts as a constraint. No intersections will be returned beyond this distance. Pass a negative value to turn the constraint off and search as far as possible (i.e., to the edge of the surface).

pLocations is either a point or multipoint. This must be instantiated before calling the method. Pass a point if you want only the first intersction. Use a multipoint to collect multiple intersections. If multiple intersections are found they will be placed in sorted order from first to last in the multipoint. If there is no intersection, either because the ray does not intersect the surface or doesn't intersect within the maxDistance, the output will be set to empty.

Notes:

Product Availability

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

Specified by:
queryLocateWithinDistance in interface ITinSurface3
Parameters:
pRay - A reference to a com.esri.arcgis.geometry.IRay (in)
maxDistance - The maxDistance (in)
pLocations - 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.

extract

public ITin extract(IPolygon pBoundary,
                    int boundaryEdgeType,
                    int boundaryEdgeValue,
                    boolean bConstrainedDelaunay,
                    boolean bAllowEdgeSwapping)
             throws IOException,
                    AutomationException
Extract part of the TIN.

Description

Extracts a subarea from the source TIN into a new TIN.

pBoundary is a polygon that defines the area to be extracted. This polygon will be profiled using linear interpolation on the source TIN. This profiled polygon, along with the data inside it from the source TIN, will then be used to construct the output TIN. If there's no overlap between the data area of the source TIN and the polygon the result will be NULL.

boundaryEdgeType is an esriTinEdgeType used to control whether the boundary polygon is enforced using hard, soft, or regular edges.

boundaryEdgeValue is the tag value associated with the boundary edges. Set this to 0 if you're not interested in using specific edge tag values.

bConstrainedDelaunay is used to control the type of output TIN when the input is delaunay conforming. In this case you have the option of keeping the result conforming or converting it to constrained. The benefit of having it constrained is you get a best fit match between input and output surface without the need to add densification points. If the input is already constrained this property has no effect; the result will be constrained.

Notes:

Product Availability

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

Specified by:
extract in interface ITinSurface3
Parameters:
pBoundary - A reference to a com.esri.arcgis.geometry.IPolygon (in)
boundaryEdgeType - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (in)
boundaryEdgeValue - The boundaryEdgeValue (in)
bConstrainedDelaunay - The bConstrainedDelaunay (in)
bAllowEdgeSwapping - The bAllowEdgeSwapping (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.

setProfileWeedTolerance

public void setProfileWeedTolerance(double pTolerance)
                             throws IOException,
                                    AutomationException
The profile weeding tolerance.

Product Availability

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

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

getProfileWeedTolerance

public double getProfileWeedTolerance()
                               throws IOException,
                                      AutomationException
The profile weeding tolerance.

Description

The ProfileWeedTolerance is used as a 2D distance filter on the vertices of output polylines and polygons from methods that perform interpolation and profiling (e.g., InterpolateShape, GetProfile, GetLineOfSight). As a result, no two consecutive vertices along the paths of the resulting geometry will be closer than this distance.

Weeding is most applicable when using linear interpolation. This because the 'natural densification' used by linear interpolation, the insertion of vertices at triangle edge intersections, can result in very closely spaced vertices at certain locations.

If the intention of setting ProfileWeedTolerance is for temporary use, then be sure to save its current value before changing it and reset it back when finished.

To turn off weeding set ProfileWeedTolerance to 0.

Product Availability

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

Specified by:
getProfileWeedTolerance in interface ITinSurface3
Returns:
The pTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEditable

public boolean isEditable()
                   throws IOException,
                          AutomationException
Indicates if the TIN can be edited.

Description

This member indicates whether the TIN can be placed in edit mode. If it returns False it means the TIN is write protected and a call to ITinEdit.StartEditing will also return False because it will fail to place the TIN in edit mode.

Due to limitations with the Windows operating system and networks a TIN located across a network may appear to be writeable when it isn't. Because of this, IsEditable may incorrectly return True. If you attempt ITinEdit.StartEditing because of this it will detect the problem, as it tries to open the TIN for write access, and will return False.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isEditable in interface ITinEdit
Returns:
The pbIsEditable
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isInEditMode

public boolean isInEditMode()
                     throws IOException,
                            AutomationException
Indicates if the TIN is in edit mode.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isInEditMode in interface ITinEdit
Returns:
The pbIsInEditMode
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public boolean isDirty()
                throws IOException,
                       AutomationException
Indicates if the TIN is dirty.

Description

Returns True if TIN is in edit mode.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

startEditing

public boolean startEditing()
                     throws IOException,
                            AutomationException
Initiates edit mode.

Description

StartEditing places the TIN in edit mode. It must be called before any edits can take place. The exception is after using ITinEdit.InitNew which automatically places the TIN in edit mode.

A False value is returned if StartEditing is not successful at opening the TIN for write access. The likely cause for failure would be file permissions.

See also ITinFeatureEdit.StartInMemoryEditing

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
startEditing in interface ITinEdit
Returns:
The pbIsSuccessful
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

stopEditing

public boolean stopEditing(boolean bSaveEdits)
                    throws IOException,
                           AutomationException
Terminates edit mode, optionally saving changes to disk.

Description

StopEditing is used to take the TIN out of edit mode. The SaveEdits argument indicates whether edits should be committed to disk.

If SaveEdits is False the TIN will be returned to the state previous to this edit session. All edits will be undone.

If SaveEdits is True edits from this session will be committed to disk. The TIN must already exist on disk before using this option though. If the TIN is new and has yet to be saved to disk use ITinEdit.SaveAs first, then call StopEditing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
stopEditing in interface ITinEdit
Parameters:
bSaveEdits - The bSaveEdits (in)
Returns:
The pbIsSuccessful
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

initNew

public void initNew(IEnvelope pExtent)
             throws IOException,
                    AutomationException
Initializes a new TIN using the passed extent to define the data area.

Description

The envelope, pExtent, defines the intended 2D domain of the TIN. Data subsequently added to the triangulation should fall within this extent. Four software synthesized nodes (called super nodes) will be used to form an initial triangulation. These will be positioned outside the declared extent. You should be fairly accurate with the extent so the positions of the super nodes is estimated correctly. Providing an unnecessarily large extent would result in the nodes being placed farther away than necessary from the data which can hurt performance and increase the likelihood of precision related issues.

If the envelope has a spatial reference it will be copied and assigned to the TIN. If there is a spatial reference it should have a Z domain/resolution defined. This is particularly true if you will be doing anything with the TIN other than simply adding features to it and saving to disk. Some operations on TIN use the geometry topology engine and these require a z domain when z-aware geometry is involved. Some spatial references are not supported by the prj file saved with a TIN for the sake of compatibility with workstation Arc/INFO. If a spatial reference is used that's not supported by workstation Arc/INFO a call to ITinEdit.SaveAs will exclude the prj file.

InitNew will automatically place the TIN in edit mode as there is an assumption that edits are about to take place.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

save

public void save()
          throws IOException,
                 AutomationException
Saves edits to disk.

Description

Save will persist all edits back to the current TIN. If you want to preserve the original TIN, saving edits to a copy, use SaveAs.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
save in interface ITinEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addWKSPointZ

public int addWKSPointZ(_WKSPointZ pPoint,
                        int vlue)
                 throws IOException,
                        AutomationException
Adds a well known structure point to the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addWKSPointZ in interface ITinEdit
Parameters:
pPoint - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
vlue - The vlue (in)
Returns:
The pNodeIndex
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addPointZ

public int addPointZ(IPoint pPoint,
                     int tagValue)
              throws IOException,
                     AutomationException
Adds a 3D point to the TIN.

Description

Use 0 for the tag value if you're not interested in it.

The index returned will be one larger than the previous node count
if the point is succesfully added. It will be equal to the value of an existing node if snapped to it.

This function should not be called if the geometry IsEmpty.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addPointZ in interface ITinEdit
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
tagValue - The tagValue (in)
Returns:
The pNodeIndex
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addShapeZ

public void addShapeZ(IGeometry pShape,
                      int type,
                      int tagValue,
                      Object pbUseShapeZ)
               throws IOException,
                      AutomationException
Adds a 3D shape to the TIN.

Description

The input geometry, pShape, needs to have Z values defined for all vertices.

The input shape geometry can be point, multipoint, polyline, or polygon.

The esriTinSurfaceType enumeration indicates how the input geometry is to be incorporated into the TIN. The surface types which are valid depend on the type of geometry being entered. Points can only be entered as mass points. Polylines can be entered as hard or soft breakline types or have their vertices entered as mass points. Polygons can be entered as polygon, line, or mass surface types.

Tags are assigned using the TagValue argument. If the surface feature type is set to mass points the tag is assigned to the resulting TIN nodes. If the surface type is polygonal the tags are assigned to triangles. A value of 0 will result in no tag assignment.

Vertex M values can be substituted for Z's through use of the optional UseShapeZ argument. Its default value is True, causing Z's to be used. If M's are desired set it to False.

This function should not be called if the geometry IsEmpty.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addShapeZ in interface ITinEdit
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
type - A com.esri.arcgis.geodatabase.esriTinSurfaceType constant (in)
tagValue - The tagValue (in)
pbUseShapeZ - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addShape

public void addShape(IGeometry pShape,
                     int type,
                     int tagValue,
                     Object pZ)
              throws IOException,
                     AutomationException
Adds a 2D shape to the TIN.

Description

Adds a 2D point, multipoint, polyline, or polygon to the TIN.

The esriTinSurfaceType enumeration indicates how the input geometry is to be incorporated into the TIN. The surface types which are valid depend on the type of geometry being entered. Points can only be entered as mass points. Polylines can be entered as hard or soft breakline types or have their vertices entered as mass points. Polygons can be entered as polygon, line, or mass surface types.

Tags are assigned using the TagValue argument. If the surface feature type is set to mass points the tag is assigned to the resulting TIN nodes. If the surface type is polygonal the tags are assigned to triangles. A value of 0 will result in no tag assignment.

Z values for the shape's vertices are interpolated from the existing state of the TIN before the shape is inserted. The assumption is the existing TIN already has data with Z's. Typically 2D shapes are added to a TIN after all available 3D shapes.

You can use the optional Z argument to provide a constant height for the shape. In this case no interpolation for the shape takes place.

This function should not be called if the geometry IsEmpty.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addShape in interface ITinEdit
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
type - A com.esri.arcgis.geodatabase.esriTinSurfaceType constant (in)
tagValue - The tagValue (in)
pZ - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addFromFeatureClass

public void addFromFeatureClass(IFeatureClass pFeatureClass,
                                IQueryFilter pFilter,
                                IField pHeightField,
                                IField pTagValueField,
                                int type,
                                Object pbUseShapeZ)
                         throws IOException,
                                AutomationException
Adds features from a feature class to the TIN.

Description

Adds shapes from the input featureclass into the triangulation.

FeatureClass provides the input geometry to be added to the TIN.

Filter is a QueryFilter that may be used to select a subset of features. This can be set to NULL ('Nothing' in VB) if all the shapes in the featureclass are to be used.

HeightField is a Field that indicates where the heights for the shapes come from. If the shape geometry is 3D, and that's what you want to use, pass the Shape field of the featureclass. Otherwise, a numeric field can be used. If the heights for the features should be interpolated from the existing state of the TIN, assuming some features with heights had been previously added, you can pass a NULL pointer ('Nothing' in VB) to indicate the features do not have Z values of their own.

TagValueField is a numeric field used to assign tags to corresponding elements in the TIN. Tag values are signed long integers that are assigned to nodes, edges, or triangles. They have user defined meaning (e.g. node accuracy, land cover, etc.). Node and triangle tags are saved to disk with the TIN. At present, edge tags are only stored in memory and are lost when the TIN is saved. If no tag values are to be used pass a NULL pointer ('Nothing' in VB).

Type is an esriTinSurfaceType. This indicates how the input feature geometry is incorporated into the triangulation.

UseShapeZ is a boolean used to indicate whether geometry Z's or M's should be used in the case the input geometry has both and the height field is set the the shape field. The default is TRUE, the Z's will be used rather than the M's. Set this to FALSE if the M's should be used for height.

Notes:

If records containing NULL shapes or numeric fields with NULL Z values are encountered the triangulation process will skip them and continue. If this happens AddFromFeatureClass will raise the error E_TIN_NULL_FIELD_VALUE when it's finished. Therefore, all valid data in the feature class gets triangulated but a note is made, in the form of a specific error, to let the caller know one or more records were skipped. The caller then has the choice of using the resulting TIN or not.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addFromFeatureClass in interface ITinEdit
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
pHeightField - A reference to a com.esri.arcgis.geodatabase.IField (in)
pTagValueField - A reference to a com.esri.arcgis.geodatabase.IField (in)
type - A com.esri.arcgis.geodatabase.esriTinSurfaceType constant (in)
pbUseShapeZ - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addFromFeatureCursor

public void addFromFeatureCursor(IFeatureCursor pCursor,
                                 IField pHeightField,
                                 IField pTagValueField,
                                 int type,
                                 Object pbUseShapeZ)
                          throws IOException,
                                 AutomationException
Adds features from a feature cursor to the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addFromFeatureCursor in interface ITinEdit
Parameters:
pCursor - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)
pHeightField - A reference to a com.esri.arcgis.geodatabase.IField (in)
pTagValueField - A reference to a com.esri.arcgis.geodatabase.IField (in)
type - A com.esri.arcgis.geodatabase.esriTinSurfaceType constant (in)
pbUseShapeZ - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addFromPixelBlock

public void addFromPixelBlock(double xOrigin,
                              double yOrigin,
                              double xPixelSize,
                              double yPixelSize,
                              Object valueForNoData,
                              Object block,
                              double zTolerance,
                              Object pMaxPoints,
                              Object[] pbToleranceAchieved)
                       throws IOException,
                              AutomationException
Adds pixels from a pixel block to the TIN.

Description

This function is used in raster to TIN conversion. It's a recursive process that adds pixel cell centers from the PixelBlock as nodes to the TIN. The process stops once a specified vertical accuracy has been achieved, or a maximum number of nodes have been added.

xOrigin and yOrigin represent the upper left cell center of the PixelBlock in map space coordinates.

xPixelSize and yPixelSize represent the x and y cell dimensions (cellsize) of the PixelBlock.

valueForNoData is the value used for cells in the PixelBlock to indicate NoData. Cells with this value will be excluded.

block is the PixelBlock itself.

zTolerance is a vertical accuracy parameter. The resulting TIN's height field will not differ from the input PixelBlock's by more than this value. A smaller zTolerance produces a TIN that is more accurate.

[MaxPoints] is an optional long integer. The process will halt if the total number of nodes in the TIN, not just just those added by this function, has been reached without the zTolerance being achieved. For performance reasons [MaxPoints] is approximate so it's possible the resulting TIN may be slightly larger than the value specified.

[bToleranceAchieved] is a boolean that is set by the function if the [MaxPoints] argument was specified. It is set to TRUE if the zTolerance was met or FALSE if the function had to quit as a result of reaching [MaxPoints] without meeting the tolerance.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addFromPixelBlock in interface ITinEdit
Parameters:
xOrigin - The xOrigin (in)
yOrigin - The yOrigin (in)
xPixelSize - The xPixelSize (in)
yPixelSize - The yPixelSize (in)
valueForNoData - A Variant (in)
block - A Variant (in)
zTolerance - The zTolerance (in)
pMaxPoints - A Variant (in, optional, pass null if not required)
pbToleranceAchieved - A Variant (out: use single element array, optional, pass single element of null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteNode

public void deleteNode(int index)
                throws IOException,
                       AutomationException
Deletes a specified node from the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

deleteSelectedNodes

public void deleteSelectedNodes()
                         throws IOException,
                                AutomationException
Deletes specified nodes from the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteSelectedNodes in interface ITinEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteNodesOutsideDataArea

public void deleteNodesOutsideDataArea()
                                throws IOException,
                                       AutomationException
Deletes all nodes from outside the TIN interpolation zone.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteNodesOutsideDataArea in interface ITinEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setEdgeType

public void setEdgeType(int index,
                        int type)
                 throws IOException,
                        AutomationException
Sets the type of the triangle edge referenced by the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setEdgeType in interface ITinEdit
Parameters:
index - The index (in)
type - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setNodeZ

public void setNodeZ(int index,
                     double z)
              throws IOException,
                     AutomationException
Sets the z value of a TIN node referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setNodeZ in interface ITinEdit
Parameters:
index - The index (in)
z - The z (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setNodeTagValue

public void setNodeTagValue(int index,
                            int value)
                     throws IOException,
                            AutomationException
Sets the tag value of a TIN node referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setNodeTagValue in interface ITinEdit
Parameters:
index - The index (in)
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setEdgeTagValue

public void setEdgeTagValue(int index,
                            int value)
                     throws IOException,
                            AutomationException
Sets the tag value of the triangle edge referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setEdgeTagValue in interface ITinEdit
Parameters:
index - The index (in)
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTriangleTagValue

public void setTriangleTagValue(int index,
                                int value)
                         throws IOException,
                                AutomationException
Sets the face tag value of the triangle referenced by the index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setTriangleTagValue in interface ITinEdit
Parameters:
index - The index (in)
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

propagateTriangleTagValue

public void propagateTriangleTagValue(ITinTriangle pSeed,
                                      int newTagValue,
                                      boolean bStopAtEnforcedEdge)
                               throws IOException,
                                      AutomationException
Propagates triangle tag value changes to all immediate triangles with the same initial value.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
propagateTriangleTagValue in interface ITinEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinTriangle (in)
newTagValue - The newTagValue (in)
bStopAtEnforcedEdge - The bStopAtEnforcedEdge (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTrianglesInsideDataArea

public void setTrianglesInsideDataArea()
                                throws IOException,
                                       AutomationException
Sets all triangles within the TIN interpolation zone.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setTrianglesInsideDataArea in interface ITinEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTriangleInsideDataArea

public void setTriangleInsideDataArea(int index)
                               throws IOException,
                                      AutomationException
Sets a triangle within the TIN interpolation zone.

Description

This member will not work if attempted on a triangle comprised of a super node (one of the 4 outer nodes added by the software when the TIN is first created) as, by definition, they are considered outside the interpolation zone. An error will not be raised in this case though.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setTriangleOutsideDataArea

public void setTriangleOutsideDataArea(int index)
                                throws IOException,
                                       AutomationException
Sets a triangle outside of the TIN interpolation zone.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

deleteNodeTagValues

public void deleteNodeTagValues()
                         throws IOException,
                                AutomationException
Deletes all node tag values in the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteNodeTagValues in interface ITinEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteEdgeTagValues

public void deleteEdgeTagValues()
                         throws IOException,
                                AutomationException
Deletes all edge tag values in the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteEdgeTagValues in interface ITinEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteTriangleTagValues

public void deleteTriangleTagValues()
                             throws IOException,
                                    AutomationException
Deletes all triangle face tag values in the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteTriangleTagValues in interface ITinEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

refresh

public void refresh()
             throws IOException,
                    AutomationException
Updates TIN's extents, data area, and data elements count.

Description

Refresh will update the data extent, the number of data elements (nodes, edges, triangles), and the interpolation zone of the TIN. For performance reasons these items are not updated with every edit operation. A call to Refresh will ensure the values are correct if you need them during an edit session.

A call to Save will automatically make a call Refresh.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
refresh in interface ITinEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSpatialReference

public void setSpatialReference(ISpatialReference pSpatialReference)
                         throws IOException,
                                AutomationException
Set a copy of the specified spatial reference to the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

resetExtent

public void resetExtent(IEnvelope pExtent)
                 throws IOException,
                        AutomationException
Reset TIN's extent.

Description

Redefines the declared 2D data area for the TIN using the rectangle defined by pExtent. This is the area into which data added to the TIN should fall.

This method can only be called if the TIN has four super nodes and no other data. An error is returned if that condition is not met.

The typical use case for this method pertains to the editing of TINs created by the Create TIN geoprocessing tool. That tool can create and save 'empty' TINs, where no data was added to the triangulation. When the tool does that the delcared data extent for the TIN is set to the domain of the TIN's spatial reference. It uses that because it doesn't know the data extent since no data was added. That domain is huge. If left unchanged, it can result in both performance and precision issues when data is added. For cases like this ResetExtent should be called right before adding data when the proper extent is known so the TIN's four super nodes can be repositioned before triangulation occurs.

Product Availability

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

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

setToConstrainedDelaunay

public void setToConstrainedDelaunay()
                              throws IOException,
                                     AutomationException
Apply constrained Delaunay from now on.

Description

Once this has been set breaklines will no longer be densified with steiner points in order to ensure the triangulation conforms to Delaunay criteria.

Once a TIN has been placed in this mode it cannot be changed back by any means other than not saving the edit session used to call this method.

Product Availability

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

Specified by:
setToConstrainedDelaunay in interface ITinEdit2
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

swapEdge

public int swapEdge(int index,
                    int type,
                    int tag)
             throws IOException,
                    AutomationException
Swap the specified edge and set the TIN as constrained Delaunay triangulation.

Description

Alters the triangulation by connecting an edge to the opposite nodes of the triangles sharing the edge. The return value from this method is the index of the resulting edge. The TIN will automatically have the ITin.IsDelaunay property set to FALSE when calling this method.

Index is the index of the TIN edge to swap.

esriTinEdgeType is assigned to the resulting edge. If you want to ensure the edge is not redefined via a subsequent edit operation that's within close proximity to the edge set it to esriTinHardEdge or esriTinSoftEdge.

Tag is the tag value assigned to the resulting edge. Use a value of 0 if you're not concerned about edge tag values.

Product Availability

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

Specified by:
swapEdge in interface ITinEdit2
Parameters:
index - The index (in)
type - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (in)
tag - The tag (in)
Returns:
The pNewIndex
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addFrom3dMultipointFeatureClass

public void addFrom3dMultipointFeatureClass(IFeatureClass pFeatureClass,
                                            ISpatialFilter pClippingFilter)
                                     throws IOException,
                                            AutomationException
Adds features from a 3D multi-point feature class to the TIN.

Description

Used to add a subset of points from a z-aware multipoint feature class. The benefit of using this method over ITinEdit.AddFromFeatureClass is that the multipoints can be clipped to an area of interest before they get added to the triangulation, excluding vertices that are of no interest.

pFeatureClass must reference a z-aware multipoint feature class.

pClippingFilter is a SpatialFilter that's used to select points from the input feature class. First, the filter will be applied as a search filter on the multipoint feature class. Then, each vertex of each returned multipoint is tested to see if it's within or coincident to the filter's geometry. If so, it's add to the triangulation.

Notes:
The most straightforward use of this method would be to set the filter geometry to an envelope or polygon and the spatial relationship test to Intersects. This is the most efficient way to triangulate just those vertices from a multipoint feature class that are inside an area of interest defined by a rectangle or polygon.

Product Availability

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

Specified by:
addFrom3dMultipointFeatureClass in interface ITinEdit2
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pClippingFilter - A reference to a com.esri.arcgis.geodatabase.ISpatialFilter (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

saveSnapshot

public void saveSnapshot(String name,
                         boolean bOverWrite)
                  throws IOException,
                         AutomationException
Saves a snapshot of the TIN that is been edited to disk.

Description

Saves a copy of the TIN, based on its current state in memory, to disk. This differs from ITinAdvanced.SaveAs and ITinEdit.SaveAs because those methods point the TIN object to the saved version of the TIN whereas SaveSnapshot does not.

sName is the full output path to the new TIN.

bOverWrite should be set to FALSE if the output should not be replaced if it already exists. An error will be returned if the output already exists. If it's okay to replace the output then set bOverWrite to TRUE.

Product Availability

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

Specified by:
saveSnapshot in interface ITinEdit2
Parameters:
name - The name (in)
bOverWrite - The bOverWrite (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

hasSelection

public boolean hasSelection(int type)
                     throws IOException,
                            AutomationException
Indicates if element(s) is/are selected.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
hasSelection in interface ITinSelection
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
Returns:
The pbHasSelection
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

clearSelection

public void clearSelection(int type)
                    throws IOException,
                           AutomationException
Clears selected element(s).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
clearSelection in interface ITinSelection
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSelection

public void setSelection(IEnumTinElement pElements,
                         int action)
                  throws IOException,
                         AutomationException
Selects elements returned by the enumerator.

Description

SetSelection selects all elements returned by the passed enumerator.

SetSelection will run through the passed enumerator, leaving the enumerator at the end. To subsequently use the enumerator for something else you must first use IEnumTinElement.Reset otherwise it returns a Null pointer ('Nothing' in VB) for Next and an empty element for QueryNext.

When working with edge selection the software will ensure an edge selected/unselected in one triangle will also select/unselect the corresponding edge in the neighboring triangle. So while there are technically two edges separating adjacent triangles TIN selection handles them logically as one.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setSelection in interface ITinSelection
Parameters:
pElements - A reference to a com.esri.arcgis.geodatabase.IEnumTinElement (in)
action - A com.esri.arcgis.geodatabase.esriTinSelectionType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSelection

public IEnumTinElement getSelection(int type)
                             throws IOException,
                                    AutomationException
Returns an enumerator containing selected elements.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSelection in interface ITinSelection
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumTinElement
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

selectAll

public void selectAll(int type,
                      boolean bDataElementsOnly)
               throws IOException,
                      AutomationException
Selects all elements of the specified element type in the TIN.

Description

If bDataElementsOnly is True then the selection bit for non-data elements is left unchanged. Any previously selected non-data elements will remain selected. If you don't like this call ClearSelection before SelectAll.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
selectAll in interface ITinSelection
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
bDataElementsOnly - The bDataElementsOnly (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

flipSelection

public void flipSelection(int type,
                          boolean bDataElementsOnly)
                   throws IOException,
                          AutomationException
Flips current selection of the specified element type in the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
flipSelection in interface ITinSelection
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
bDataElementsOnly - The bDataElementsOnly (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

selectByArea

public void selectByArea(int type,
                         IPolygon pArea,
                         boolean bPassThrough,
                         boolean bDataElementsOnly,
                         int action)
                  throws IOException,
                         AutomationException
Selects all elements of the specified element type in a specified polygonal area.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
selectByArea in interface ITinSelection
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
pArea - A reference to a com.esri.arcgis.geometry.IPolygon (in)
bPassThrough - The bPassThrough (in)
bDataElementsOnly - The bDataElementsOnly (in)
action - A com.esri.arcgis.geodatabase.esriTinSelectionType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

selectByEnvelope

public void selectByEnvelope(int type,
                             IEnvelope pEnvelope,
                             boolean bPassThrough,
                             boolean bDataElementsOnly,
                             int action)
                      throws IOException,
                             AutomationException
Selects all elements of the specified element type in a specified rectangular envelope.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
selectByEnvelope in interface ITinSelection
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
pEnvelope - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
bPassThrough - The bPassThrough (in)
bDataElementsOnly - The bDataElementsOnly (in)
action - A com.esri.arcgis.geodatabase.esriTinSelectionType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSelected

public void setSelected(int index,
                        int type,
                        int action)
                 throws IOException,
                        AutomationException
Selects the element referenced by the index.

Description

When working with edge selection the software will ensure an edge selected/unselected in one triangle will also select/unselect the corresponding edge in the neighboring triangle. So while there are technically two edges separating adjacent triangles TIN selection handles them logically as one.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setSelected in interface ITinSelection
Parameters:
index - The index (in)
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
action - A com.esri.arcgis.geodatabase.esriTinSelectionType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isSelected

public boolean isSelected(int index,
                          int type)
                   throws IOException,
                          AutomationException
Returns TRUE if the element referenced by the index is selected.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isSelected in interface ITinSelection
Parameters:
index - The index (in)
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
Returns:
The pbIsSelected
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

querySelectionExtent

public void querySelectionExtent(int type,
                                 IEnvelope pExtent)
                          throws IOException,
                                 AutomationException
Returns the extent of the selected elements.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
querySelectionExtent in interface ITinSelection
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
pExtent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSelectedElementCount

public int getSelectedElementCount(int type)
                            throws IOException,
                                   AutomationException
The number of selected elements.

Product Availability

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

Specified by:
getSelectedElementCount in interface ITinSelection
Parameters:
type - A com.esri.arcgis.geodatabase.esriTinElementType constant (in)
Returns:
The pCount
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

startInMemoryEditing

public boolean startInMemoryEditing()
                             throws IOException,
                                    AutomationException
Initiates memory edit mode. Use ITinEdit::SaveAs to persist. Don't use Save.

Description

In-memory editing allows you to edit a TIN, whether or not it's read-only, with the assurance that edits can't be saved back to the source dataset on disk.

In-memory editing is useful for two things. First, to edit read-only TINs that ITinEdit.StartEditing does not permit. Secondly, to make temporary edits for analysis that will be discarded when the analysis is complete.

While in memory edit mode ITinEdit.SaveAs can be used to save edits to a new dataset whereas ITinEdit.Save will fail. If ITinEdit.SaveAs is called the TIN is automatically switched over into regular edit mode.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
startInMemoryEditing in interface ITinFeatureEdit
Returns:
The pbIsSuccessful
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isInMemoryEditMode

public boolean isInMemoryEditMode()
                           throws IOException,
                                  AutomationException
Indicates if the specified TIN is in in-memory-edit mode.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isInMemoryEditMode in interface ITinFeatureEdit
Returns:
The pbIsInEditMode
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

extractPolyline

public IPolyline extractPolyline(ITinFeatureSeed pSeed,
                                 boolean bGetZ,
                                 boolean bSkipDensifiedNodes)
                          throws IOException,
                                 AutomationException
Extracts polyline. The seed must be a special edge, or an edge with tagValue.

Description

Takes a polyline embedded in the triangulation and returns a polyline geometry.

The seed must be a TIN edge and either be enforced or have an assigned tag value.

ITinFeatureSeed.UseTagValue is used to control whether edge tag values are used to define the polyline. The default value is TRUE. If set to FALSE, only the edge type (i.e. hard, soft) is considered.

If the option to GetZ is TRUE the returned polyline will be ZAware with vertex Z values set from the source nodes.

If node source information is available, the setting of SkipDensifiedNodes to TRUE will result in the exclusion of densification nodes as vertices in the resulting polyline. This will result in the loss of the first and/or last polyline segment when first or last vertex of the polyline is a densification node. If the application requires these densification nodes to remain, and only the others to be excluded, consider use of ITinAdvanced.ExtractPolyline. The resulting TinPolyline object provides control on a per-node basis.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
extractPolyline in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
bGetZ - The bGetZ (in)
bSkipDensifiedNodes - The bSkipDensifiedNodes (in)
Returns:
A reference to a com.esri.arcgis.geometry.IPolyline
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

extractPolygon

public IPolygon extractPolygon(ITinFeatureSeed pSeed,
                               boolean bGetZ,
                               boolean bSkipDensifiedNodes)
                        throws IOException,
                               AutomationException
Extracts polygon.

Description

Takes a polygon embedded in the triangulation and returns it as polygon geometry.

The Seed is either a TIN triangle that is inside the polygon or a TIN edge that is on the polygon boundary. When triangle seeds are used, their tag values define the polygons. By default, edge seeds also rely on tags. Only non-zero tags are supported. Edge type can be used as a substitute for tags when using edge based seeds. To do this set ITinFeatureSeed.UseTagValue on the edge to FALSE.

If the option to GetZ is TRUE the returned polygon will be ZAware with vertex Z values set from the source nodes.

If node source information is available, the setting of SkipDensifiedNodes to TRUE will result in the exclusion of densification nodes as vertices in the resulting polygon.

The TIN polygon must be bounded by enforced edges. An error will result if this condition is not met.

The returned polygon will not be topologically simple. If you need to persist the polygon or use it for topological operations call ITopologicalOperator.Simplify first.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
extractPolygon in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
bGetZ - The bGetZ (in)
bSkipDensifiedNodes - The bSkipDensifiedNodes (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.

convertToPolylines

public void convertToPolylines(IFeatureClass pFeatureClass,
                               ITinDynamicFilter pFilter,
                               boolean bSkipDensifiedNodes,
                               Object pFieldName)
                        throws IOException,
                               AutomationException
Converts qualified edges to a polyline feature class.

Description

Extracts embedded TIN polylines and writes them out to the specified feature class.

The specified feature class must exist and be polyline based.

If the feature class is Z enabled the polylines written to it will be 3D, otherwise they will be 2D.

The specified filter must be edge based (e.g. TinEdgeTypeFilter) and implement ITinDynamicFilter. You can use ITinEdgeTypeFilter2 with its RegularEdgesExcluded property set to TRUE to extract hard and soft breaklines as polyline features.

The option to skip densification nodes is for excluding points added by the triangulator to breaklines in order to make them Delaunay conforming. This option only works on TINs that have been created/edited in memory without having been saved to disk.

A field will be added to the feature class and is used to store a numeric code for the output features. In the case of edge type, a value of 1 is used for soft breaklines and 2 for hard. The added field will be called 'Code' unless you provide a different name via the optional field name argument.

Do not have WorkspaceEdit turned on as this member needs to add fields to the output feature class, a schema edit operation that WorkspaceEdit does not permit.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
convertToPolylines in interface ITinFeatureEdit
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinDynamicFilter (in)
bSkipDensifiedNodes - The bSkipDensifiedNodes (in)
pFieldName - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

convertToPolygons

public void convertToPolygons(IFeatureClass pFeatureClass,
                              ITinDynamicFilter pFilter,
                              boolean bStopAtEnforcedEdge,
                              boolean bSkipDensifiedNodes,
                              Object pFieldName)
                       throws IOException,
                              AutomationException
Converts qualified triangles to a polygon feature class.

Description

Extracts embedded TIN polygons and writes them out to the specified feature class.

The specified feature class must exist and be polygon based.

If the feature class is Z enabled the polygons written to it will be 3D (the boundary vertices will have Z's), otherwise they will be 2D.

The specified filter must support triangles and implement ITinDynamicFilter. For example, you can use a TinTriangleFilter to extract areas of like slope or aspect or a TinValueFilter to extract areas based on triangle tag values. If the ActiveBound for either of these filters is set to esriTinUniqueValue it means contiguous triangles with identical values will be extracted as polygons - for all unique values (with the exception of zero if ITinValueFilter2.ZeroTagValueExcluded is set to TRUE).

The option to stop at enforced edges means that breakline edges act as polygon barriers/boundaries. For example, a set of contiguous triangles tagged with the code to represent 'building footprint' will be output as two polygons if a breakline separates them. This way, two adjacent buildings can remain distinct from one another.

The option to skip densification nodes is for excluding points added by the triangulator to breaklines in order to make them Delaunay conforming. This option only works on TINs that have been created/edited in memory without having been saved to disk.

A field will be added to the feature class and is used to store a numeric code for the output features. In the case of edge type, a value of 1 is used for soft breaklines and 2 for hard. The added field will be called 'Value' or 'Code' (depending on filter) unless you provide a different name via the optional field name argument.

Do not have WorkspaceEdit turned on as this member needs to add fields to the output feature class, a schema edit operation that WorkspaceEdit does not permit.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
convertToPolygons in interface ITinFeatureEdit
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinDynamicFilter (in)
bStopAtEnforcedEdge - The bStopAtEnforcedEdge (in)
bSkipDensifiedNodes - The bSkipDensifiedNodes (in)
pFieldName - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setStopAtJuncture

public void setStopAtJuncture(boolean pbStop)
                       throws IOException,
                              AutomationException
Indicates if a polyline related process (e.g., ExtractPolyline) should stop at juncture.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isStopAtJuncture

public boolean isStopAtJuncture()
                         throws IOException,
                                AutomationException
Indicates if a polyline related process (e.g., ExtractPolyline) should stop at juncture.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isStopAtJuncture in interface ITinFeatureEdit
Returns:
The pbStop
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setStopAtEnforcedEdge

public void setStopAtEnforcedEdge(boolean pbStop)
                           throws IOException,
                                  AutomationException
Indicates if a polygon related process (e.g., ExtractPolygon) should stop when reach an enforced edge.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isStopAtEnforcedEdge

public boolean isStopAtEnforcedEdge()
                             throws IOException,
                                    AutomationException
Indicates if a polygon related process (e.g., ExtractPolygon) should stop when reach an enforced edge.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isStopAtEnforcedEdge in interface ITinFeatureEdit
Returns:
The pbStop
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setElementsIgnoredInConflictTest

public void setElementsIgnoredInConflictTest(int pElementsExcluded)
                                      throws IOException,
                                             AutomationException
The TIN nodes or edges to be ignored in conflict detection (used by processes such as CanAdd and CanMove).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getElementsIgnoredInConflictTest

public int getElementsIgnoredInConflictTest()
                                     throws IOException,
                                            AutomationException
The TIN nodes or edges to be ignored in conflict detection (used by processes such as CanAdd and CanMove).

Description

Indicates what nodes, if any, to ignore when evaluating potential conflicts. The evaluators are the ITinFeatureEdit.Can* methods such as CanMove and CanRotate.

The value is based on the esriTinIgnoredElementType enumeration. The options are:

esriTinNodesWithNonZeroTag
esriTinNodesWithZeroTag
esriTinNothing

The parameter is defined as a Long so in the future if other options are added they can be combined using the '+' operator. For example:


esriTinNodesWithZeroTag + esriTinEdgesWithNonZeroTag

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getElementsIgnoredInConflictTest in interface ITinFeatureEdit
Returns:
The pElementsExcluded
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canAdd

public boolean canAdd(IGeometry pShape,
                      double spacing)
               throws IOException,
                      AutomationException
Checks if the specified shape can be added without creating spatial conflict.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canAdd in interface ITinFeatureEdit
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
spacing - The spacing (in)
Returns:
The pbCanAdd
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canReplace

public boolean canReplace(IGeometry pShape,
                          ITinFeatureSeed pSeed,
                          double spacing)
                   throws IOException,
                          AutomationException
Checks if the embedded object can be replaced by the new shape without creating spatial conflict.

Description

Returns TRUE if the embedded TIN feature represented by the passed seed can be replaced with the proposed shape without creating a spatial conflict between it and another TIN feature.

The shape can be a point, polyline, or polygon.

The seed is a TIN node, edge, or triangle that is used to reference an existing TIN feature.

The spacing is used as a search distance around the proposed shape. If another TIN feature is within this distance a conflict exists.

See also ITinFeatureEdit::ElementsIgnoredInConflictTest.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canReplace in interface ITinFeatureEdit
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
spacing - The spacing (in)
Returns:
The pbCanReplace
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canMove

public boolean canMove(ITinFeatureSeed pSeed,
                       double dx,
                       double dy,
                       double spacing)
                throws IOException,
                       AutomationException
Checks if the embedded object can be relocated to a new location without creating spatial conflict.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canMove in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
dx - The dx (in)
dy - The dy (in)
spacing - The spacing (in)
Returns:
The pbCanMove
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canRotate

public boolean canRotate(ITinFeatureSeed pSeed,
                         IPoint pOrigin,
                         double angle,
                         double spacing)
                  throws IOException,
                         AutomationException
Checks if the embedded polyline/polygon can be rotated without creating spatial conflict. pOrigin can be NULL or Nothing.

Description

Determines if the TIN feature can be rotated without creating a conflict.

The TIN feature is defined by the passed seed . If the seed is a triangle the feature is a polygon whose area is represented by the set of contiguous triangles with the same tag value. If the seed is an edge the feature is a polyline comprised of all unambiguously connected edges with the same tag value or edge type. The ITinFeatureSeed.UseTagValue property is used to determine whether the edge seed is defined by its tag or edge type.

The TIN feature is rotated relative to the specified origin point.

The rotation angle is given in degrees. Positive values rotate clockwise, negative values counter-clockwise.

A conflict results if any TIN features are within the specified spacing of the proposed geometry. This includes distance to feature edges as well as nodes.

The ITinFeatureEdit.ElementsIgnoredInConflictTest setting determines what, if any, TIN elements are excluded from the conflict test.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canRotate in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
pOrigin - A reference to a com.esri.arcgis.geometry.IPoint (in)
angle - The angle (in)
spacing - The spacing (in)
Returns:
The pbCanRotate
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canScalePolygon

public boolean canScalePolygon(ITinTriangle pSeed,
                               IPoint pOrigin,
                               double scale,
                               double spacing)
                        throws IOException,
                               AutomationException
Checks if the embedded polygon can be expanded or shrinked without creating spatial conflict. pOrigin can be NULL or Nothing.

Description

Determines if the TIN polygon can be scaled without creating a conflict.

The TIN polygon is defined by the passed seed which is a triangle inside the polygon. The polygon's area is represented by the set of contiguous triangles with the same tag value as the seed.

The TIN polygon is scaled in reference to the specified origin point. Regardless of the location of the origin, the geometry resulting from the transformation is the same except for a positional offset. The origin is the only point in the transformation guaranteed to remain in the same location after the transformation is complete. A Null pointer ('Nothing' in VB) can be passed in which case the polygon's centroid will be used.

The scale is the ratio of old size to new - used for both x and y dimensions. Values greater than 1 increase the polygon's size. Values less than 1 decrease it.

A conflict results if any TIN features are within the specified spacing of the proposed geometry. This includes distance to feature edges as well as nodes.

The ITinFeatureEdit.ElementsIgnoredInConflictTest setting determines what, if any, TIN elements are excluded from the conflict test.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canScalePolygon in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinTriangle (in)
pOrigin - A reference to a com.esri.arcgis.geometry.IPoint (in)
scale - The scale (in)
spacing - The spacing (in)
Returns:
The pbCanScale
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canAddVertex

public boolean canAddVertex(IGeometry pPoly,
                            IPoint pNewPoint,
                            boolean bClose,
                            double spacing)
                     throws IOException,
                            AutomationException
Checks if a new polygon/polyline vertex can be added without creating spatial conflict.

Description

This member is used primarily for conflict detection when using the TIN as a data structure to record point, line, and polygon features.

Returns TRUE if the passed point can be added as a vertex to the passed polygon/polyline without creating a conflict. The geometry isn't actually added to the TIN. It's treated as 'proposed' geometry. Presumably, code would use this member to ensure there is no conflict before proceeding.

The input poly object can be a polygon or polyline. It may have zero or more vertices already present.

The passed point is treated as if it were to be added at the end of the geometry's point collection.

A conflict results if any TIN features are within the specified spacing of the proposed geometry. This includes segment and edge distance checking as well as vertex and node checking.

The ITinFeatureEdit.ElementsIgnoredInConflictTest setting determines what, if any, TIN elements are excluded from the conflict test.

The Close argument is ignored if the input poly object is a polyline.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canAddVertex in interface ITinFeatureEdit
Parameters:
pPoly - A reference to a com.esri.arcgis.geometry.IGeometry (in)
pNewPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
bClose - The bClose (in)
spacing - The spacing (in)
Returns:
The pbCanAdd
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canDeleteVertex

public boolean canDeleteVertex(ITinNode pNode,
                               ITinFeatureSeed pSeed,
                               double spacing)
                        throws IOException,
                               AutomationException
Checks if a polygon/polyline vertex can be deleted without creating spatial conflict.

Description

Determines if the vertex (node) of a TIN feature can be removed without creating a conflict.

The TIN feature is defined by the passed seed. If the seed is a triangle the feature is a polygon whose area is represented by the set of contiguous triangles with the same tag value. If the seed is an edge the feature is a polyline comprised of all unambiguously connected edges with the same tag value or edge type. The ITinFeatureSeed.UseTagValue property is used to determine whether the edge seed is defined by its tag or edge type.

The vertex (node) to be deleted is specified as an input argument. It must be a vertex belonging to the TIN feature defined by the input seed.

A conflict results if any TIN features are within the specified spacing of the proposed geometry. This includes distance to feature edges as well as nodes.

A conflict also results of the feature would self-intersect as a result of the removal.

Nodes with a source type of esriTinDensified are excluded from the geometry of the TIN feature that's under consideration. See ITinNode2.Source or ITinAdvanced2.GetNodeSource.

The ITinFeatureEdit.ElementsIgnoredInConflictTest setting determines what, if any, TIN elements are excluded from the conflict test.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canDeleteVertex in interface ITinFeatureEdit
Parameters:
pNode - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
spacing - The spacing (in)
Returns:
The pbCanDelete
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canMoveVertex

public boolean canMoveVertex(ITinNode pNode,
                             ITinFeatureSeed pSeed,
                             _WKSPoint pNewLocation,
                             double spacing)
                      throws IOException,
                             AutomationException
Checks if a polygon/polyline vertex can be moved to a new location without creating spatial conflict.

Description

Determines if the vertex (node) of a TIN feature can be moved without creating a conflict.

The TIN feature is defined by the passed seed. If the seed is a triangle the feature is a polygon whose area is represented by the set of contiguous triangles with the same tag value. If the seed is an edge the feature is a polyline comprised of all unambiguously connected edges with the same tag value or edge type. The ITinFeatureSeed.UseTagValue property is used to determine whether the edge seed is defined by its tag or edge type.

The vertex (node) to be moved is specified as an input argument. It must be a vertex belonging to the TIN feature defined by the input seed.

A conflict results if any TIN features are within the specified spacing of the proposed geometry. This includes distance to feature edges as well as nodes.

A conflict also results of the feature would self-intersect as a result of the move.

Nodes with a source type of esriTinDensified are excluded from the geometry of the TIN feature that's under consideration. See ITinNode2.Source or ITinAdvanced2.GetNodeSource.

The ITinFeatureEdit.ElementsIgnoredInConflictTest setting determines what, if any, TIN elements are excluded from the conflict test.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canMoveVertex in interface ITinFeatureEdit
Parameters:
pNode - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
pNewLocation - A Structure: com.esri.arcgis.system._WKSPoint (A com.esri.arcgis.system._WKSPoint COM typedef) (in)
spacing - The spacing (in)
Returns:
The pbCanMove
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addPointZ

public void addPointZ(IPoint pPoint,
                      int tagValue,
                      ITinNode pSeed)
               throws IOException,
                      AutomationException
Adds a 3D point to the TIN. pSeed can be NULL or Nothing.

Description

The point is the 3D point to be added.

The TagValue is a signed long integer that will be assigned to the resulting node. A zero can be used to ignore node tag value assignment.

The Seed is a TinNode pointer. If you're interested in obtaining a reference to the added node then have the seed point to a TinNode object. The object will then be populated with the appropriate properties. If you're not interested in obtaining a seed then pass a NULL pointer ('Nothing' in VisualBasic).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addPointZ in interface ITinFeatureEdit
Parameters:
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
tagValue - The tagValue (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addPolygonZ

public void addPolygonZ(IPolygon pShape,
                        int type,
                        int tagValue,
                        int edgeTagValue,
                        int nodeTagValue,
                        ITinTriangle pSeed)
                 throws IOException,
                        AutomationException
Adds Z-aware polygon. pSeed can be NULL or Nothing.

Description

The Shape, a 3D polygon object, represents the input geometry to be added.

The Type indicates how the resulting edges of the embedded polygon will be coded. Supported edge types are esriTinHardEdge, esriTinRegularEdge, and esriTinSoftEdge.

The TagValue is a signed, non-zero, long integer that will be assigned to the triangles inside the embedded polygon.

The edgeTagValue is a signed long integer that will be assigned to the embedded polygon edges. A zero can be used to ignore edge tag value assignment.

The NodeTagValue is a signed long integer that will be assigned to the embedded polygon nodes. A zero can be used to ignore node tag value assignment.

The Seed is a TinTriangle pointer. If you're interested in obtaining a seed that can be used as a handle to the added polygon then have the seed point to a TinTriangle object. The object will then be populated with the appropriate properties. If you're not interested in obtaining a seed then pass a NULL pointer ('Nothing' in VisualBasic).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addPolygonZ in interface ITinFeatureEdit
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IPolygon (in)
type - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (in)
tagValue - The tagValue (in)
edgeTagValue - The edgeTagValue (in)
nodeTagValue - The nodeTagValue (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinTriangle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addPolygon

public void addPolygon(IPolygon pShape,
                       int type,
                       int tagValue,
                       int edgeTagValue,
                       int nodeTagValue,
                       ITinTriangle pSeed,
                       Object pZ)
                throws IOException,
                       AutomationException
Adds polygon. pSeed can be NULL or Nothing.

Description

The Shape, a 2D polygon object, represents the input geometry to be added.

The Type indicates how the resulting edges of the embedded polygon will be coded. Supported edge types are esriTinHardEdge, esriTinRegularEdge, and esriTinSoftEdge.

The TagValue is a signed, non-zero, long integer that will be assigned to the triangles inside the embedded polygon.

The edgeTagValue is a signed long integer that will be assigned to the embedded polygon edges. A zero can be used to ignore edge tag value assignment.

The NodeTagValue is a signed long integer that will be assigned to the embedded polygon nodes. A zero can be used to ignore node tag value assignment.

The Seed is a TinTriangle pointer. If you're interested in obtaining a seed that can be used as a handle to the added polygon then have the seed point to a TinTriangle object. The object will then be populated with the appropriate properties. If you're not interested in obtaining a seed then pass a NULL pointer ('Nothing' in VisualBasic).

The optional Z can be used to define a constant height to be used for the added polygon. If unspecified, heights will be interpolated off the existing surface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addPolygon in interface ITinFeatureEdit
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IPolygon (in)
type - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (in)
tagValue - The tagValue (in)
edgeTagValue - The edgeTagValue (in)
nodeTagValue - The nodeTagValue (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinTriangle (in)
pZ - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addPolylineZ

public void addPolylineZ(IPolyline pShape,
                         int type,
                         int tagValue,
                         int nodeTagValue,
                         ITinEdge pSeed)
                  throws IOException,
                         AutomationException
Adds Z-aware polyline. pSeed can be NULL or Nothing.

Description

The Shape, a 3D polyline object, represents the input geometry to be added.

The Type indicates how the resulting edges of the embedded polyline will be coded. Supported edge types are esriTinHardEdge, esriTinRegularEdge, and esriTinSoftEdge.

The TagValue is a signed, non-zero, long integer that will be assigned to the embedded polyline edges.

The NodeTagValue is a signed long integer that will be assigned to the embedded polyline nodes. A zero can be used to ignore node tag value assignment.

The Seed is TinEdge pointer. If you're interested in obtaining a seed that can be used as a handle to the added polyline then have the seed point to a TinEdge object. The object will then be populated with the appropriate properties. If you're not interested in obtaining a seed then pass a NULL pointer ('Nothing' in VisualBasic).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addPolylineZ in interface ITinFeatureEdit
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IPolyline (in)
type - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (in)
tagValue - The tagValue (in)
nodeTagValue - The nodeTagValue (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinEdge (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addPolyline

public void addPolyline(IPolyline pShape,
                        int type,
                        int tagValue,
                        int nodeTagValue,
                        ITinEdge pSeed,
                        Object pZ)
                 throws IOException,
                        AutomationException
Adds polyline. pSeed can be NULL or Nothing.

Description

The Shape, a 2D polyline object, represents the input geometry to be added.

The Type indicates how the resulting edges of the embedded polyline will be coded. Supported edge types are esriTinHardEdge, esriTinRegularEdge, and esriTinSoftEdge.

The TagValue is a signed, non-zero, long integer that will be assigned to the embedded polyline edges.

The NodeTagValue is a signed long integer that will be assigned to the embedded polyline nodes. A zero can be used to ignore node tag value assignment.

The Seed is TinEdge pointer. If you're interested in obtaining a seed that can be used as a handle to the added polyline then have the seed point to a TinEdge object. The object will then be populated with the appropriate properties. If you're not interested in obtaining a seed then pass a NULL pointer ('Nothing' in VisualBasic).

The optional Z can be used to define a constant height to be used for the added polyline. If unspecified, heights will be interpolated off the existing surface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addPolyline in interface ITinFeatureEdit
Parameters:
pShape - A reference to a com.esri.arcgis.geometry.IPolyline (in)
type - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (in)
tagValue - The tagValue (in)
nodeTagValue - The nodeTagValue (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinEdge (in)
pZ - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addPolyObjects

public void addPolyObjects(IFeatureClass pFeatureClass,
                           IQueryFilter pFilter,
                           IField pHeightField,
                           IField pValueField,
                           boolean bSetEdgeTagValue,
                           boolean bSetNodeTagValue,
                           int type)
                    throws IOException,
                           AutomationException
Adds polygons/polylines.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addPolyObjects in interface ITinFeatureEdit
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
pHeightField - A reference to a com.esri.arcgis.geodatabase.IField (in)
pValueField - A reference to a com.esri.arcgis.geodatabase.IField (in)
bSetEdgeTagValue - The bSetEdgeTagValue (in)
bSetNodeTagValue - The bSetNodeTagValue (in)
type - A com.esri.arcgis.geodatabase.esriTinEdgeType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

delete

public void delete(ITinFeatureSeed pSeed)
            throws IOException,
                   AutomationException
Deletes the embedded point/polygon/polyline represented by the specified seed.

Description

Removes the point, polyline, or polygon feature from the TIN by deleting its vertices (nodes) from the triangulation. Only when a feature's vertices are shared with another feature are they maintained in order to preserve the definition of the other feature's geometry.

The TIN feature is defined by the passed seed . If the seed is a node the feature is a point. If the seed is a triangle the feature is a polygon whose area is represented by the set of contiguous triangles with the same tag value. If the seed is an edge the feature is a polyline comprised of all unambiguously connected edges with the same tag value or edge type. The ITinFeatureSeed.UseTagValue property is used to determine whether the edge seed is defined by its tag or edge type.

The TIN must be in edit mode. See ITinEdit.StartEditing and ITinFeatureEdit.StartInMemoryEditing

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
delete in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

move

public void move(ITinFeatureSeed pSeed,
                 double dx,
                 double dy,
                 boolean bGetNewZ)
          throws IOException,
                 AutomationException
Moves the embedded point/polygon/polyline represented by the specified seed.

Description

Moves the specified TIN polyline or polygon feature.

The TIN feature is defined by the passed seed. If the seed is a triangle the feature is a polygon whose area is represented by the set of contiguous triangles with the same tag value. If the seed is an edge the feature is a polyline comprised of all unambiguously connected edges with the same tag value or edge type. The ITinFeatureSeed.UseTagValue property is used to determine whether the edge seed is defined by its tag or edge type.

The seed will be modified, if necessary, to properly reference the moved feature.

The new position of the TIN feature is defined by adding dx and dy to each vertex.

The GetNewZ argument, if set to TRUE, means the feature is removed, heights are interpolated for its new position from the surface (this may add vertices to capture surface detail), then it is added back in.

The TIN must be in edit mode. See ITinEdit.StartEditing and ITinFeatureEdit.StartInMemoryEditing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
move in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
dx - The dx (in)
dy - The dy (in)
bGetNewZ - The bGetNewZ (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rotate

public void rotate(ITinFeatureSeed pSeed,
                   IPoint pOrigin,
                   double angle,
                   boolean bGetNewZ)
            throws IOException,
                   AutomationException
Rotates the embedded polygon/polyline represented by the specified seed. pOrigin can be NULL or Nothing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
rotate in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
pOrigin - A reference to a com.esri.arcgis.geometry.IPoint (in)
angle - The angle (in)
bGetNewZ - The bGetNewZ (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

scalePolygon

public void scalePolygon(ITinTriangle pSeed,
                         IPoint pOrigin,
                         double scale,
                         boolean bGetNewZ)
                  throws IOException,
                         AutomationException
Expands or shrinks the embedded polygon represented by the specified seed. pOrigin can be NULL or Nothing.

Description

The TIN polygon is defined by the passed seed which is a triangle inside the polygon. The polygon's area is represented by the set of contiguous triangles with the same tag value as the seed.

The TIN polygon is scaled in reference to the specified origin point. Regardless of the location of the origin, the geometry resulting from the transformation is the same except for a positional offset. The origin is the only point in the transformation guaranteed to remain in the same location after the transformation is complete. A Null pointer ('Nothing' in VB) can be passed in which case the polygon's centroid will be used.

The scale is the ratio of old size to new - used for both x and y dimensions. Values greater than 1 increase the polygon's size. Values less than 1 decrease it.

The GetNewZ argument, if set to TRUE, means the feature is removed, heights are interpolated for its new position from the surface (this may add vertices to capture surface detail), then it is added back in.

The TIN must be in edit mode. See ITinEdit.StartEditing and ITinFeatureEdit.StartInMemoryEditing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
scalePolygon in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinTriangle (in)
pOrigin - A reference to a com.esri.arcgis.geometry.IPoint (in)
scale - The scale (in)
bGetNewZ - The bGetNewZ (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removeIslands

public void removeIslands(ITinTriangle pSeed,
                          double area,
                          boolean bKeepNodes,
                          boolean bZeroTag)
                   throws IOException,
                          AutomationException
Removes islands whose area is smaller than the specified value, from the embedded polygon represented by the specified seed. Remove all holes if the value is zero.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
removeIslands in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinTriangle (in)
area - The area (in)
bKeepNodes - The bKeepNodes (in)
bZeroTag - The bZeroTag (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

merge

public void merge(ITinEdge pCommonEdge,
                  int newValue,
                  boolean bKeepCommonNodes)
           throws IOException,
                  AutomationException
Merges two embedded polygons sharing the specified common edge.

Description

Merges two adjacent TIN polygon features by unenforcing their shared edges and assigning one tag value to all constituent triangles.

The passed edge should separate the two polygons in question.

The new value is the tag that will be assigned to all constituent triangles of the resulting merged polygon.

When choosing to keep the common nodes the node structure of the TIN remains unchanged. The only things modified are edge enforcement and triangle tag values. Otherwise, the nodes, and edges associated with them, will be deleted.

The TIN must be in edit mode. See ITinEdit.StartEditing or ITinFeatureEdit.StartInMemoryEditing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
merge in interface ITinFeatureEdit
Parameters:
pCommonEdge - A reference to a com.esri.arcgis.geodatabase.ITinEdge (in)
newValue - The newValue (in)
bKeepCommonNodes - The bKeepCommonNodes (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteVertex

public void deleteVertex(ITinNode pNode,
                         ITinFeatureSeed pSeed)
                  throws IOException,
                         AutomationException
Deletes the specified vertex from an embedded polygon/polyline.

Description

Deletes the specified vertex (node) of TIN polyline or polygon feature.

The TIN feature is defined by the passed seed. If the seed is a triangle the feature is a polygon whose area is represented by the set of contiguous triangles with the same tag value. If the seed is an edge the feature is a polyline comprised of all unambiguously connected edges with the same tag value or edge type. The ITinFeatureSeed.UseTagValue property is used to determine whether the edge seed is defined by its tag or edge type.

The vertex (node) to be deleted is specified as an input argument. It must be a vertex belonging to the TIN feature defined by the input seed.

The seed will be modified, if necessary, to properly reference the edited feature.

The TIN must be in edit mode. See ITinEdit.StartEditing and ITinFeatureEdit.StartInMemoryEditing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteVertex in interface ITinFeatureEdit
Parameters:
pNode - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

moveVertex

public void moveVertex(ITinNode pNode,
                       ITinFeatureSeed pSeed,
                       _WKSPoint pNewLocation,
                       boolean bGetNewZ)
                throws IOException,
                       AutomationException
Moves the specified vertex of an embedded polygon/polyline to a new location.

Description

Moves the specified vertex (node) of a TIN polyline or polygon feature.

The TIN feature is defined by the passed seed. If the seed is a triangle the feature is a polygon whose area is represented by the set of contiguous triangles with the same tag value. If the seed is an edge the feature is a polyline comprised of all unambiguously connected edges with the same tag value or edge type. The ITinFeatureSeed.UseTagValue property is used to determine whether the edge seed is defined by its tag or edge type.

The vertex (node) to be deleted is specified as an input argument. It must be a vertex belonging to the TIN feature defined by the input seed.

The seed will be modified, if necessary, to properly reference the edited feature.

The TIN must be in edit mode. See ITinEdit.StartEditing and ITinFeatureEdit.StartInMemoryEditing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
moveVertex in interface ITinFeatureEdit
Parameters:
pNode - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
pNewLocation - A Structure: com.esri.arcgis.system._WKSPoint (A com.esri.arcgis.system._WKSPoint COM typedef) (in)
bGetNewZ - The bGetNewZ (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryAdjacentVertices

public void queryAdjacentVertices(ITinFeatureSeed pSeedEdge,
                                  ITinNode pBehind,
                                  ITinNode pFront)
                           throws IOException,
                                  AutomationException
Queries the first two non-densified nodes of a line segment represented by the specified edge).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryAdjacentVertices in interface ITinFeatureEdit
Parameters:
pSeedEdge - A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
pBehind - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
pFront - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

clusterPoints

public IEnumTinNode clusterPoints(ITinNode pSeed,
                                  double spacing,
                                  ITinFilter pFilter)
                           throws IOException,
                                  AutomationException
Finds a cluster of nodes, each node in the group has at least one neighbor, to which the distance is smaller, or equal to, the specified value.

Description

Returns a node enumerator which represents the set wherein all members have at least one neighboring node that passes through the filter (optional) and is less than, or equal to, the spacing distance away from another in the set. The search for the set starts with the seed node and expands outward.

Use of a filter is optional. A NULL pointer (or 'Nothing' in VB) can be used to skip it. When used, the filter must be a type supported by nodes. Examples include TinValueFilter and TinNodeSourceFilter.

The clustering works in an iterative fashion. First, all nodes connected by triangle edges to the seed node are evaluated. Those that are within the specified distance, and satisfy the filter (if used), are included in the set. The operation is then repeated on the nodes just added. This continues until no more nodes are found.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
clusterPoints in interface ITinFeatureEdit
Parameters:
pSeed - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
spacing - The spacing (in)
pFilter - A reference to a com.esri.arcgis.geodatabase.ITinFilter (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumTinNode
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isNodeShared

public boolean isNodeShared(ITinNode pNode)
                     throws IOException,
                            AutomationException
Returns TRUE if specified node is shared by more than two enforced edges.

Description

Returns TRUE if three or more edges incident to the passed node are enforced as hard or soft edges.

When a node is shared it belongs to two or more linear features (enforced breaklines and polygon boundaries).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isNodeShared in interface ITinFeatureEdit
Parameters:
pNode - A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
Returns:
The pIsShared
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

refreshTagValues

public void refreshTagValues()
                      throws IOException,
                             AutomationException
Refresh cached TIN tag values.

Description

For performance reasons complete tag statistics are not maintained while editing a TIN. Methods that use or report these statistics may return outdated results while the TIN is in edit mode. These include:


ITinAdvanced.GetUniqueTagValues

ITinAdvanced.UniqueTagValueCount

ITinAdvanced2.GetCountedUniqueTagValues

To ensure correct results you must either save the edited TIN to disk, which is relatively expensive and may be undesirable for other reasons, or call RefreshTagValues.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
refreshTagValues in interface ITinFeatureEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

reset

public void reset()
           throws IOException,
                  AutomationException
Reset clock.

Product Availability

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

Specified by:
reset in interface ITinClock
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

sleep

public void sleep(double seconds)
           throws IOException,
                  AutomationException
Suspends the execution of the current thread for the specified interval (in seconds).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getElapsedTime

public double getElapsedTime()
                      throws IOException,
                             AutomationException
Return elapsed (since last Reset call) time in seconds.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getElapsedTime in interface ITinClock
Returns:
The pElapsedTime
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNodeEditInfo

public int getNodeEditInfo(int nodeIndex)
                    throws IOException,
                           AutomationException
Node info.

Product Availability

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

Specified by:
getNodeEditInfo in interface ITinNodeInfo
Parameters:
nodeIndex - The nodeIndex (in)
Returns:
The pInfo
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

clearEditErrorLog

public void clearEditErrorLog()
                       throws IOException,
                              AutomationException
Clears existing error log contents.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
clearEditErrorLog in interface ITinEditErrorLog
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

saveEditErrorLog

public void saveEditErrorLog(String fileName)
                      throws IOException,
                             AutomationException
Saves error log contents to a file.

Description

Saves a log file containing information about errors encountered while triangulating. If EditErrorCount is greater than zero at the end of an edit session call SaveEditErrorLog to write out a report.

filename is the location where to write the log file.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getEditErrorCount

public int getEditErrorCount()
                      throws IOException,
                             AutomationException
The number of errors.

Description

The number of errors encountered while modifying the triangulation.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getEditErrorCount in interface ITinEditErrorLog
Returns:
The pcErrors
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setCurrentObjectClassName

public void setCurrentObjectClassName(String pName)
                               throws IOException,
                                      AutomationException
Name representing a group of shapes to be added/edited.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getCurrentObjectClassName

public String getCurrentObjectClassName()
                                 throws IOException,
                                        AutomationException
Name representing a group of shapes to be added/edited.

Description

The ObjectClass of geometry associated with a triangulation error. You can set this value to be anything meaningful to you like the name of the source featureclass of the geometry.

If you're adding shapes with ITinEdit.AddShape or ITinEdit.AddShapeZ and an error is raised with a code of:

E_TIN_INTERNAL_ERROR

some form of error was encountered during triangulation. In the rare case an error occurs, it's usually failure to enforce some part of a breakline. In your error handler you can trap for this error code, record the source of geometry in the CurrentObjectClass property (e.g. featureclass name), along with an ID code in CurrentObjectID (e.g. OID), and continue on.

At the end of the edit session your code can check EditErrorCount and if errors exist call SaveEditErrorLog to persist the information to a log file on disk. The ObjectClass and ObjectID you recorded for each instance of an error will be written out along with coordinates identifying the problem locations.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setCurrentObjectID

public void setCurrentObjectID(int pID)
                        throws IOException,
                               AutomationException
ID of the shape to be added/edited.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getCurrentObjectID

public int getCurrentObjectID()
                       throws IOException,
                              AutomationException
ID of the shape to be added/edited.

Description

The ID of geometry associated with a triangulation error. You can set this value to be anything meaningful to you like the OID of a feature or the iteration number of a loop.

If you're adding shapes with ITinEdit.AddShape or ITinEdit.AddShapeZ and an error is raised with a code of:

E_TIN_INTERNAL_ERROR

some form of error was encountered during triangulation. In the rare case an error occurs, it's usually failure to enforce some part of a breakline. In your error handler you can trap for this error code, record the source of geometry in the CurrentObjectClass property (e.g. featureclass name), along with an ID code in CurrentObjectID (e.g. OID), and continue on.

At the end of the edit session your code can check EditErrorCount and if errors exist call SaveEditErrorLog to persist the information to a log file on disk. The ObjectClass and ObjectID you recorded for each instance of an error will be written out along with coordinates identifying the problem locations.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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