com.esri.arcgis.geodatabase
Interface ITinSurface2

All Superinterfaces:
IFunctionalSurface, ISurface, ITinSurface, Serializable
All Known Implementing Classes:
Tin

public interface ITinSurface2
extends ITinSurface, Serializable

Provides access to members that control TIN surfaces.

Product Availability

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


Method Summary
 void convertToMultiPatches(IFeatureClass pFeatureClass, int maxPatchSize, int maxStripSize)
          Convert TIN into Multipatches.
 void decimateNodes(IEnvelope pAreaOfInterest, double zTolerance, boolean bCopyBreakline, Object pMaxRemainingNodeCount, ITin[] ppNewTin, Object[] pbToleranceAchieved)
          Outputs a new TIN with reduced number of nodes.
 void decimateNodesByCount(IEnvelope pAreaOfInterest, int maxRemainingNodeCount, boolean bCopyBreakline, ITin[] ppNewTin)
          Outputs a new TIN with reduced number of nodes.
 void interpolateAsMultiPatch(IPolygon pShape, int maxStripSize, IMultiPatch[] ppMultiPatch)
          Interpolate the input Polygon and output as a Multipatch.
 IMultipoint locateMultiple(IRay pRay)
          Returns the intersections of the query ray and the surface.
 
Methods inherited from interface com.esri.arcgis.geodatabase.ITinSurface
getIntensity, getPartialVolumeAndArea, getRasterInterpolationMethod, getSunPosition, getSurfaceElement, setRasterInterpolationMethod, setSunPosition
 
Methods inherited from interface com.esri.arcgis.geodatabase.ISurface
asPolygons, contour, contourList, getAspectDegrees, getAspectRadians, getContour, getElevation, getLineOfSight, getProfile, getProjectedArea, getSlopeDegrees, getSlopePercent, getSlopeRadians, getSteepestPath, getSurfaceArea, getVolume, getZFactor, interpolateShape, interpolateShapeVertices, isVoidZ, locate, locateAll, queryNormal, queryPixelBlock, querySurfaceLength, setZFactor
 
Methods inherited from interface com.esri.arcgis.geometry.IFunctionalSurface
getDomain, getZ
 

Method Detail

interpolateAsMultiPatch

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

Description

Takes a 2-D polygon and converts it into a multipatch which, by definition, is 3-D. The polygon boundary heights are interpolated from the TIN using linear interpolation. The triangles from the TIN, along with the integrated polygon boundary, are extracted as triangle strips. The strips are used to populate the output multipatch geometry.

pShape is the input polygon.

MaxStripSize controls the maximum number of points used to create an individual triangle strip. Note that each multipatch is usually comprised of multiple strips. The value must be 3 or larger. The recommended range is between 128 and 2048.

pMultiPatch is the resulting geometry. What you provide for this parameter need not reference an instantiated object. Just provide an interface pointer and the function will create the multipatch.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

convertToMultiPatches

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

Description

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

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

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

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

decimateNodes

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

Description

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

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

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

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

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

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

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

decimateNodesByCount

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

Description

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

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

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

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

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

locateMultiple

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

Description

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

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

Notes:

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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