|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IGeneralMultiPatchCreator
Provides access to manage the creation of a GeneralMultiPatch.
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.
Use this interface when you're creating your own textured multipatch geometry. To get the multipatch properties, use esriGeometry.olb's IGeneralMultipatchInfo interface.
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 |
---|
void init(int pointCount, int partCount, boolean hasMs, boolean hasIDs, boolean hasNormals, int texturePointCount, IGeometryMaterialList pGeometryMaterialList) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setPatchPointIndex(int patch, int index) throws IOException, AutomationException
patch
- The patch (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setPatchType(int patch, int type) throws IOException, AutomationException
patch
- The patch (in)type
- A com.esri.arcgis.geometry.esriPatchType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setPatchPriority(int patch, int priority) throws IOException, AutomationException
patch
- The patch (in)priority
- The priority (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setMaterialIndex(int patch, int index) throws IOException, AutomationException
patch
- The patch (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setPoint(int index, IPoint pPoint) throws IOException, AutomationException
index
- The index (in)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.void setWKSPointZ(int index, _WKSPointZ pPoint) throws IOException, AutomationException
index
- The index (in)pPoint
- A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setM(int index, double mValue) throws IOException, AutomationException
index
- The index (in)mValue
- The mValue (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setNormal(int index, IVector3D pVector) throws IOException, AutomationException
index
- The index (in)pVector
- A reference to a com.esri.arcgis.geometry.IVector3D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setPatchTexturePointIndex(int part, int index) throws IOException, AutomationException
part
- The part (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setTexturePoint(int index, IPoint pPoint) throws IOException, AutomationException
index
- The index (in)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.void setTextureWKSPoint(int index, _WKSPoint pPoint) throws IOException, AutomationException
index
- The index (in)pPoint
- A Structure: com.esri.arcgis.system._WKSPoint (A com.esri.arcgis.system._WKSPoint COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setID(int index, int iD) throws IOException, AutomationException
index
- The index (in)iD
- The iD (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void clearResources() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IGeometry createMultiPatch() throws IOException, AutomationException
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 |