|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.geodatabase.TinNode
public class TinNode
The ESRI TinNode component.
The TinNode object is one of the three basic elements of a TIN: nodes, edges, and triangles. Triangles are comprised of three nodes and edges. Nodes and edges are ordered around triangles in a clockwise direction.
Nodes store x,y,z and optionally tag values. A tag is a long integer that has user assigned meaning.
When a TIN is first created it's populated with four supernodes connected into 2 triangles. The placement of the supernodes is far outside the declared data envelope (see ITinEdit.InitNew ). The initial triangulation formed by these nodes is used as the foundation for incrementally adding more data. Supernodes are assigned the VoidZ value. Most other nodes in a TIN are derived from input points or vertices of polylines and polygon boundaries. These are original, user input, data. Breakline enforcement may require the software to add densification, or Steiner , nodes. These are used to maintain line or polygon boundaries while simultaneously honoring Delaunay criteria.
ITinNodeInfo is used to determine a node's lineage; whether it's a supernode, an original node, or densification node. Since TINs don't store all node source information once a TIN is saved to disk some of this information is lost. Supernodes can always be differentiated from regular nodes, even after a TIN is saved, by testing their Z's against the VoidZ value.
Constructor Summary | |
---|---|
TinNode()
Constructs a TinNode using ArcGIS Engine. |
|
TinNode(Object obj)
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts. TinNode theTinNode = (TinNode) obj; |
Method Summary | |
---|---|
boolean |
equals(Object o)
Compare this object with another |
int |
esri_getSource()
The source of the node. |
ITinNodeArray |
getAdjacentNodes()
Returns all nodes comprising triangles sharing the specified node. |
static String |
getClsid()
getClsid. |
int |
getDegree(boolean bEnforcedEdgesOnly)
The degree of the node. |
ITinEdgeArray |
getIncidentEdges()
Returns all edges sharing the specified node. |
ITinTriangleArray |
getIncidentTriangles()
Returns all triangles sharing the specified node. |
int |
getIndex()
The element's index number. |
int |
getTagValue()
The tag value of the specified element. |
ITin |
getTheTin()
The TIN object referenced by the element. |
IPolygon |
getVoronoiRegion(IPolygon pClippingPolygon)
Returns the Voronoi-polygon region of the specified node. |
double |
getX()
The x-coordinate of the specified node. |
double |
getY()
The y-coordinate of the specified node. |
double |
getZ()
The z-coordinate of the specified node. |
int |
hashCode()
the hashcode for this object |
ITinTriangle |
incidentTriangle()
Returns any triangle having the node as one of it's vertices. |
int |
incidentTriangleIndex()
Returns the index of any triangle having the node as one of it's vertices. |
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 |
isOnDomainBoundary()
Indicates if the specified node is on domain's boundary. |
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 |
queryAdjacentNodeIndices(ILongArray pNodes)
Returns all nodes connecting to the node. |
void |
queryAsPoint(IPoint pPoint)
Sets the node equal to a point. |
void |
queryAsWKSPointZ(_WKSPointZ[] pPoint)
Sets the node equal to a point with a z value. |
void |
queryIncidentEdgeIndices(ILongArray pEdges)
Returns all edges sharing the node. |
void |
queryIncidentTriangleIndices(ILongArray pTriangles)
Returns all triangles sharing the node. |
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 |
---|
public TinNode() throws IOException, UnknownHostException
IOException
- if there are interop problems
UnknownHostException
- if there are interop problemspublic TinNode(Object obj) throws IOException
TinNode theTinNode = (TinNode) obj;
obj
to TinNode
.
obj
- an object returned from ArcGIS Engine or Server
IOException
- if there are interop problemsMethod Detail |
---|
public static String getClsid()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public boolean isEmpty() throws IOException, AutomationException
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.
isEmpty
in interface ITinElement
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITin getTheTin() throws IOException, AutomationException
getTheTin
in interface ITinElement
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getIndex() throws IOException, AutomationException
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.
getIndex
in interface ITinElement
getIndex
in interface ITinFeatureSeed
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getTagValue() throws IOException, AutomationException
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.
getTagValue
in interface ITinElement
getTagValue
in interface ITinFeatureSeed
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setEmpty() throws IOException, AutomationException
setEmpty
in interface ITinElement
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void init(ITin pTin, int index) throws IOException, AutomationException
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.
init
in interface ITinElement
pTin
- A reference to a com.esri.arcgis.geodatabase.ITin (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isInsideDataArea() throws IOException, AutomationException
isInsideDataArea
in interface ITinElement
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getX() throws IOException, AutomationException
getX
in interface ITinNode
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getY() throws IOException, AutomationException
getY
in interface ITinNode
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getZ() throws IOException, AutomationException
The super nodes of a TIN have a Z value equal to NODATA. Mathmatical operations cannot be performed on NODATA. You can check this case by passing the Z to ITinAdvanced.IsVoidZ, ISurface.IsVoidZ, or ITinSurface.IsVoidZ for evaluation.
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 or data area.
getZ
in interface ITinNode
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryAsPoint(IPoint pPoint) throws IOException, AutomationException
Writes the X, Y, and Z values of the node to an existing, pre-instantiated, Point object. In some cases, such as in loops, it's faster to reuse and write to an existing Point object rather than to create a new one each iteration.
queryAsPoint
in interface ITinNode
pPoint
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryAsWKSPointZ(_WKSPointZ[] pPoint) throws IOException, AutomationException
Writes the X, Y, and Z values of the node to a WKSPointZ variable.
queryAsWKSPointZ
in interface ITinNode
pPoint
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITinNodeArray getAdjacentNodes() throws IOException, AutomationException
Returns a TinNodeArray containing nodes that are next to the given node. These adjacent nodes are connected to the given node by TIN edges.
getAdjacentNodes
in interface ITinNode
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITinEdgeArray getIncidentEdges() throws IOException, AutomationException
The edges returned in the TinEdgeArray all share this node as their from node.
getIncidentEdges
in interface ITinNode
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITinTriangleArray getIncidentTriangles() throws IOException, AutomationException
The returned TinTriangleArray will contain the set of triangles that are incident to, or surround, the given node. In other words, this node belongs to, and is referenced by, every triangle returned.
getIncidentTriangles
in interface ITinNode
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPolygon getVoronoiRegion(IPolygon pClippingPolygon) throws IOException, AutomationException
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.
getVoronoiRegion
in interface ITinNode
pClippingPolygon
- A reference to a com.esri.arcgis.geometry.IPolygon (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int esri_getSource() throws IOException, AutomationException
esri_getSource
in interface ITinNode2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getDegree(boolean bEnforcedEdgesOnly) throws IOException, AutomationException
getDegree
in interface ITinNode2
bEnforcedEdgesOnly
- The bEnforcedEdgesOnly (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isOnDomainBoundary() throws IOException, AutomationException
The TIN's domain is the same thing as its interpolation zone. IsOnDomainBoundary returns TRUE if the node is on this boundary, separating data from nodata areas.
isOnDomainBoundary
in interface ITinNode2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryAdjacentNodeIndices(ILongArray pNodes) throws IOException, AutomationException
Returns indices for nodes adjacent to the given node. These are its direct neighbors which are connected by triangle edges.
The passed object that implements ILongArray must have already been instantiated.
queryAdjacentNodeIndices
in interface ITinNode2
pNodes
- A reference to a com.esri.arcgis.system.ILongArray (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryIncidentEdgeIndices(ILongArray pEdges) throws IOException, AutomationException
This populates a LongArray with the indices of edges that surround the 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.
queryIncidentEdgeIndices
in interface ITinNode2
pEdges
- A reference to a com.esri.arcgis.system.ILongArray (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryIncidentTriangleIndices(ILongArray pTriangles) throws IOException, AutomationException
Returns indices for triangles incident to the node.
The passed object that implements ILongArray must have already been instantiated.
queryIncidentTriangleIndices
in interface ITinNode2
pTriangles
- A reference to a com.esri.arcgis.system.ILongArray (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITinTriangle incidentTriangle() throws IOException, AutomationException
Returns one of the triangles that is incident to the node. There is no fixed rule to determine which triangle it will be. You are just assured it will be one that is defined, in part, by the node.
incidentTriangle
in interface ITinNode2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int incidentTriangleIndex() throws IOException, AutomationException
Returns the index for one of the triangles incident to the node. There is no fixed rule to determine which triangle it will be. You are just assured it will be one that is defined, in part, by the node.
incidentTriangleIndex
in interface ITinNode2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isUseTagValue() throws IOException, AutomationException
isUseTagValue
in interface ITinFeatureSeed
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setUseTagValue(boolean pbUseTagValue) throws IOException, AutomationException
setUseTagValue
in interface ITinFeatureSeed
pbUseTagValue
- The pbUseTagValue (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interfaceSupportsErrorInfo(GUID riid) throws IOException, AutomationException
Indicates whether the interface supports IErrorInfo.
interfaceSupportsErrorInfo
in interface ISupportErrorInfo
riid
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |