com.esri.arcgis.geodatabase
Class TinEdge

java.lang.Object
  extended by com.esri.arcgis.geodatabase.TinEdge
All Implemented Interfaces:
ITinEdge, ITinElement, ITinFeatureSeed, com.esri.arcgis.interop.RemoteObjRef, ISupportErrorInfo, Serializable

public class TinEdge
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, ITinElement, ITinEdge, ITinFeatureSeed, ISupportErrorInfo

The Esri TinEdge component.

Description

The TinEdge object is one of the three basic elements of a TIN: nodes, edges, and triangles. Edges are comprised of two nodes, a FromNode and a ToNode. Edges are oriented in clockwise order and are used to form triangles.

TinEdges may be hard, soft, or regular. Hard and soft edges are enforced in the triangulation. When a TIN is used as a surface model, these usually represent breaklines. Regular edges are simply a consequence of triangulation and dont' have special meaning. The esriTinEdgeType enumeration describes edge type.

Edges have both dual and single representations in a TIN. A given edge has an index, a FromNode and a ToNode, a LeftTriangle and a RightTriangle. If you use ITinEdge.GetNeighbor it returns the corresponding edge in the adjacent triangle. That edge has a different index and its from nodes, to nodes, left and right triangles are opposite of the original edge. In this sense there are two edges between each triangle; the dual representation. On the other hand, a number of properties and functions treat both edges logically as one. Edge type and tag value are shared. These properties will always be the same for both edges. A change in property of one edge is automatically reflected in the other. Selection functionality (see ITinSelection ) works the same way. Selection of one edge automatically results in the selection of its neighbor.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
TinEdge()
          Constructs a TinEdge using ArcGIS Engine.
TinEdge(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
TinEdge theTinEdge = (TinEdge) obj;
 
Method Summary
 boolean equals(Object o)
          Compare this object with another
 double getAzimuthDegrees()
          The azimuthal direction of the specified edge beginning at the FromNode in degrees.
 double getAzimuthRadians()
          The azimuthal direction of the specified edge beginning at the FromNode in radians.
static String getClsid()
          getClsid.
 ITinNode getFromNode()
          The originating node of the specified edge.
 int getIndex()
          The element's index number.
 ITinTriangle getLeftTriangle()
          The triangle on the left (opposite) side of the specified edge.
 double getLength()
          The projected length of the specified edge.
 double getLength3D()
          The length of the specified edge measured on the TIN surface.
 ITinEdge getNeighbor()
          Returns the corresponding edge of the triangle opposite to the specified edge.
 ITinEdge getNextCCW()
          Returns the edge terminating at the FromNode of the specified edge.
 ITinEdge getNextCW()
          Returns the edge beginning at the ToNode of the specified edge.
 ITinEdge getNextInTriangle()
          Returns the next triangle sharing the FromNode of the specified edge in a clockwise direction.
 ITinEdge getPreviousInTriangle()
          Returns the next triangle sharing the FromNode of the specified edge in a counter-clockwise direction.
 ITinTriangle getRightTriangle()
          The triangle on the right side of the specified edge.
 int getTagValue()
          The tag value of the specified element.
 ITin getTheTin()
          The TIN object referenced by the element.
 ITinNode getToNode()
          The terminating node of the specified edge.
 int getType()
          The type of the specified edge.
 int hashCode()
          the hashcode for this object
 void init(ITin pTin, int index)
          Initializes a new TIN element.
 void interfaceSupportsErrorInfo(GUID riid)
          interfaceSupportsErrorInfo
 boolean isEmpty()
          Indicates if the specified element is uninitialized.
 boolean isInsideDataArea()
          Indicates if the specified element is within the interpolation zone of the TIN.
 boolean isUseTagValue()
          Indicates whether tag value (if true) or edge type (if false) should be used to define the feature, in case the seed is an edge.
 void queryAsLine(ILine pLine)
          Sets the specified edge equal to a line.
 void queryAsWKSPointZs(_WKSPointZ[] pFrom, _WKSPointZ[] pTo)
          Sets the specified edge equal to its nodes as points with z values.
 void setEmpty()
          Uninitializes the element.
 void setUseTagValue(boolean pbUseTagValue)
          Indicates whether tag value (if true) or edge type (if false) should be used to define the feature, in case the seed is an edge.
 
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

TinEdge

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

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

TinEdge

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

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

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

isEmpty

public boolean isEmpty()
                throws IOException,
                       AutomationException
Indicates if the specified element is uninitialized.

Description

Indicates whether or not the element has been set with values.

When an element is instantiated using 'New' IsEmpty will return True.

When using QueryNext on one of the element enumerators, the end of the set is indicated by IsEmpty returning True.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getTheTin

public ITin getTheTin()
               throws IOException,
                      AutomationException
The TIN object referenced by the element.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getTheTin in interface ITinElement
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.

getIndex

public int getIndex()
             throws IOException,
                    AutomationException
The element's index number.

Description

Returns the index number of the element. TINs are composed of 1..n node, edge, and triangle elements. The base index number for TIN elements is 1.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getIndex in interface ITinElement
Specified by:
getIndex in interface ITinFeatureSeed
Returns:
The pIndex
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTagValue

public int getTagValue()
                throws IOException,
                       AutomationException
The tag value of the specified element.

Description

A tag value is a 32-bit long integer. Presently, only nodes and triangles support tags. Support for edge tags is anticipated in a future release. Tag values can be set to whatever the user wishes and their interpretation is left up to the user. Examples include accuracy codes on nodes or land cover codes on triangles.

A TIN layer has support to symbolize itself through the use of tag values.

The Identify tool used in ArcMap and ArcScene will report tag values.

The default tag value is 0.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getTagValue in interface ITinElement
Specified by:
getTagValue in interface ITinFeatureSeed
Returns:
The pValue
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setEmpty

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

init

public void init(ITin pTin,
                 int index)
          throws IOException,
                 AutomationException
Initializes a new TIN element.

Description

After instantiating a new TIN element you can initialize its properties with Init. The input arguments include a TIN object and an index number. The base index number for nodes, edges, and triangles is 1.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isInsideDataArea

public boolean isInsideDataArea()
                         throws IOException,
                                AutomationException
Indicates if the specified element is within the interpolation zone of the TIN.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isInsideDataArea in interface ITinElement
Returns:
The pbIsInside
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 specified edge.

Description

The type of an edge indicates whether or not it's an enforced breakline edge. If it's enforced the type will be equal to either esriTinHardEdge or esriTinSoftEdge. If it's not a breakline edge the type will equal esriTinRegularEdge.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getFromNode

public ITinNode getFromNode()
                     throws IOException,
                            AutomationException
The originating node of the specified edge.

Description

The FromNode of an edge is the first node of an edge. It is equivalent to the ToNode of the previous edge.

Each triangle in a TIN is comprised of three edges. The edges are oriented clockwise.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFromNode in interface ITinEdge
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.

getToNode

public ITinNode getToNode()
                   throws IOException,
                          AutomationException
The terminating node of the specified edge.

Description

The ToNode of an edge is the second node of an edge. It is equivalent to the FromNode of the next edge.

Each triangle in a TIN is comprised of three edges. The edges are oriented clockwise.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getToNode in interface ITinEdge
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.

getLeftTriangle

public ITinTriangle getLeftTriangle()
                             throws IOException,
                                    AutomationException
The triangle on the left (opposite) side of the specified edge.

Description

Edges are always ordered clockwise, one after the other, in the triangle to which they belong. Because of this, edges on the absolute boundary of a triangulation have no LeftTriangle. A null pointer, or 'Nothing', will be returned as the LeftTriangle for these edges.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getLeftTriangle in interface ITinEdge
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.

getRightTriangle

public ITinTriangle getRightTriangle()
                              throws IOException,
                                     AutomationException
The triangle on the right side of the specified edge.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getRightTriangle in interface ITinEdge
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.

getLength

public double getLength()
                 throws IOException,
                        AutomationException
The projected length of the specified edge.

Description

Length represents the 2-D distance between the from and to nodes of the edge. It takes into consideration only the X and Y coordinates.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getLength3D

public double getLength3D()
                   throws IOException,
                          AutomationException
The length of the specified edge measured on the TIN surface.

Description

Length3D represents the 3-D distance between the from and to nodes of the edge. It takes into consideration X, Y, and Z coordinates.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getAzimuthRadians

public double getAzimuthRadians()
                         throws IOException,
                                AutomationException
The azimuthal direction of the specified edge beginning at the FromNode in radians.

Description

The azimuth represents the compass direction of the edge starting at the from node and heading toward the to node.

The returned value is in radians.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getAzimuthDegrees

public double getAzimuthDegrees()
                         throws IOException,
                                AutomationException
The azimuthal direction of the specified edge beginning at the FromNode in degrees.

Description

The azimuth represents the compass direction of the edge starting at the from node and heading toward the to node.

The returned value is in degrees.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

queryAsLine

public void queryAsLine(ILine pLine)
                 throws IOException,
                        AutomationException
Sets the specified edge equal to a line.

Description

Writes the from and to nodes of the edge as points to an existing, pre-instantiated, Line object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryAsLine in interface ITinEdge
Parameters:
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.

queryAsWKSPointZs

public void queryAsWKSPointZs(_WKSPointZ[] pFrom,
                              _WKSPointZ[] pTo)
                       throws IOException,
                              AutomationException
Sets the specified edge equal to its nodes as points with z values.

Description

Writes the from and to nodes of the edge as points to existing WKSPointZ variables.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
queryAsWKSPointZs in interface ITinEdge
Parameters:
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.

getNextInTriangle

public ITinEdge getNextInTriangle()
                           throws IOException,
                                  AutomationException
Returns the next triangle sharing the FromNode of the specified edge in a clockwise direction.

Description

Returns the next edge ahead in the triangle. The next edge ahead is in the clockwise direction.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNextInTriangle in interface ITinEdge
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.

getPreviousInTriangle

public ITinEdge getPreviousInTriangle()
                               throws IOException,
                                      AutomationException
Returns the next triangle sharing the FromNode of the specified edge in a counter-clockwise direction.

Description

Returns the previous edge in the triangle. The previous edge is counter-clockwise to this edge.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getPreviousInTriangle in interface ITinEdge
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.

getNeighbor

public ITinEdge getNeighbor()
                     throws IOException,
                            AutomationException
Returns the corresponding edge of the triangle opposite to the specified edge.

Description

A triangle is comprised of three edges. They are ordered clockwise one after another. So, the RightTriangle of an edge is the triangle the edge belongs to. An edge's neighboring edge is the edge of the LeftTriangle that shares the same nodes (although from and to are reversed).

GetNeighbor will return Nothing (a null pointer) when the edge is on the absolute boundary of the triangulation.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNeighbor in interface ITinEdge
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.

getNextCW

public ITinEdge getNextCW()
                   throws IOException,
                          AutomationException
Returns the edge beginning at the ToNode of the specified edge.

Description

Returns the next edge, in a neighboring triangle, that is clockwise to this edge relative to its from node. Consider the from node the center hub of a bicycle wheel and edges incident to it spokes. GetNextCW returns the next spoke (edge) clockwise.

This member is useful when you need to circle around nodes.

If the from node of an edge is one of the TIN's super nodes, GetNextCW will return 'Nothing' (a null pointer) when there is no next edge due to the fact the absolute boundary has been reached.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNextCW in interface ITinEdge
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.

getNextCCW

public ITinEdge getNextCCW()
                    throws IOException,
                           AutomationException
Returns the edge terminating at the FromNode of the specified edge.

Description

Returns the next edge, in a neighboring triangle, that is counter-clockwise to this edge relative to its from node. Consider the from node the center hub of a bicycle wheel and edges incident to it spokes. GetNextCCW returns the next spoke (edge) counter-clockwise.

This member is useful when you need to circle around nodes.

If the from node of an edge is one of the TIN's super nodes, GetNextCCW will return 'Nothing' (a null pointer) when there is no next edge due to the fact the absolute boundary has been reached.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNextCCW in interface ITinEdge
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.

isUseTagValue

public boolean isUseTagValue()
                      throws IOException,
                             AutomationException
Indicates whether tag value (if true) or edge type (if false) should be used to define the feature, in case the seed is an edge.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setUseTagValue

public void setUseTagValue(boolean pbUseTagValue)
                    throws IOException,
                           AutomationException
Indicates whether tag value (if true) or edge type (if false) should be used to define the feature, in case the seed is an edge.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setUseTagValue in interface ITinFeatureSeed
Parameters:
pbUseTagValue - The pbUseTagValue (in)
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.