com.esri.arcgis.geodatabase
Interface ITinAdvanced2

All Superinterfaces:
ITin, ITinAdvanced, Serializable
All Known Implementing Classes:
Tin

public interface ITinAdvanced2
extends ITinAdvanced, Serializable

Provides access to members that control advanced TIN functions.

Product Availability

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


Method Summary
 void convertToPolylines(IFeatureClass pFeatureClass, ITinDynamicFilter pFilter, Object pFieldName)
          Converts qualified edges to a polyline feature class.
 int findTriangleIndex(IPoint pPoint)
          The triangle at the specified location.
 void getCountedUniqueTagValues(int type, ILongArray[] ppValues, ILongArray[] ppCounts)
          Returns unique tag values with counts for the specified element type.
 int getLeftTriangleIndex(int edgeIndex)
          Gets left triangle index of the specified edge.
 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 getNodeDegree(int nodeIndex, boolean bEnforcedEdgesOnly)
          Returns the degree of the specified node.
 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 getRightTriangleIndex(int edgeIndex)
          Gets right triangle index of the specified edge.
 void getSpecialEdgeCounts(int[] pcHardDataEdges, int[] pcSoftDataEdges, int[] pcTagValueDataEdges)
          Returns the total number of special edges in the TIN.
 boolean hasEdgeType(int type)
          Returns TRUE if the TIN contains the specified edge type.
 boolean isEdgeInsideDataArea(int edgeIndex)
          Returns TRUE if the edge is inside data area.
 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 isTriangleInsideDataArea(int triangleIndex)
          Returns TRUE if the triangle is inside data area.
 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 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 queryNaturalNeighborIndices(IPoint pPoint, ILongArray pNodes)
          Returns all Natural Neighbors corresponding 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 queryNodeIndicesAroundNode(int nodeIndex, ILongArray pNodes)
          Returns all nodes connected to the specified node.
 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 saveAsVersion(String newName, int ver, Object pOverWrite)
          Saves the TIN to disk using the specified (full path) name.
 
Methods inherited from interface com.esri.arcgis.geodatabase.ITinAdvanced
convertToPolygons, extractPolygon, extractPolyline, findNaturalNeighbors, findTriangle, findTriangleNeighborhood, generateUniqueTagValue, getDataArea, getEdge, getEdgeCount, getEdgeTagValue, getEdgeType, getFlag, getFullExtent, getNode, getNodeCount, getNodeTagValue, getNodeZ, getSuperNodeExtent, getSurface, getTrackCancel, getTriangle, getTriangleCount, getTriangleSeeds, getTriangleTagValue, getUniqueTagValueCount, getUniqueTagValues, init, isProcessCancelled, isVoidZ, makeEdgeEnumerator, makeNodeEnumerator, makeTriangleEnumerator, queryEdge, queryEdgeAsLine, queryEdgeAsWKSPointZs, queryNearestEdge, queryNearestNode, queryNode, queryNodeAsPoint, queryNodeAsWKSPointZ, queryTriangle, queryTriangleAsRing, queryTriangleAsWKSPointZs, setEmpty, setFlag, setProcessCancelled, setTrackCancelByRef
 
Methods inherited from interface com.esri.arcgis.geodatabase.ITin
getDataEdgeCount, getDataNodeCount, getDataTriangleCount, getExtent, getFields, getVersion, getZFactor, isDelaunay, isEmpty, isHasEdgeTagValues, isHasNodeTagValues, isHasTriangleTagValues, saveAs, setZFactor
 

Method Detail

getNodeSource

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

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

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

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

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

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

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

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

getSpecialEdgeCounts

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

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

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

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

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

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

getRightTriangleIndex

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

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

queryBeginEndNodeIndices

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

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

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

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

queryTriangleNodeIndices

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

isEdgeInsideDataArea

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

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

isNodeInsideDataArea

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

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

getCountedUniqueTagValues

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

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

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

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

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

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

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

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.