|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ITinFeatureEdit
Provides access to methods that control TIN 'features'.
Method Summary | |
---|---|
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. |
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 |
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 |
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. |
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 |
convertToPolygons(IFeatureClass pFeatureClass,
ITinDynamicFilter pFilter,
boolean bStopAtEnforcedEdge,
boolean bSkipDensifiedNodes,
Object pFieldName)
Converts qualified 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 |
delete(ITinFeatureSeed pSeed)
Deletes the embedded point/polygon/polyline represented by the specified seed. |
void |
deleteVertex(ITinNode pNode,
ITinFeatureSeed pSeed)
Deletes the specified vertex from an embedded polygon/polyline. |
IPolygon |
extractPolygon(ITinFeatureSeed pSeed,
boolean bGetZ,
boolean bSkipDensifiedNodes)
Extracts polygon. |
IPolyline |
extractPolyline(ITinFeatureSeed pSeed,
boolean bGetZ,
boolean bSkipDensifiedNodes)
Extracts polyline. |
int |
getElementsIgnoredInConflictTest()
The TIN nodes or edges to be ignored in conflict detection (used by processes such as CanAdd and CanMove). |
boolean |
isInMemoryEditMode()
Indicates if the specified TIN is in in-memory-edit mode. |
boolean |
isNodeShared(ITinNode pNode)
Returns TRUE if specified node is shared by more than two enforced edges. |
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. |
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 |
queryAdjacentVertices(ITinFeatureSeed pSeedEdge,
ITinNode pBehind,
ITinNode pFront)
Queries the first two non-densified nodes of a line segment represented by the specified edge). |
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 |
rotate(ITinFeatureSeed pSeed,
IPoint pOrigin,
double angle,
boolean bGetNewZ)
Rotates the embedded polygon/polyline represented by the specified seed. |
void |
scalePolygon(ITinTriangle pSeed,
IPoint pOrigin,
double scale,
boolean bGetNewZ)
Expands or shrinks the embedded polygon represented by the specified seed. |
void |
setElementsIgnoredInConflictTest(int pElementsExcluded)
The TIN nodes or edges to be ignored in conflict detection (used by processes such as CanAdd and CanMove). |
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. |
boolean |
startInMemoryEditing()
Initiates memory edit mode. |
Method Detail |
---|
boolean startInMemoryEditing() throws IOException, AutomationException
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.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean isInMemoryEditMode() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPolyline extractPolyline(ITinFeatureSeed pSeed, boolean bGetZ, boolean bSkipDensifiedNodes) throws IOException, AutomationException
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.
pSeed
- A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)bGetZ
- The bGetZ (in)bSkipDensifiedNodes
- The bSkipDensifiedNodes (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPolygon extractPolygon(ITinFeatureSeed pSeed, boolean bGetZ, boolean bSkipDensifiedNodes) throws IOException, AutomationException
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.
pSeed
- A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)bGetZ
- The bGetZ (in)bSkipDensifiedNodes
- The bSkipDensifiedNodes (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void convertToPolylines(IFeatureClass pFeatureClass, ITinDynamicFilter pFilter, boolean bSkipDensifiedNodes, Object pFieldName) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void convertToPolygons(IFeatureClass pFeatureClass, ITinDynamicFilter pFilter, boolean bStopAtEnforcedEdge, boolean bSkipDensifiedNodes, Object pFieldName) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setStopAtJuncture(boolean pbStop) throws IOException, AutomationException
pbStop
- The pbStop (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean isStopAtJuncture() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setStopAtEnforcedEdge(boolean pbStop) throws IOException, AutomationException
pbStop
- The pbStop (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean isStopAtEnforcedEdge() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setElementsIgnoredInConflictTest(int pElementsExcluded) throws IOException, AutomationException
pElementsExcluded
- The pElementsExcluded (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.int getElementsIgnoredInConflictTest() throws IOException, AutomationException
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
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean canAdd(IGeometry pShape, double spacing) throws IOException, AutomationException
pShape
- A reference to a com.esri.arcgis.geometry.IGeometry (in)spacing
- The spacing (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean canReplace(IGeometry pShape, ITinFeatureSeed pSeed, double spacing) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean canMove(ITinFeatureSeed pSeed, double dx, double dy, double spacing) throws IOException, AutomationException
pSeed
- A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)dx
- The dx (in)dy
- The dy (in)spacing
- The spacing (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean canRotate(ITinFeatureSeed pSeed, IPoint pOrigin, double angle, double spacing) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean canScalePolygon(ITinTriangle pSeed, IPoint pOrigin, double scale, double spacing) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean canAddVertex(IGeometry pPoly, IPoint pNewPoint, boolean bClose, double spacing) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean canDeleteVertex(ITinNode pNode, ITinFeatureSeed pSeed, double spacing) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean canMoveVertex(ITinNode pNode, ITinFeatureSeed pSeed, _WKSPoint pNewLocation, double spacing) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addPointZ(IPoint pPoint, int tagValue, ITinNode pSeed) throws IOException, AutomationException
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).
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addPolygonZ(IPolygon pShape, int type, int tagValue, int edgeTagValue, int nodeTagValue, ITinTriangle pSeed) throws IOException, AutomationException
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).
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addPolygon(IPolygon pShape, int type, int tagValue, int edgeTagValue, int nodeTagValue, ITinTriangle pSeed, Object pZ) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addPolylineZ(IPolyline pShape, int type, int tagValue, int nodeTagValue, ITinEdge pSeed) throws IOException, AutomationException
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).
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addPolyline(IPolyline pShape, int type, int tagValue, int nodeTagValue, ITinEdge pSeed, Object pZ) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void addPolyObjects(IFeatureClass pFeatureClass, IQueryFilter pFilter, IField pHeightField, IField pValueField, boolean bSetEdgeTagValue, boolean bSetNodeTagValue, int type) throws IOException, AutomationException
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void delete(ITinFeatureSeed pSeed) throws IOException, AutomationException
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
pSeed
- A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void move(ITinFeatureSeed pSeed, double dx, double dy, boolean bGetNewZ) throws IOException, AutomationException
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.
pSeed
- A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)dx
- The dx (in)dy
- The dy (in)bGetNewZ
- The bGetNewZ (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void rotate(ITinFeatureSeed pSeed, IPoint pOrigin, double angle, boolean bGetNewZ) throws IOException, AutomationException
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void scalePolygon(ITinTriangle pSeed, IPoint pOrigin, double scale, boolean bGetNewZ) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void removeIslands(ITinTriangle pSeed, double area, boolean bKeepNodes, boolean bZeroTag) throws IOException, AutomationException
pSeed
- A reference to a com.esri.arcgis.geodatabase.ITinTriangle (in)area
- The area (in)bKeepNodes
- The bKeepNodes (in)bZeroTag
- The bZeroTag (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void merge(ITinEdge pCommonEdge, int newValue, boolean bKeepCommonNodes) throws IOException, AutomationException
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.
pCommonEdge
- A reference to a com.esri.arcgis.geodatabase.ITinEdge (in)newValue
- The newValue (in)bKeepCommonNodes
- The bKeepCommonNodes (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void deleteVertex(ITinNode pNode, ITinFeatureSeed pSeed) throws IOException, AutomationException
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.
pNode
- A reference to a com.esri.arcgis.geodatabase.ITinNode (in)pSeed
- A reference to a com.esri.arcgis.geodatabase.ITinFeatureSeed (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void moveVertex(ITinNode pNode, ITinFeatureSeed pSeed, _WKSPoint pNewLocation, boolean bGetNewZ) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void queryAdjacentVertices(ITinFeatureSeed pSeedEdge, ITinNode pBehind, ITinNode pFront) throws IOException, AutomationException
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IEnumTinNode clusterPoints(ITinNode pSeed, double spacing, ITinFilter pFilter) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean isNodeShared(ITinNode pNode) throws IOException, AutomationException
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).
pNode
- A reference to a com.esri.arcgis.geodatabase.ITinNode (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void refreshTagValues() throws IOException, AutomationException
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.
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 |