com.esri.arcgis.analyst3d
Interface IGeneralMultiPatchCreator

All Superinterfaces:
Serializable
All Known Implementing Classes:
GeneralMultiPatchCreator

public interface IGeneralMultiPatchCreator
extends Serializable

Provides access to manage the creation of a GeneralMultiPatch.

Remarks

Use this interface to create a textured multipatch, which can be made into a 3D marker symbol. Once the symbol is made, it can be either added as a symbol element (graphics) to an application or saved to a 3D marker symbol template in a style for future use. Alternatively, a textured multipatch can also be stored as a feature class in a File Geodatabase (*.gdb), a Personal Geodatabase (*.mdb), an ArcSDE Database, or a Shapefile (*.shp). If it's stored in a Shapefile, only the geometry is kept and all the textures will be lost.

When To Use

Use this interface when you're creating your own textured multipatch geometry. To get the multipatch properties, use esriGeometry.olb's IGeneralMultipatchInfo interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux


Method Summary
 void clearResources()
          Clear resources used to manage the object.
 IGeometry createMultiPatch()
          Creates the MultiPatch.
 void init(int pointCount, int partCount, boolean hasMs, boolean hasIDs, boolean hasNormals, int texturePointCount, IGeometryMaterialList pGeometryMaterialList)
          Initialize the creation of a general multipatch.
 void setID(int index, int iD)
          Set vertex Id.
 void setM(int index, double mValue)
          Set M at vertex index.
 void setMaterialIndex(int patch, int index)
          Set patch material index.
 void setNormal(int index, IVector3D pVector)
          Set Normal at vertex index.
 void setPatchPointIndex(int patch, int index)
          Set start index of points in patch, end index is start of next patch.
 void setPatchPriority(int patch, int priority)
          Set patch priority (>= 0).
 void setPatchTexturePointIndex(int part, int index)
          Set texture start index texture points in patch, end index is start of next patch.
 void setPatchType(int patch, int type)
          Set patch type.
 void setPoint(int index, IPoint pPoint)
          Set Point at vertex index.
 void setTexturePoint(int index, IPoint pPoint)
          Set Texture Point at vertex index.
 void setTextureWKSPoint(int index, _WKSPoint pPoint)
          Set Texture WKSPoint at vertex index.
 void setWKSPointZ(int index, _WKSPointZ pPoint)
          Set WKSPoint at vertex index.
 

Method Detail

init

void init(int pointCount,
          int partCount,
          boolean hasMs,
          boolean hasIDs,
          boolean hasNormals,
          int texturePointCount,
          IGeometryMaterialList pGeometryMaterialList)
          throws IOException,
                 AutomationException
Initialize the creation of a general multipatch.

Remarks

For IGeneralMultipatchCreator interface, part and patch are used interchangeably. So are point and vertex.

When initialize a multipatch, pay close attention to the number of points and texture points. The number of points represents the total point count, whereas the number of texture points represents only those that are involved in deciding texture coordinates. Therefore, the number of points should be equal or greater than the number of texture points.

For a polygonal part, the first and the last point should be at the same coordinate so that the polygon would close. So a square or rectangle polygon should have five points. This applies to rings in a multipatch. Similarly, a triangle fan's first non-center point should repeat itself in closing. Therefore a sqaure-based pyramid should have six points, rather than five.

For the ArcGIS 9.0 newly introduced multipatch part triangles, however, one triangle does not need to have an extra point to close. This means that a triangle has only three points.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Parameters:
pointCount - The pointCount (in)
partCount - The partCount (in)
hasMs - The hasMs (in)
hasIDs - The hasIDs (in)
hasNormals - The hasNormals (in)
texturePointCount - The texturePointCount (in)
pGeometryMaterialList - A reference to a com.esri.arcgis.analyst3d.IGeometryMaterialList (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setPatchPointIndex

void setPatchPointIndex(int patch,
                        int index)
                        throws IOException,
                               AutomationException
Set start index of points in patch, end index is start of next patch.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

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

setPatchType

void setPatchType(int patch,
                  int type)
                  throws IOException,
                         AutomationException
Set patch type.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Parameters:
patch - The patch (in)
type - A com.esri.arcgis.geometry.esriPatchType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setPatchPriority

void setPatchPriority(int patch,
                      int priority)
                      throws IOException,
                             AutomationException
Set patch priority (>= 0).

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

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

setMaterialIndex

void setMaterialIndex(int patch,
                      int index)
                      throws IOException,
                             AutomationException
Set patch material index.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

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

setPoint

void setPoint(int index,
              IPoint pPoint)
              throws IOException,
                     AutomationException
Set Point at vertex index.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Parameters:
index - The index (in)
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setWKSPointZ

void setWKSPointZ(int index,
                  _WKSPointZ pPoint)
                  throws IOException,
                         AutomationException
Set WKSPoint at vertex index.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Parameters:
index - The index (in)
pPoint - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setM

void setM(int index,
          double mValue)
          throws IOException,
                 AutomationException
Set M at vertex index.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

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

setNormal

void setNormal(int index,
               IVector3D pVector)
               throws IOException,
                      AutomationException
Set Normal at vertex index.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Parameters:
index - The index (in)
pVector - A reference to a com.esri.arcgis.geometry.IVector3D (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setPatchTexturePointIndex

void setPatchTexturePointIndex(int part,
                               int index)
                               throws IOException,
                                      AutomationException
Set texture start index texture points in patch, end index is start of next patch.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

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

setTexturePoint

void setTexturePoint(int index,
                     IPoint pPoint)
                     throws IOException,
                            AutomationException
Set Texture Point at vertex index.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Parameters:
index - The index (in)
pPoint - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTextureWKSPoint

void setTextureWKSPoint(int index,
                        _WKSPoint pPoint)
                        throws IOException,
                               AutomationException
Set Texture WKSPoint at vertex index.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Parameters:
index - The index (in)
pPoint - A Structure: com.esri.arcgis.system._WKSPoint (A com.esri.arcgis.system._WKSPoint COM typedef) (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setID

void setID(int index,
           int iD)
           throws IOException,
                  AutomationException
Set vertex Id.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

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

clearResources

void clearResources()
                    throws IOException,
                           AutomationException
Clear resources used to manage the object.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createMultiPatch

IGeometry createMultiPatch()
                           throws IOException,
                                  AutomationException
Creates the MultiPatch.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires 3D Analyst Extension.

Supported Platforms

Windows, Solaris, Linux

Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.