com.esri.arcgis.analyst3d
Class GeneralMultiPatchCreator

java.lang.Object
  extended bycom.esri.arcgis.analyst3d.GeneralMultiPatchCreator
All Implemented Interfaces:
IGeneralMultiPatchCreator, java.io.Serializable

public class GeneralMultiPatchCreator
extends java.lang.Object
implements IGeneralMultiPatchCreator

The General MultiPatch Creator component.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Remarks

GeneralMultipatchCreator is used to create textured multipatches.  Once a multipatch geometry is created, it can be used to make a multipatch graphics element to be added to a scene.  Alternatively, the multipatch geometry can be saved to a GeoDatabase (*.mdb).  If it's saved to a shapefile, the texture'd be lost.

See Also:
Serialized Form

Constructor Summary
GeneralMultiPatchCreator()
          Constructs a GeneralMultiPatchCreator using ArcGIS Engine.
GeneralMultiPatchCreator(java.lang.Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
 
Method Summary
 void clearResources()
          Clear resources used to manage the object.
 IGeometry createMultiPatch()
          Creates the MultiPatch.
 boolean equals(java.lang.Object o)
          Compare this object with another
 IGeneralMultiPatchCreator getAsIGeneralMultiPatchCreator()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
static java.lang.String getClsid()
           
 int hashCode()
          the hashcode for this object
 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.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GeneralMultiPatchCreator

public GeneralMultiPatchCreator()
                         throws java.io.IOException,
                                java.net.UnknownHostException
Constructs a GeneralMultiPatchCreator using ArcGIS Engine.

Throws:
java.io.IOException - if there are interop problems
java.net.UnknownHostException - if there are interop problems

GeneralMultiPatchCreator

public GeneralMultiPatchCreator(java.lang.Object obj)
                         throws java.io.IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.

Construct a GeneralMultiPatchCreator using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to GeneralMultiPatchCreator.
GeneralMultiPatchCreator theGeneralMultiPatchCreator = (GeneralMultiPatchCreator) obj;

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
java.io.IOException - if there are interop problems
Method Detail

getClsid

public static java.lang.String getClsid()

getAsIGeneralMultiPatchCreator

public IGeneralMultiPatchCreator getAsIGeneralMultiPatchCreator()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


equals

public boolean equals(java.lang.Object o)
Compare this object with another


hashCode

public int hashCode()
the hashcode for this object


init

public void init(int pointCount,
                 int partCount,
                 boolean hasMs,
                 boolean hasIDs,
                 boolean hasNormals,
                 int texturePointCount,
                 IGeometryMaterialList pGeometryMaterialList)
          throws java.io.IOException,
                 AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Initialize the creation of a general multipatch.

Supported Platforms

Windows, Solaris, Linux

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.

Specified by:
init in interface IGeneralMultiPatchCreator
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:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

setPatchPointIndex

public void setPatchPointIndex(int patch,
                               int index)
                        throws java.io.IOException,
                               AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set start index of points in patch, end index is start of next patch.

Specified by:
setPatchPointIndex in interface IGeneralMultiPatchCreator
Parameters:
patch - The patch (in)
index - The index (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

setPatchType

public void setPatchType(int patch,
                         int type)
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set patch type.

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

setPatchPriority

public void setPatchPriority(int patch,
                             int priority)
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set patch priority (>= 0).

Specified by:
setPatchPriority in interface IGeneralMultiPatchCreator
Parameters:
patch - The patch (in)
priority - The priority (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMaterialIndex

public void setMaterialIndex(int patch,
                             int index)
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set patch material index.

Specified by:
setMaterialIndex in interface IGeneralMultiPatchCreator
Parameters:
patch - The patch (in)
index - The index (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

setPoint

public void setPoint(int index,
                     IPoint pPoint)
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set Point at vertex index.

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

setWKSPointZ

public void setWKSPointZ(int index,
                         _WKSPointZ pPoint)
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set WKSPoint at vertex index.

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

setM

public void setM(int index,
                 double mValue)
          throws java.io.IOException,
                 AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set M at vertex index.

Specified by:
setM in interface IGeneralMultiPatchCreator
Parameters:
index - The index (in)
mValue - The mValue (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setNormal

public void setNormal(int index,
                      IVector3D pVector)
               throws java.io.IOException,
                      AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set Normal at vertex index.

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

setPatchTexturePointIndex

public void setPatchTexturePointIndex(int part,
                                      int index)
                               throws java.io.IOException,
                                      AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set texture start index texture points in patch, end index is start of next patch.

Specified by:
setPatchTexturePointIndex in interface IGeneralMultiPatchCreator
Parameters:
part - The part (in)
index - The index (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTexturePoint

public void setTexturePoint(int index,
                            IPoint pPoint)
                     throws java.io.IOException,
                            AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set Texture Point at vertex index.

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

setTextureWKSPoint

public void setTextureWKSPoint(int index,
                               _WKSPoint pPoint)
                        throws java.io.IOException,
                               AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set Texture WKSPoint at vertex index.

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

setID

public void setID(int index,
                  int iD)
           throws java.io.IOException,
                  AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Set vertex Id.

Specified by:
setID in interface IGeneralMultiPatchCreator
Parameters:
index - The index (in)
iD - The iD (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

clearResources

public void clearResources()
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Clear resources used to manage the object.

Supported Platforms

Windows, Solaris, Linux

Specified by:
clearResources in interface IGeneralMultiPatchCreator
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createMultiPatch

public IGeometry createMultiPatch()
                           throws java.io.IOException,
                                  AutomationException
Description copied from interface: IGeneralMultiPatchCreator
Creates the MultiPatch.

Supported Platforms

Windows, Solaris, Linux

Specified by:
createMultiPatch in interface IGeneralMultiPatchCreator
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.