com.esri.arcgis.display
Interface IDynamicGlyphFactory

All Superinterfaces:
Serializable
All Known Subinterfaces:
IDynamicGlyphFactory2
All Known Implementing Classes:
DynamicDisplay, DynamicGlyphFactory, IDynamicGlyphFactory2Proxy, IDynamicGlyphFactoryProxy

public interface IDynamicGlyphFactory
extends Serializable

Provides access to create dynamic glyphs.

Superseded By

IDynamicGlyphFactory2

Description

Use the dynamic glyph factory singleton object in order to create and delete dynamic glyphs. The dynamic glyphs can be used with the Dynamic Symbols in order to render Dynamic Items.

Remarks

Dynamic Glyph Factory:

The Dynamic Glyph Factory is a singleton object; therefore you can always co-create it in order to use it to create and delete dynamic glyphs. With Respect to performance, it is preferable to create the dynamic glyphs in the context of the IDynamicLayer’s DrawDynamicLayer method, in the esriDDPImmediate draw phase, or in the context of the IDynamicMapEvents BeforeDynamicDraw or AfterDynamicDraw method, while casting the passed in IDynamicDisplay interface to IDynamicGlyphFactory.

When co-creating the DynamicGlyphFactory singleton in a DotNet application, use the Activator class instead of using the new keyword:

Type t = Type.GetTypeFromProgID("esriCarto.DynamicGlyphFactory");

System.Object dynamicGlyphFactoryObject = Activator.CreateInstance(t);

IDynamicGlyphFactory2 dynamicGlyphFactory = dynamicGlyphFactoryObject as IDynamicGlyphFactory2;

See also: System.__ComObject and casting to strongly typed RCWs

Glyph Groups:

A Dynamic Glyphs Group is a container that holds multiple glyphs. It is composed of a bitmap and a database that holds information about the group and the elements (glyphs and glyphs’ items) in the group. The image is a mosaic of sub-images of icons (marker glyphs), lines (line glyphs), and groups of characters (each group composes a text glyph).
The bitmap holds color information (Red, Green, Blue, and Alpha values) for each pixel. The bitmap can be loaded from one of two file images - one that holds the RGB values, and a second one that holds the ALPHA values, or from a single file image that holds RGBA values.
The Glyphs Group database is loaded from an XML file. This XML file holds general information about the group, and specific location and size information for each of the items and elements of the group.
A new Glyphs Group can be loaded using the IDynamicGlyphFactory.LoadDynamicGlyphsGroup method.
Glyphs Group ID 1 is reserved to be the default Glyphs Group, and supplies a default set of Dynamic Glyphs.

Product Availability

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


Method Summary
 IDynamicGlyph createDynamicGlyph(ISymbol symbol)
          Creates a dynamic glyph from a symbol.
 IDynamicGlyph createDynamicGlyphFromFile(int glyphType, String fileName, IColor transparencyColor)
          Creates a dynamic glyph from a file.
 void deleteDynamicGlyph(IDynamicGlyph glyph)
          Deletes the dynamic glyph's resource.
 IDynamicGlyph getDynamicGlyph(int groupId, int glyphType, int index)
          Retrieves a dynamic glyph from a glyph group.
 void init(IScreenDisplay screenDisplay)
          Initialize the dynamic glyph factory.
 int loadDynamicGlyphsGroup(String fileName)
          Loads a dynamic glyph group from files.
 void unloadDynamicGlyphsGroup(int groupId)
          Unloads a dynamic glyph group, and any corresponding resources.
 

Method Detail

init

void init(IScreenDisplay screenDisplay)
          throws IOException,
                 AutomationException
Initialize the dynamic glyph factory.

Remarks

This method should only be used after co-creating a Dynamic Glyph Factory. There is no need to init a Dynamic Glyph Factory that was retrieved from a Dynamic Display object.

Product Availability

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

Parameters:
screenDisplay - A reference to a com.esri.arcgis.display.IScreenDisplay (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createDynamicGlyph

IDynamicGlyph createDynamicGlyph(ISymbol symbol)
                                 throws IOException,
                                        AutomationException
Creates a dynamic glyph from a symbol.

Remarks

For monochromatic symbols (symbols that consist of only one color and might even have fixed black pixels), it is advisable to set the Symbol color to white before passing it into the method. When rendering the Dynamic Symbol, using the Dynamic Glyph created using this method, you should then set the color to the desired color. That will result in coloring the white pixels to the desired color, while leaving the black colors black.

Product Availability

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

Parameters:
symbol - A reference to a com.esri.arcgis.display.ISymbol (in)
Returns:
A reference to a com.esri.arcgis.display.IDynamicGlyph
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteDynamicGlyph

void deleteDynamicGlyph(IDynamicGlyph glyph)
                        throws IOException,
                               AutomationException
Deletes the dynamic glyph's resource.

Remarks

It is important to call this method in order to release the Dynamic Glyph’s resources. A Dynamic Glyph object that is destroyed without calling this method might result in memory leaks on the graphic card memory. Also, it is recommended to delete unused Dynamic Glyphs in order to free up Graphic Card memory.

Product Availability

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

Parameters:
glyph - A reference to a com.esri.arcgis.display.IDynamicGlyph (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createDynamicGlyphFromFile

IDynamicGlyph createDynamicGlyphFromFile(int glyphType,
                                         String fileName,
                                         IColor transparencyColor)
                                         throws IOException,
                                                AutomationException
Creates a dynamic glyph from a file.

Remarks

Creates a dynamic glyph from an image file. If the image file consists of an alpha channel, the method will honor the alpha values in the alpha channel, otherwise the alpha values will be set to be opaque (255). If the transparency color is not NULL, each pixel that matches the transparencyColor parameter will be transparent (its alpha values in the glyph will be set to 0).

Product Availability

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

Parameters:
glyphType - A com.esri.arcgis.display.esriDynamicGlyphType constant (in)
fileName - The fileName (in)
transparencyColor - A reference to a com.esri.arcgis.display.IColor (in)
Returns:
A reference to a com.esri.arcgis.display.IDynamicGlyph
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

loadDynamicGlyphsGroup

int loadDynamicGlyphsGroup(String fileName)
                           throws IOException,
                                  AutomationException
Loads a dynamic glyph group from files.

Remarks

The fileName points to an XML file. This XML file holds information regarding the image files that should be used in order to load the group image, and a database that describes the identity, location, and size of the glyphs in the group.

On success, the method returns the ID of the loaded group. This ID can be used to get a dynamic glyph from the group, using the get property IDynamicGlyphFactory.DynamicGlyph, or unload the glyphs group, using the method IDynamicGlyphFactory.UnloadDynamicGlyphsGroup.

Product Availability

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

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

unloadDynamicGlyphsGroup

void unloadDynamicGlyphsGroup(int groupId)
                              throws IOException,
                                     AutomationException
Unloads a dynamic glyph group, and any corresponding resources.

Remarks

When the Dynamic Glyphs Group is no longer needed, it is important to call this method in order to release the Group’s resources.

Unused Dynamic Glyph Groups that are not unloaded might result in memory leaks on the graphic card memory.

Product Availability

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

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

getDynamicGlyph

IDynamicGlyph getDynamicGlyph(int groupId,
                              int glyphType,
                              int index)
                              throws IOException,
                                     AutomationException
Retrieves a dynamic glyph from a glyph group.

Product Availability

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

Parameters:
groupId - The groupId (in)
glyphType - A com.esri.arcgis.display.esriDynamicGlyphType constant (in)
index - The index (in)
Returns:
A reference to a com.esri.arcgis.display.IDynamicGlyph
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.