|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.globecore.GlobeDisplay
public class GlobeDisplay
The globe display object.
Constructor Summary | |
---|---|
GlobeDisplay()
Constructs a GlobeDisplay using ArcGIS Engine. |
|
GlobeDisplay(Object obj)
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts. GlobeDisplay theGlobeDisplay = (GlobeDisplay) obj; |
Method Summary | |
---|---|
short |
addCache()
Creates a new cache and return its ID. |
void |
addIGlobeDisplayEventsListener(IGlobeDisplayEvents theListener)
addIGlobeDisplayEventsListener. |
void |
addITimeDisplayEventsListener(ITimeDisplayEvents theListener)
addITimeDisplayEventsListener. |
void |
addLayer(ILayer pLayer)
Adds a layer. |
void |
afterDraw(IActiveViewEventsAfterDrawEvent theEvent)
Fired after the specified phase is drawn. |
void |
afterItemDraw(IActiveViewEventsAfterItemDrawEvent theEvent)
Fired after an individual view item is drawn. |
void |
applyHeightProperties(ILayer pGLayer)
Applies changes in height properties to the layer. |
void |
clear(boolean bRecycleBasicObjects)
Clear the display objects. |
void |
contentsChanged(IActiveViewEventsContentsChangedEvent theEvent)
Fired when the contents of the view changes. |
void |
contentsCleared(IActiveViewEventsContentsClearedEvent theEvent)
Fired when the contents of the view is cleared. |
void |
countTiles(ILayer pLayer,
int fromLOD,
int toLOD,
double[] pCount)
Counts the number of possible layer tiles in the specified levels of detail. |
IEnumLayer |
createLayerFromGmxXML(String cachePath)
Creates the globe layer file for the globe cache given by gmx.xml configuration file. |
void |
doScroll(int xDelta,
int yDelta,
boolean updateScreen)
Scrolls the screen by the specified amount. |
void |
drawCache(int hDC,
short index,
tagRECT deviceRect,
tagRECT cacheRect)
Draws the specified screen cache to the specified window device context. |
void |
drawMultipoint(IGeometry multipoint)
Draws specified multipoint on the display. |
void |
drawPoint(IGeometry point)
Draws specified point on the display. |
void |
drawPolygon(IGeometry polygon)
Draws specified polygon on the display. |
void |
drawPolyline(IGeometry polyline)
Draws specified line on the display. |
void |
drawRectangle(IEnvelope rectangle)
Draws specified rectangle on the display. |
void |
drawText(IGeometry shape,
String text)
Draws specified text on the display. |
void |
enumConnectionPoints(IEnumConnectionPoints[] ppEnum)
enumConnectionPoints |
boolean |
equals(Object o)
Compare this object with another |
void |
findConnectionPoint(GUID riid,
IConnectionPoint[] ppCP)
findConnectionPoint |
IGlobeLayerProperties |
findGlobeProperties(ILayer pLayer)
Finds the globe properties of the layer. |
ISceneViewer |
findViewer(String caption)
Finds the Viewer. |
void |
finishDrawing()
Completes drawing. |
void |
focusMapChanged(IActiveViewEventsFocusMapChangedEvent theEvent)
Fired when a new map is made active. |
void |
generateTiles(ILayer pLayer,
int fromLOD,
int toLOD)
Generates the tiles in the specified levels of detail. |
short |
getActiveCache()
Screen cache where drawing occurs. |
ISceneViewer |
getActiveViewer()
The active viewer. |
IGlobeAdvancedOptions |
getAdvancedOptions()
The data processing and management options. |
IArray |
getAllViewers()
Returns all registered Viewers. |
float |
getAmbientLight()
The sun's ambient light value. |
void |
getBackgroundColor(float[] pRed,
float[] pGreen,
float[] pBlue)
Returns the background color. |
void |
getBackgroundTransitionDistances(float[] pLowAltitude,
float[] pHighAltitude)
Gets the altitude values in kilometers for the transition in the background color. |
double |
getBaseExaggeration()
The vertical exaggeration for the base globe. |
IArray |
getBaseLayers()
The internal layers created to support base surfaces for floating layers. |
short |
getCacheCount()
Number of screen caches. |
int |
getCacheMemDC(short index)
Memory device context for the specified screen cache. |
double |
getCacheUsage(String cachePath,
boolean bUpdate)
The disk cache usage in Mb (will return the current one if path is empty string). |
ITrackCancel |
getCancelTracker()
Cancel tracker that is associated with the display. |
IEnvelope |
getClipEnvelope()
The bounds of the invalid region. |
ISet |
getClipEnvelopes()
The invalid region as a set of envelopes. |
IGeometry |
getClipGeometry()
User-specified clip shape. |
static String |
getClsid()
getClsid. |
IDisplayTransformation |
getDisplayTransformation()
The transformation used by the display. |
void |
getFeatureTransformation(ILayer pLayer,
int featureID,
IVector3D[] ppTrans,
IVector3D[] ppScale,
IVector3D[] ppRotate)
Gets the transformation of a specific feature. |
void |
getFeatureVisibility(ILayer pLayer,
int featureID,
boolean[] pbVisible,
int[] pTransparency)
Gets the visibility of a specific feature. |
IDisplayFilter |
getFilter()
Display filter. |
IGlobe |
getGlobe()
The globe container. |
int |
getGlobeBackgroundOption()
The background option. |
double |
getGlobeRadius()
The radius of the globe in meters. |
int |
getGridDisplay()
Indicates what type of grid/graticule to display. |
int |
getHDC()
The device context that the display is currently drawing to. |
int |
getHPalette()
Palette. |
int |
getHWnd()
Associated window handle. |
IIlluminationProps |
getIlluminationProps()
Illumination properties used by the display. |
int |
getInternalGlobeIndex(ILayer pLayer)
Gets the index of the internal globe that the layer belongs to. |
void |
getLowBackgroundColor(float[] red,
float[] green,
float[] blue)
Returns the low altitude background color. |
int |
getMaximumLayerLOD(ILayer pLayer)
Gets the maximum level of detail to display the layer. |
double |
getOverlayExaggeration()
The vertical exaggeration for the overlay layers. |
IScene |
getScene()
The scene. |
IColor |
getSelectionColor()
The selection color. |
double |
getStatistic(int property)
The accumulated or instantaneous value of an statistic. |
void |
getSunColor(float[] pSunRed,
float[] pSunGreen,
float[] pSunBlue)
Gets the sun RGB color. |
int |
getSunContrast()
The illumination contrast. |
void |
getSunPosition(double[] pLatitude,
double[] pLongitude)
Gets the sun position in lat, lon. |
void |
getSurfaceElevation(double longitude,
double latitude,
boolean bGetMaxResolution,
double[] pElevationInMeters)
Find the elevation of a point in the given geographical location. |
void |
getSurfacePoint(double xView,
double yView,
int internalGlobe,
IPoint[] ppIntersec)
Locate a point in the position x,y within the view (x and y in the interval 0-1). |
ITimeReference |
getTimeReference()
Time reference using which the data has to be displayed. |
int |
getTimeRelation()
Time relation for the time query. |
ITimeValue |
getTimeValue()
Time Extent for which the data has to be displayed. |
int |
getWindowDC()
Device context for the associated window. |
int |
hashCode()
the hashcode for this object |
void |
invalidate(IEnvelope rect,
boolean erase,
short cacheIndex)
Cause the specified area of the specified cache to redraw. |
void |
invalidateExtent(ILayer pLayer,
IEnvelope pExtent,
int minLOD,
int maxLOD,
boolean bRedraw,
boolean bWaitUntilComplete)
Invalidates layer tiles in the given extent and levels of detail. |
boolean |
isCacheDirty(short cacheIndex)
Indicates if the specified cache needs refreshing. |
boolean |
isDirectOpenGLDraw()
Indicates if the direct OpenGL draw mode is active. |
boolean |
isDraftMode()
Indicates if the draft display mode is active. |
boolean |
isEnableMessages()
Indicates if the warning and question messages are enabled. |
boolean |
isFetchingSuspendedWhenNavigating()
Indicates if tile fetching is disabled while navigating. |
boolean |
isFirstCacheTransparent()
Indicates if the bottom cache is transparent. |
boolean |
isFramed()
Indicates if drawing occurs in a frame rather than on the whole window. |
boolean |
isGenerateTilesOverwrites()
Overwrite option when using the GenerateTiles method. |
boolean |
isGestureEnabled()
Indicates if the mouse gestures are supported. |
boolean |
isHaloEnabled()
Indicates if the halo effect is enabled. |
boolean |
isImmediateDataFetching()
Indicates whether in immediate data fetching mode. |
boolean |
isNavigating()
Indicates if the 3D Display is in navigation mode. |
boolean |
isParentsAreVisible(ILayer pLayer)
Indicates if all parents are visible. |
boolean |
isPauseCaching()
Indicates if all caching is paused. |
boolean |
isPauseFetching()
Indicates if all fetching is paused. |
boolean |
isScaleContents()
Indicates if the contents of the screen scale when a resize occurs. |
boolean |
isStarsEnabled()
Indicates if the stars are enabled. |
boolean |
isSunEnabled()
Indicates if the sun lighting is enabled. |
boolean |
isSuppressEvents()
Indicates if display object suppresses events. |
boolean |
isSuppressResize()
Indicates if display resizing is suppressed. |
boolean |
isUseScrollbars()
Indicates if scrollbars should appear. |
void |
itemAdded(IActiveViewEventsItemAddedEvent theEvent)
Fired when an item is added to the view. |
void |
itemDeleted(IActiveViewEventsItemDeletedEvent theEvent)
Fired when an item is deleted from the view. |
void |
itemReordered(IActiveViewEventsItemReorderedEvent theEvent)
Fired when a view item is reordered. |
void |
locate(ISceneViewer pViewer,
int xView,
int yView,
boolean bGetTransformed,
boolean bGetEmptyGlobe,
IPoint[] ppPoint,
Object[] ppOwner,
Object[] ppObject)
Find the object and location in the line of sight. |
void |
locateFeature(ISceneViewer pViewer,
int xView,
int yView,
Object[] ppOwner,
Object[] ppObject)
Find the object and location in the line of sight. |
void |
locateLayers(ISceneViewer pViewer,
int xView,
int yView,
IEnumLayer pLayers,
boolean bGetLocation,
boolean bGetTransformed,
boolean bGetEmptyGlobe,
boolean bFeaturesOnly,
boolean bTopMost,
IHit3DSet[] ppHits,
ITrackCancel pTrackCancel)
Find the object and location in the line of sight. |
void |
locateLayersEx(ISceneViewer pViewer,
int xView,
int yView,
int searchTolPixels,
IEnumLayer pLayers,
boolean bGetLocation,
boolean bGetTransformed,
boolean bGetEmptyGlobe,
boolean bFeaturesOnly,
boolean bTopMost,
IHit3DSet[] ppHits,
ITrackCancel pTrackCancel)
Find the object and location in the line of sight with a tolerance. |
void |
locateMultiple(ISceneViewer pViewer,
int xView,
int yView,
boolean bGetLocation,
boolean bGetTransformed,
boolean bGetEmptyGlobe,
boolean bFeaturesOnly,
IHit3DSet[] ppHits)
Find the object and location in the line of sight. |
void |
panMoveTo(IPoint mouseLocation)
Pans to a new point. |
void |
panStart(IPoint mouseLocation)
Prepares display for panning. |
IEnvelope |
panStop()
Stops panning and returns new visible bounds. |
void |
pickGraphic(ISceneViewer pViewer,
int xView,
int yView,
IGraphicsContainer3D[] owner,
int[] elementIndex)
Picks a single graphic element. |
void |
progress(int vertexCount)
Call frequently during drawing process. |
void |
queryLocation(ISceneViewer pViewer,
int x,
int y,
int mode,
boolean bGetTransformed,
IPoint pPt)
Locates a single object. |
void |
refreshLayer(ILayer pLayer)
Refreshes a layer, possibly including recaching. |
void |
refreshLayerSelection(ILayer pLayer)
Refreshes the display of the selection in a layer. |
void |
refreshTextureObjects()
Deletes all the textures to force them to reload. |
void |
refreshTextureObjectsLayer(ILayer pLayer)
Deletes all the textures corresponding to a layer and to force them to reload. |
void |
refreshViewers()
Redraws all viewers. |
void |
registerViewer(ISceneViewer pViewer)
Adds a viewer to the 3D Display. |
void |
removeAllCaches()
Removes all caches. |
void |
removeCache(short cacheID)
Removes the specified cache. |
void |
removeIGlobeDisplayEventsListener(IGlobeDisplayEvents theListener)
removeIGlobeDisplayEventsListener. |
void |
removeITimeDisplayEventsListener(ITimeDisplayEvents theListener)
removeITimeDisplayEventsListener. |
void |
removeLayer(ILayer pLayer)
Removes a layer. |
void |
reparent(ILayer layer,
ICompositeLayer newParent)
Re-parents the layer. |
void |
replayFrame(ICamera camera)
Uses the camera to redraw a frame. |
void |
rotateMoveTo(IPoint pPoint)
Rotates to new point. |
void |
rotateStart(IPoint mousePt,
IPoint centerPt)
Prepares display for rotating. |
double |
rotateStop()
Stops rotating and returns new angle. |
void |
rotateTimer()
Draws the rotated display. |
void |
selectionChanged(IActiveViewEventsSelectionChangedEvent theEvent)
Call this function to fire the selection changed event. |
void |
setActiveCache(short index)
Screen cache where drawing occurs. |
void |
setActiveViewerByRef(ISceneViewer ppViewer)
The active viewer. |
void |
setAdvancedOptions(IGlobeAdvancedOptions ppOptions)
The data processing and management options. |
void |
setAmbientLight(float pLightValue)
The sun's ambient light value. |
void |
setBackgroundColor(float red,
float green,
float blue)
Sets the background color. |
void |
setBackgroundTransitionDistances(float lowAltitude,
float highAltitude)
Sets the altitude values in kilometers for the transition in the background color. |
void |
setBaseExaggeration(double pFactor)
The vertical exaggeration for the base globe. |
void |
setCancelTrackerByRef(ITrackCancel cancelTracker)
Cancel tracker that is associated with the display. |
void |
setClipGeometry(IGeometry geometry)
User-specified clip shape. |
void |
setDirectOpenGLDraw(boolean pbDirectMode)
Indicates if the direct OpenGL draw mode is active. |
void |
setDisplayTransformation(IDisplayTransformation displayTransformation)
The transformation used by the display. |
void |
setDraftMode(boolean pbDraft)
Indicates if the draft display mode is active. |
void |
setEnableMessages(boolean pbEnableMessages)
Indicates if the warning and question messages are enabled. |
void |
setFeatureTransformation(ILayer pLayer,
int featureID,
IVector3D pTrans,
IVector3D pScale,
IVector3D pRotate)
Sets a transformation for a specific feature. |
void |
setFeatureVisibility(ILayer pLayer,
int featureID,
boolean bVisible,
int transparency)
Sets the visibility of a specific feature. |
void |
setFilterByRef(IDisplayFilter filter)
Display filter. |
void |
setGenerateTilesOverwrites(boolean pbOverwrites)
Overwrite option when using the GenerateTiles method. |
void |
setGestureEnabled(boolean pbEnabled)
Indicates if the mouse gestures are supported. |
void |
setGlobeBackgroundOption(int pOption)
The background option. |
void |
setGlobeByRef(IGlobe ppGlobe)
The globe container. |
void |
setGridDisplay(int pGridType)
Indicates what type of grid/graticule to display. |
void |
setHPalette(int hPalette)
Palette. |
void |
setHWnd(int hWnd)
Associated window handle. |
void |
setIlluminationProps(IIlluminationProps illuminationProps)
Illumination properties used by the display. |
void |
setImmediateDataFetching(boolean pbImmediate)
Indicates whether in immediate data fetching mode. |
void |
setIsFetchingSuspendedWhenNavigating(boolean bSuspended)
Indicates if tile fetching is disabled while navigating. |
void |
setIsFirstCacheTransparent(boolean flag)
Indicates if the bottom cache is transparent. |
void |
setIsFramed(boolean flag)
Indicates if drawing occurs in a frame rather than on the whole window. |
void |
setIsHaloEnabled(boolean pbHalo)
Indicates if the halo effect is enabled. |
void |
setIsLayerVisible(ILayer pLayer,
boolean rhs2)
Indicates if the layer is visible. |
void |
setIsNavigating(boolean pbIsNavigating)
Indicates if the 3D Display is in navigation mode. |
void |
setIsStarsEnabled(boolean pbStars)
Indicates if the stars are enabled. |
void |
setIsSunEnabled(boolean pbSun)
Indicates if the sun lighting is enabled. |
void |
setLayerDepthPriority(ILayer pLayer,
int depthPrior)
Sets face depth priority of a layer. |
void |
setLayerFaceCulling(ILayer pLayer,
int cullMode)
Sets face culling property of a layer. |
void |
setLayerLightingOption(ILayer pLayer,
boolean isIlluminated)
Indicates if the layer is illuminated. |
void |
setLayerShadingMode(ILayer pLayer,
boolean isSmooth)
Indicates if the layer is smoothly shaded. |
void |
setLayerTransparency(ILayer pLayer,
short rhs2)
Transparency percentage of a layer. |
void |
setLowBackgroundColor(float red,
float green,
float blue)
Sets the low altitude background color. |
void |
setNumFramesInAvg(int property,
int num)
Set Number of frames used in averaging. |
void |
setOverlayExaggeration(double pFactor)
The vertical exaggeration for the overlay layers. |
void |
setPauseCaching(boolean pbPaused)
Indicates if all caching is paused. |
void |
setPauseFetching(boolean pbPaused)
Indicates if all fetching is paused. |
void |
setScaleContents(boolean flag)
Indicates if the contents of the screen scale when a resize occurs. |
void |
setSceneByRef(IScene pVal)
The scene. |
void |
setScrollbarHandles(int hWndHorzScrollbar,
int hWndVertScrollbar)
Optionally specify application supplied scrollbars. |
void |
setSelectionColor(IColor pSelectionColor)
The selection color. |
void |
setStrictOnDemandMode(ILayer pLayer,
boolean rhs2)
Strict on-demand mode of a layer tile generation. |
void |
setSunColor(float sunRed,
float sunGreen,
float sunBlue)
Sets the sun RGB color. |
void |
setSunContrast(int pContrast)
The illumination contrast. |
void |
setSunPosition(double latitude,
double longitude)
Sets the sun position in lat, lon. |
void |
setSuppressEvents(boolean suppressEvents)
Indicates if display object suppresses events. |
void |
setSuppressResize(boolean suppressResize)
Indicates if display resizing is suppressed. |
void |
setSymbol(ISymbol sym)
Sets the symbol used for drawing. |
void |
setTextureCompressionType(ILayer pLayer,
int rhs2)
Sets texture compression type of a layer. |
void |
setTextureDisplayType(ILayer pLayer,
int rhs2)
Sets texture display type of a layer. |
void |
setTextureDownsamplingFactor(ILayer pLayer,
double rhs2)
Sets texture down-sampling factor of a layer. |
void |
setTimeReference(ITimeReference timeReference)
Time reference using which the data has to be displayed. |
void |
setTimeRelation(int relation)
Time relation for the time query. |
void |
setTimeValue(ITimeValue timeExtent)
Time Extent for which the data has to be displayed. |
void |
setUseScrollbars(boolean flag)
Indicates if scrollbars should appear. |
void |
spatialReferenceChanged(IActiveViewEventsSpatialReferenceChangedEvent theEvent)
Fired when the spatial reference is changed. |
void |
startAccumulating(int property)
Start accumulating values. |
void |
startDrawing(int hDC,
short cacheID)
Prepare the display for drawing. |
void |
startPrintingExporting(double cullArea)
Start exporting/printing with an extending cull area. |
void |
startRecording()
Starts recording all output to the recording cache. |
double |
stopAccumulating(int property)
Stop accumulating values. |
void |
stopPrintingExporting()
Stop Exporting/printing with extending culling area-- restore defaults. |
void |
stopRecording()
Stops recording to the recording cache. |
void |
trackPan()
Interactively pans the screen. |
void |
trackRotate()
Interactively rotates the screen. |
void |
unregisterViewer(ISceneViewer pViewer)
Removes a viewer from the 3D Display. |
void |
updateWindow()
Forces a redraw. |
void |
viewRefreshed(IActiveViewEventsViewRefreshedEvent theEvent)
Fired when view is refreshed before draw happens. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef |
---|
getJintegraDispatch, release |
Constructor Detail |
---|
public GlobeDisplay() throws IOException, UnknownHostException
IOException
- if there are interop problems
UnknownHostException
- if there are interop problemspublic GlobeDisplay(Object obj) throws IOException
GlobeDisplay theGlobeDisplay = (GlobeDisplay) obj;
obj
to GlobeDisplay
.
obj
- an object returned from ArcGIS Engine or Server
IOException
- if there are interop problemsMethod Detail |
---|
public static String getClsid()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public void addIGlobeDisplayEventsListener(IGlobeDisplayEvents theListener) throws IOException
theListener
- An object that implements the com.esri.arcgis.globecore.IGlobeDisplayEvents interface.
IOException
- If there are communications problems.public void removeIGlobeDisplayEventsListener(IGlobeDisplayEvents theListener) throws IOException
theListener
- An object that implements the com.esri.arcgis.globecore.IGlobeDisplayEvents interface.
IOException
- If there are communications problems.public void addITimeDisplayEventsListener(ITimeDisplayEvents theListener) throws IOException
theListener
- An object that implements the com.esri.arcgis.display.ITimeDisplayEvents interface.
IOException
- If there are communications problems.public void removeITimeDisplayEventsListener(ITimeDisplayEvents theListener) throws IOException
theListener
- An object that implements the com.esri.arcgis.display.ITimeDisplayEvents interface.
IOException
- If there are communications problems.public void locateLayersEx(ISceneViewer pViewer, int xView, int yView, int searchTolPixels, IEnumLayer pLayers, boolean bGetLocation, boolean bGetTransformed, boolean bGetEmptyGlobe, boolean bFeaturesOnly, boolean bTopMost, IHit3DSet[] ppHits, ITrackCancel pTrackCancel) throws IOException, AutomationException
locateLayersEx
in interface IGlobeDisplay3
pViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)xView
- The xView (in)yView
- The yView (in)searchTolPixels
- The searchTolPixels (in)pLayers
- A reference to a com.esri.arcgis.carto.IEnumLayer (in)bGetLocation
- The bGetLocation (in)bGetTransformed
- The bGetTransformed (in)bGetEmptyGlobe
- The bGetEmptyGlobe (in)bFeaturesOnly
- The bFeaturesOnly (in)bTopMost
- The bTopMost (in)ppHits
- A reference to a com.esri.arcgis.analyst3d.IHit3DSet (out: use single element array)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryLocation(ISceneViewer pViewer, int x, int y, int mode, boolean bGetTransformed, IPoint pPt) throws IOException, AutomationException
queryLocation
in interface IGlobeDisplay3
pViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)x
- The x (in)y
- The y (in)mode
- A com.esri.arcgis.analyst3d.esriScenePickMode constant (in)bGetTransformed
- The bGetTransformed (in)pPt
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isDraftMode() throws IOException, AutomationException
When the DraftMode property is set to True, a number of settings are applied to the layers in the view in an attempt to improve rendering speed.
The DraftMode settings operate as overrides. That is, they do not actually change layer properties, but rather apply themselves after the layer is read. The increase in rendering speed will be a factor of the layer types and symbology used in the view, and will vary greatly from document to document.
The DraftMode overrides are:
isDraftMode
in interface IGlobeDisplay3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setDraftMode(boolean pbDraft) throws IOException, AutomationException
setDraftMode
in interface IGlobeDisplay3
pbDraft
- The pbDraft (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isDirectOpenGLDraw() throws IOException, AutomationException
isDirectOpenGLDraw
in interface IGlobeDisplay3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setDirectOpenGLDraw(boolean pbDirectMode) throws IOException, AutomationException
setDirectOpenGLDraw
in interface IGlobeDisplay3
pbDirectMode
- The pbDirectMode (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void pickGraphic(ISceneViewer pViewer, int xView, int yView, IGraphicsContainer3D[] owner, int[] elementIndex) throws IOException, AutomationException
pickGraphic
in interface IGlobeDisplay3
pViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)xView
- The xView (in)yView
- The yView (in)owner
- A reference to a com.esri.arcgis.analyst3d.IGraphicsContainer3D (out: use single element array)elementIndex
- The elementIndex (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isFetchingSuspendedWhenNavigating() throws IOException, AutomationException
ArcGlobe uses two threads – one for display and one for fetching tiles. When this option is set to True, the tile fetching thread is completely suspended while navigating, thereby freeing up hardware resources for the display thread. When navigation halts, the tile fetching thread is re-enabled and ArcGlobe will use the appropriate level-of-detail for displaying the current view.
Tile fetching is occurring when retrieving existing tiles from the disk cache, or when generating new tiles as the user visits a new geographic region. Note that any tiles that are already in physical memory (RAM) will continue to display when this option is enabled, but no additional tiles will be read from disk or generated for display.
The view is said to be navigating when the Globe Camera is moving continuously. For example, using the Fly Tool will set the ‘while navigating’ state to true and cause tile fetching to be suspended appropriately. When the Fly Tool halts, the ‘while navigating’ state is set to false and tile fetching will resume. An example of a navigation technique which does not set the ‘while navigating’ state to true is the mouse-wheel zoom in. This functionality uses discrete steps to zoom in and is therefore not a continuous navigation event.
This option is not recommended when outputting animation video files, as the animation framework will set the ‘while navigating’ status to true and the resulting video will only use tiles that are in memory when generating the video. This will most likely be a lower resolution display than required.
To disable tile fetching on a per-layer basis, see the IsFetchingSuspendedWhenNavigating property for IGlobeLayerProperties2.
isFetchingSuspendedWhenNavigating
in interface IGlobeDisplay3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsFetchingSuspendedWhenNavigating(boolean bSuspended) throws IOException, AutomationException
setIsFetchingSuspendedWhenNavigating
in interface IGlobeDisplay3
bSuspended
- The bSuspended (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isPauseCaching() throws IOException, AutomationException
isPauseCaching
in interface IGlobeDisplay2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPauseCaching(boolean pbPaused) throws IOException, AutomationException
setPauseCaching
in interface IGlobeDisplay2
pbPaused
- The pbPaused (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isPauseFetching() throws IOException, AutomationException
isPauseFetching
in interface IGlobeDisplay2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPauseFetching(boolean pbPaused) throws IOException, AutomationException
setPauseFetching
in interface IGlobeDisplay2
pbPaused
- The pbPaused (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGlobe getGlobe() throws IOException, AutomationException
getGlobe
in interface IGlobeDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setGlobeByRef(IGlobe ppGlobe) throws IOException, AutomationException
setGlobeByRef
in interface IGlobeDisplay
ppGlobe
- A reference to a com.esri.arcgis.globecore.IGlobe (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void clear(boolean bRecycleBasicObjects) throws IOException, AutomationException
clear
in interface IGlobeDisplay
bRecycleBasicObjects
- The bRecycleBasicObjects (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getSurfacePoint(double xView, double yView, int internalGlobe, IPoint[] ppIntersec) throws IOException, AutomationException
getSurfacePoint
in interface IGlobeDisplay
xView
- The xView (in)yView
- The yView (in)internalGlobe
- The internalGlobe (in)ppIntersec
- A reference to a com.esri.arcgis.geometry.IPoint (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getSurfaceElevation(double longitude, double latitude, boolean bGetMaxResolution, double[] pElevationInMeters) throws IOException, AutomationException
getSurfaceElevation
in interface IGlobeDisplay
longitude
- The longitude (in)latitude
- The latitude (in)bGetMaxResolution
- The bGetMaxResolution (in)pElevationInMeters
- The pElevationInMeters (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSelectionColor(IColor pSelectionColor) throws IOException, AutomationException
setSelectionColor
in interface IGlobeDisplay
pSelectionColor
- A reference to a com.esri.arcgis.display.IColor (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IColor getSelectionColor() throws IOException, AutomationException
getSelectionColor
in interface IGlobeDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setAdvancedOptions(IGlobeAdvancedOptions ppOptions) throws IOException, AutomationException
setAdvancedOptions
in interface IGlobeDisplay
ppOptions
- A reference to a com.esri.arcgis.globecore.IGlobeAdvancedOptions (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGlobeAdvancedOptions getAdvancedOptions() throws IOException, AutomationException
getAdvancedOptions
in interface IGlobeDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setImmediateDataFetching(boolean pbImmediate) throws IOException, AutomationException
setImmediateDataFetching
in interface IGlobeDisplay
pbImmediate
- The pbImmediate (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isImmediateDataFetching() throws IOException, AutomationException
A True value indicates that pending requests for tiles should complete before navigation can proceed.The default value is False.
isImmediateDataFetching
in interface IGlobeDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getCacheUsage(String cachePath, boolean bUpdate) throws IOException, AutomationException
getCacheUsage
in interface IGlobeDisplay
cachePath
- The cachePath (in)bUpdate
- The bUpdate (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isEnableMessages() throws IOException, AutomationException
isEnableMessages
in interface IGlobeDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setEnableMessages(boolean pbEnableMessages) throws IOException, AutomationException
setEnableMessages
in interface IGlobeDisplay
pbEnableMessages
- The pbEnableMessages (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void refreshTextureObjects() throws IOException, AutomationException
refreshTextureObjects
in interface IGlobeDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void startPrintingExporting(double cullArea) throws IOException, AutomationException
startPrintingExporting
in interface IGlobeDisplay
cullArea
- The cullArea (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void stopPrintingExporting() throws IOException, AutomationException
stopPrintingExporting
in interface IGlobeDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void locate(ISceneViewer pViewer, int xView, int yView, boolean bGetTransformed, boolean bGetEmptyGlobe, IPoint[] ppPoint, Object[] ppOwner, Object[] ppObject) throws IOException, AutomationException
This method returns the closest object (ppObject) hit by the line of sight from the observer location in the window coordinates xView, yView in the viewer, pViewer.
ppPoint is a point representing the hit location coordinates.
If bGetTransformed is True, it indicates that the returned coordinates must be in the internal geocentric coordinate system. If bGetTransformed = False, the returned hit point coordinates are in the Globe Spatial Reference: longitude, latitude and altitude are in kilometers.
If bGetEmptyGlobe is True, a hit will be added for the base globe surface, even if it doesn't contain any layer.
locate
in interface IGlobeDisplay
pViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)xView
- The xView (in)yView
- The yView (in)bGetTransformed
- The bGetTransformed (in)bGetEmptyGlobe
- The bGetEmptyGlobe (in)ppPoint
- A reference to a com.esri.arcgis.geometry.IPoint (out: use single element array)ppOwner
- A reference to another Object (IUnknown) (out: use single element array)ppObject
- A reference to another Object (IUnknown) (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void locateMultiple(ISceneViewer pViewer, int xView, int yView, boolean bGetLocation, boolean bGetTransformed, boolean bGetEmptyGlobe, boolean bFeaturesOnly, IHit3DSet[] ppHits) throws IOException, AutomationException
This method returns a set of objects (ppHits) hit by the line of sight from the observer location and the window coordinates xView, yView in pViewer.
If bGetLocation = True, it indicates that the hit point coordinates must be returned.
If both bGetLocation and bGetTransformed are True, it indicates that the returned coordinates must be in the internal geocentric coordinate system. If bGetTransformed = False, the returned hit point coordinates are in the Globe Spatial Reference: longitude, latitude and altitude in kilometers.
If bGetEmptyGlobe is True, a hit will be added for the base globe surface, even if it doesn't contain any layer.
If bFeaturesOnly is True, only hits to features will be returned (hits to elevation surfaces will not).
locateMultiple
in interface IGlobeDisplay
pViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)xView
- The xView (in)yView
- The yView (in)bGetLocation
- The bGetLocation (in)bGetTransformed
- The bGetTransformed (in)bGetEmptyGlobe
- The bGetEmptyGlobe (in)bFeaturesOnly
- The bFeaturesOnly (in)ppHits
- A reference to a com.esri.arcgis.analyst3d.IHit3DSet (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void locateLayers(ISceneViewer pViewer, int xView, int yView, IEnumLayer pLayers, boolean bGetLocation, boolean bGetTransformed, boolean bGetEmptyGlobe, boolean bFeaturesOnly, boolean bTopMost, IHit3DSet[] ppHits, ITrackCancel pTrackCancel) throws IOException, AutomationException
This method returns a set of objects (ppHits) hit by the line of sight from the observer location in the window coordinates xView, yView in pViewer. It will return hits only in the layer pLayers.
If bGetLocation is True, it indicates that the hit point coordinates must be returned.
If both bGetLocation and bGetTransformed are True, it indicates that the returned coordinates must be in the internal geocentric coordinate system. If bGetTransformed = False, the returned hit point coordinates are in the Globe Spatial Reference: longitude, latitude and altitude in kilometers.
If bGetEmptyGlobe is True, a hit will be added for the base globe surface, even if it doesn't contain any layer.
If bTopMost is True, it will return only one hit to the topmost layer.
If bFeaturesOnly is True, only hits to features will be returned (hits to elevation surfaces will not).
pTrackCancel allows the user to cancel the method.
locateLayers
in interface IGlobeDisplay
pViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)xView
- The xView (in)yView
- The yView (in)pLayers
- A reference to a com.esri.arcgis.carto.IEnumLayer (in)bGetLocation
- The bGetLocation (in)bGetTransformed
- The bGetTransformed (in)bGetEmptyGlobe
- The bGetEmptyGlobe (in)bFeaturesOnly
- The bFeaturesOnly (in)bTopMost
- The bTopMost (in)ppHits
- A reference to a com.esri.arcgis.analyst3d.IHit3DSet (out: use single element array)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void locateFeature(ISceneViewer pViewer, int xView, int yView, Object[] ppOwner, Object[] ppObject) throws IOException, AutomationException
This method returns a hit to the closest feature (ppObject), hit by the line of sight from the observer location in the window coordinates xView, yView in the viewer, pViewer.
ppOwner is the layer hit.
locateFeature
in interface IGlobeDisplay
pViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)xView
- The xView (in)yView
- The yView (in)ppOwner
- A reference to another Object (IUnknown) (out: use single element array)ppObject
- A reference to another Object (IUnknown) (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IScene getScene() throws IOException, AutomationException
getScene
in interface IViewers3D
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSceneByRef(IScene pVal) throws IOException, AutomationException
setSceneByRef
in interface IViewers3D
pVal
- A reference to a com.esri.arcgis.analyst3d.IScene (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void registerViewer(ISceneViewer pViewer) throws IOException, AutomationException
registerViewer
in interface IViewers3D
pViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void unregisterViewer(ISceneViewer pViewer) throws IOException, AutomationException
unregisterViewer
in interface IViewers3D
pViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISceneViewer findViewer(String caption) throws IOException, AutomationException
findViewer
in interface IViewers3D
caption
- The caption (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IArray getAllViewers() throws IOException, AutomationException
getAllViewers
in interface IViewers3D
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setActiveViewerByRef(ISceneViewer ppViewer) throws IOException, AutomationException
setActiveViewerByRef
in interface IViewers3D
ppViewer
- A reference to a com.esri.arcgis.analyst3d.ISceneViewer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISceneViewer getActiveViewer() throws IOException, AutomationException
getActiveViewer
in interface IViewers3D
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void refreshViewers() throws IOException, AutomationException
refreshViewers
in interface IViewers3D
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isNavigating() throws IOException, AutomationException
isNavigating
in interface IViewers3D
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsNavigating(boolean pbIsNavigating) throws IOException, AutomationException
setIsNavigating
in interface IViewers3D
pbIsNavigating
- The pbIsNavigating (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setGestureEnabled(boolean pbEnabled) throws IOException, AutomationException
setGestureEnabled
in interface IViewers3D
pbEnabled
- The pbEnabled (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isGestureEnabled() throws IOException, AutomationException
isGestureEnabled
in interface IViewers3D
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setBackgroundColor(float red, float green, float blue) throws IOException, AutomationException
setBackgroundColor
in interface IViewers3D
red
- The red (in)green
- The green (in)blue
- The blue (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getBackgroundColor(float[] pRed, float[] pGreen, float[] pBlue) throws IOException, AutomationException
getBackgroundColor
in interface IViewers3D
pRed
- The pRed (out: use single element array)pGreen
- The pGreen (out: use single element array)pBlue
- The pBlue (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void replayFrame(ICamera camera) throws IOException, AutomationException
replayFrame
in interface IViewers3D
camera
- A reference to a com.esri.arcgis.analyst3d.ICamera (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addLayer(ILayer pLayer) throws IOException, AutomationException
addLayer
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removeLayer(ILayer pLayer) throws IOException, AutomationException
removeLayer
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void refreshLayer(ILayer pLayer) throws IOException, AutomationException
refreshLayer
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void refreshLayerSelection(ILayer pLayer) throws IOException, AutomationException
refreshLayerSelection
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsLayerVisible(ILayer pLayer, boolean rhs2) throws IOException, AutomationException
setIsLayerVisible
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)rhs2
- The rhs2 (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setLayerTransparency(ILayer pLayer, short rhs2) throws IOException, AutomationException
setLayerTransparency
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)rhs2
- The rhs2 (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setLayerLightingOption(ILayer pLayer, boolean isIlluminated) throws IOException, AutomationException
Use this method to set the lighting option for a layer.
Note that if you add a layer to globe via code and want the lighting property to be persisted when the globe document is saved then you should explicitly add the I3DProperties extension to your layer as follows:
ESRI.ArcGIS.Analyst3D.I3DProperties p3DProperties;
p3DProperties = new Feature3DPropertiesClass();
ESRI.ArcGIS.Carto.ILayerExtensions layerExtension = ftrLayer as
ESRI.ArcGIS.Carto.ILayerExtensions;
layerExtension.AddExtension(p3DProperties);
//Now set the layer lighting
glbDisplayLayers.SetLayerLightingOption(ftrLayer as
ESRI.ArcGIS.Carto.ILayer, true);
glbDisplayLayers.RefreshLayer(ftrLayer as ESRI.ArcGIS.Carto.ILayer);
If the extension is not added to the layer then on reopening a saved globe document lighting for the layer will be turned off by default.
setLayerLightingOption
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)isIlluminated
- The isIlluminated (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setLayerShadingMode(ILayer pLayer, boolean isSmooth) throws IOException, AutomationException
Use this method to set the shading mode for a layer.
Note that if you add a layer to globe via code and want the shading mode to be persisted when the globe document is saved then you should explicitly add the I3DProperties extension to your layer as follows:
ESRI.ArcGIS.Analyst3D.I3DProperties p3DProperties;
p3DProperties = new Feature3DPropertiesClass();
ESRI.ArcGIS.Carto.ILayerExtensions layerExtension = ftrLayer as ESRI.ArcGIS.Carto.ILayerExtensions;
layerExtension.AddExtension(p3DProperties);
//Now set the layer shading
glbDisplayLayers.SetLayerShadingMode(ftrLayer as ESRI.ArcGIS.Carto.ILayer, true);
glbDisplayLayers.RefreshLayer(ftrLayer as ESRI.ArcGIS.Carto.ILayer);
setLayerShadingMode
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)isSmooth
- The isSmooth (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setLayerFaceCulling(ILayer pLayer, int cullMode) throws IOException, AutomationException
setLayerFaceCulling
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)cullMode
- A com.esri.arcgis.analyst3d.esri3DFaceCulling constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setLayerDepthPriority(ILayer pLayer, int depthPrior) throws IOException, AutomationException
setLayerDepthPriority
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)depthPrior
- The depthPrior (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void applyHeightProperties(ILayer pGLayer) throws IOException, AutomationException
applyHeightProperties
in interface IGlobeDisplayLayers
pGLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGlobeLayerProperties findGlobeProperties(ILayer pLayer) throws IOException, AutomationException
findGlobeProperties
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IArray getBaseLayers() throws IOException, AutomationException
getBaseLayers
in interface IGlobeDisplayLayers
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void refreshTextureObjectsLayer(ILayer pLayer) throws IOException, AutomationException
refreshTextureObjectsLayer
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaximumLayerLOD(ILayer pLayer) throws IOException, AutomationException
getMaximumLayerLOD
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void generateTiles(ILayer pLayer, int fromLOD, int toLOD) throws IOException, AutomationException
generateTiles
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)fromLOD
- The fromLOD (in)toLOD
- The toLOD (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isParentsAreVisible(ILayer pLayer) throws IOException, AutomationException
isParentsAreVisible
in interface IGlobeDisplayLayers
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void reparent(ILayer layer, ICompositeLayer newParent) throws IOException, AutomationException
reparent
in interface IGlobeDisplayLayers
layer
- A reference to a com.esri.arcgis.carto.ILayer (in)newParent
- A reference to a com.esri.arcgis.carto.ICompositeLayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTextureDownsamplingFactor(ILayer pLayer, double rhs2) throws IOException, AutomationException
setTextureDownsamplingFactor
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)rhs2
- The rhs2 (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTextureCompressionType(ILayer pLayer, int rhs2) throws IOException, AutomationException
setTextureCompressionType
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)rhs2
- A com.esri.arcgis.analyst3d.esriTextureFormatType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void invalidateExtent(ILayer pLayer, IEnvelope pExtent, int minLOD, int maxLOD, boolean bRedraw, boolean bWaitUntilComplete) throws IOException, AutomationException
invalidateExtent
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)pExtent
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)minLOD
- The minLOD (in)maxLOD
- The maxLOD (in)bRedraw
- The bRedraw (in)bWaitUntilComplete
- The bWaitUntilComplete (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setFeatureTransformation(ILayer pLayer, int featureID, IVector3D pTrans, IVector3D pScale, IVector3D pRotate) throws IOException, AutomationException
setFeatureTransformation
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)featureID
- The featureID (in)pTrans
- A reference to a com.esri.arcgis.geometry.IVector3D (in)pScale
- A reference to a com.esri.arcgis.geometry.IVector3D (in)pRotate
- A reference to a com.esri.arcgis.geometry.IVector3D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getFeatureTransformation(ILayer pLayer, int featureID, IVector3D[] ppTrans, IVector3D[] ppScale, IVector3D[] ppRotate) throws IOException, AutomationException
getFeatureTransformation
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)featureID
- The featureID (in)ppTrans
- A reference to a com.esri.arcgis.geometry.IVector3D (out: use single element array)ppScale
- A reference to a com.esri.arcgis.geometry.IVector3D (out: use single element array)ppRotate
- A reference to a com.esri.arcgis.geometry.IVector3D (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setFeatureVisibility(ILayer pLayer, int featureID, boolean bVisible, int transparency) throws IOException, AutomationException
setFeatureVisibility
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)featureID
- The featureID (in)bVisible
- The bVisible (in)transparency
- The transparency (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getFeatureVisibility(ILayer pLayer, int featureID, boolean[] pbVisible, int[] pTransparency) throws IOException, AutomationException
getFeatureVisibility
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)featureID
- The featureID (in)pbVisible
- The pbVisible (out: use single element array)pTransparency
- The pTransparency (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setStrictOnDemandMode(ILayer pLayer, boolean rhs2) throws IOException, AutomationException
setStrictOnDemandMode
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)rhs2
- The rhs2 (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setGenerateTilesOverwrites(boolean pbOverwrites) throws IOException, AutomationException
setGenerateTilesOverwrites
in interface IGlobeDisplayLayers2
pbOverwrites
- The pbOverwrites (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isGenerateTilesOverwrites() throws IOException, AutomationException
isGenerateTilesOverwrites
in interface IGlobeDisplayLayers2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void countTiles(ILayer pLayer, int fromLOD, int toLOD, double[] pCount) throws IOException, AutomationException
countTiles
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)fromLOD
- The fromLOD (in)toLOD
- The toLOD (in)pCount
- The pCount (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTextureDisplayType(ILayer pLayer, int rhs2) throws IOException, AutomationException
setTextureDisplayType
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)rhs2
- A com.esri.arcgis.analyst3d.esriTextureFormatType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getInternalGlobeIndex(ILayer pLayer) throws IOException, AutomationException
getInternalGlobeIndex
in interface IGlobeDisplayLayers2
pLayer
- A reference to a com.esri.arcgis.carto.ILayer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsSunEnabled(boolean pbSun) throws IOException, AutomationException
setIsSunEnabled
in interface IGlobeDisplayRendering3
pbSun
- The pbSun (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isSunEnabled() throws IOException, AutomationException
isSunEnabled
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getGlobeBackgroundOption() throws IOException, AutomationException
getGlobeBackgroundOption
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setGlobeBackgroundOption(int pOption) throws IOException, AutomationException
setGlobeBackgroundOption
in interface IGlobeDisplayRendering3
pOption
- A com.esri.arcgis.globecore.esriGlobeBackgroundOption constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setLowBackgroundColor(float red, float green, float blue) throws IOException, AutomationException
setLowBackgroundColor
in interface IGlobeDisplayRendering3
red
- The red (in)green
- The green (in)blue
- The blue (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getLowBackgroundColor(float[] red, float[] green, float[] blue) throws IOException, AutomationException
getLowBackgroundColor
in interface IGlobeDisplayRendering3
red
- The red (out: use single element array)green
- The green (out: use single element array)blue
- The blue (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setBackgroundTransitionDistances(float lowAltitude, float highAltitude) throws IOException, AutomationException
setBackgroundTransitionDistances
in interface IGlobeDisplayRendering3
lowAltitude
- The lowAltitude (in)highAltitude
- The highAltitude (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getBackgroundTransitionDistances(float[] pLowAltitude, float[] pHighAltitude) throws IOException, AutomationException
getBackgroundTransitionDistances
in interface IGlobeDisplayRendering3
pLowAltitude
- The pLowAltitude (out: use single element array)pHighAltitude
- The pHighAltitude (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSunPosition(double latitude, double longitude) throws IOException, AutomationException
setSunPosition
in interface IGlobeDisplayRendering3
latitude
- The latitude (in)longitude
- The longitude (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getSunPosition(double[] pLatitude, double[] pLongitude) throws IOException, AutomationException
getSunPosition
in interface IGlobeDisplayRendering3
pLatitude
- The pLatitude (out: use single element array)pLongitude
- The pLongitude (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSunColor(float sunRed, float sunGreen, float sunBlue) throws IOException, AutomationException
setSunColor
in interface IGlobeDisplayRendering3
sunRed
- The sunRed (in)sunGreen
- The sunGreen (in)sunBlue
- The sunBlue (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getSunColor(float[] pSunRed, float[] pSunGreen, float[] pSunBlue) throws IOException, AutomationException
getSunColor
in interface IGlobeDisplayRendering3
pSunRed
- The pSunRed (out: use single element array)pSunGreen
- The pSunGreen (out: use single element array)pSunBlue
- The pSunBlue (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSunContrast(int pContrast) throws IOException, AutomationException
setSunContrast
in interface IGlobeDisplayRendering3
pContrast
- The pContrast (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getSunContrast() throws IOException, AutomationException
getSunContrast
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setAmbientLight(float pLightValue) throws IOException, AutomationException
setAmbientLight
in interface IGlobeDisplayRendering3
pLightValue
- The pLightValue (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public float getAmbientLight() throws IOException, AutomationException
getAmbientLight
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setBaseExaggeration(double pFactor) throws IOException, AutomationException
setBaseExaggeration
in interface IGlobeDisplayRendering3
pFactor
- The pFactor (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getBaseExaggeration() throws IOException, AutomationException
getBaseExaggeration
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setOverlayExaggeration(double pFactor) throws IOException, AutomationException
setOverlayExaggeration
in interface IGlobeDisplayRendering3
pFactor
- The pFactor (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getOverlayExaggeration() throws IOException, AutomationException
getOverlayExaggeration
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getGlobeRadius() throws IOException, AutomationException
getGlobeRadius
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsStarsEnabled(boolean pbStars) throws IOException, AutomationException
setIsStarsEnabled
in interface IGlobeDisplayRendering3
pbStars
- The pbStars (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isStarsEnabled() throws IOException, AutomationException
isStarsEnabled
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsHaloEnabled(boolean pbHalo) throws IOException, AutomationException
setIsHaloEnabled
in interface IGlobeDisplayRendering3
pbHalo
- The pbHalo (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isHaloEnabled() throws IOException, AutomationException
isHaloEnabled
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setGridDisplay(int pGridType) throws IOException, AutomationException
setGridDisplay
in interface IGlobeDisplayRendering3
pGridType
- A com.esri.arcgis.globecore.esriGlobeDisplayGridType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getGridDisplay() throws IOException, AutomationException
getGridDisplay
in interface IGlobeDisplayRendering3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void contentsChanged(IActiveViewEventsContentsChangedEvent theEvent) throws IOException, AutomationException
The Map object fires this event when a new document is loaded. Adding a new layer to a Map does not trigger this event.
The PageLayout object fires the event when IGraphicsContainer::DeleteAllElements in called and when a new document is loaded.
contentsChanged
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IActiveView.contentsChanged()
public void contentsCleared(IActiveViewEventsContentsClearedEvent theEvent) throws IOException, AutomationException
contentsCleared
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void itemAdded(IActiveViewEventsItemAddedEvent theEvent) throws IOException, AutomationException
The Map fires the event every time a new layer is added.
The PageLayout fires this event whenever a new element is added to the layout. Elements include not only graphics but data frames as well.
itemAdded
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void itemDeleted(IActiveViewEventsItemDeletedEvent theEvent) throws IOException, AutomationException
The PageLayout object fires this event whenever elements are deleted from the layout.
The Map object fires this event when a layer is removed.
itemDeleted
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void itemReordered(IActiveViewEventsItemReorderedEvent theEvent) throws IOException, AutomationException
The Map objects only fire this event whenever IMap::MoveLayer is called. In the ArcMap application, this occurs when you reorder layers in the table of contents. The Map will also fire this event when new layers are added.
The PageLayout object fires this event when changing the order of graphics. For example, IGraphicsContainer::BringToFront, PutElementOrder, SendToBack, SendBackward, and BringForward all fire this event. These functions are on ArcMap's Drawing menu under the Order pull right menu. Although the Map object is also a graphics container, it does not fire this event when its graphics are reordered.
itemReordered
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void selectionChanged(IActiveViewEventsSelectionChangedEvent theEvent) throws IOException, AutomationException
selectionChanged
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void viewRefreshed(IActiveViewEventsViewRefreshedEvent theEvent) throws IOException, AutomationException
Method that gets fired in response to IActiveView::Refresh and IActiveView::PartialRefresh.
This event is useful in the case where you're watching for something to change in the view and there aren't any specific events for that change (e.g. ContentsChanged, ItemAdded). You can always listen for this method as a last resort. Care must be taken however to be very efficient in your implementation of this event because it will be called quite often.
The event parameters directly coincide with the arguments to IActiveView::PartialRefresh. For additional information about the arguments, see the help for that method.
If the event object connects to both the layout and a map, then the view parameter tells you which object initiated the event.
In an implementation of this method you typically want to check the phase and respond to only one. Otherwise, your code will execute multiple times per drawing sequence.
viewRefreshed
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void afterDraw(IActiveViewEventsAfterDrawEvent theEvent) throws IOException, AutomationException
afterDraw
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void afterItemDraw(IActiveViewEventsAfterItemDrawEvent theEvent) throws IOException, AutomationException
AfterItemDraw can be used to execute after each individual item has drawn. Event firing can be an expensive operation (time consuming) when there are many layers in a map, however. As a result, the AfterItemDraw event is only fired when the IViewManger::VerboseEvents property is set to True. By default this property is False.
afterItemDraw
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void focusMapChanged(IActiveViewEventsFocusMapChangedEvent theEvent) throws IOException, AutomationException
focusMapChanged
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void spatialReferenceChanged(IActiveViewEventsSpatialReferenceChangedEvent theEvent) throws IOException, AutomationException
spatialReferenceChanged
in interface IActiveViewEvents
theEvent
- The event
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void enumConnectionPoints(IEnumConnectionPoints[] ppEnum) throws IOException, AutomationException
IConnectionPointContainer is a Microsoft interface. Please refer to MSDN for information about this interface.
enumConnectionPoints
in interface IConnectionPointContainer
ppEnum
- A reference to a com.esri.arcgis.display.IEnumConnectionPoints (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void findConnectionPoint(GUID riid, IConnectionPoint[] ppCP) throws IOException, AutomationException
IConnectionPointContainer is a Microsoft interface. Please refer to MSDN for information about this interface.
findConnectionPoint
in interface IConnectionPointContainer
riid
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)ppCP
- A reference to a com.esri.arcgis.display.IConnectionPoint (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setHWnd(int hWnd) throws IOException, AutomationException
setHWnd
in interface IScreenDisplay
hWnd
- The hWnd (A COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getHWnd() throws IOException, AutomationException
The hWnd property tells ScreenDisplay objects which window to draw in. When a new view (a Map or PageLayout) is created and activated (IActiveView::Activate), a related ScreenDisplay is created and its hWnd is set to that of the main application. Data windows, such as the MapInsetWindow, also have a related ScreenDisplay object and in this case the ScreenDisplay's hWnd property is set so that all drawing will occur in the data window and not the main application window.
Several Windows API calls require an hWnd in order to perform their operation; this property provides the hWnd for the ScreenDisplay object you are currently working with. For example, several of ArcMap's zoom commands use the Windows API function 'GetClientRect' to get the coordinates of the main window's client area. GetClientRect requires the hWnd of the window of interest and in ArcMap's case, IScreenDisplay::hWnd holds this.
getHWnd
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getWindowDC() throws IOException, AutomationException
This property is a Windows operating environment device context handle. The Windows operating environment manages the system display by assigning a device context for each window in the application. You can use the WindowDC property to refer to the handle for an object's device context.
This property does not provide a value to pass to IDisplay::StartDrawing. Instead, call IDisplay::StartDrawing with a value of 0 for the hDC as this will automatically use the Windows API function GetDC to populate IScreenDisplay::WindowDC with the hDC of the main display and drawing will occur there.
The value of the WindowDC property can change while an application runs, so do not store the value in a variable; instead, use the WindowDC property each time you need it.
getWindowDC
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public short addCache() throws IOException, AutomationException
ScreenDisplay objects make it possible for clients to create any number of caches. A cache is an off screen bitmap representing the application's window. Instead of drawing directly to the screen, graphics are drawn into caches, then the caches are drawn on the screen. When the application's window is obscured and requires redrawing, it done so from the caches instead of from a database. In this way, caches improve drawing performance - bitmap rendering is faster than reading and displaying data from a database.
In general, a Map object creates three caches: one for all the layers, another if there are annotation or graphics, and a third cache if there is a feature selection. A layer can create its own private cache if it sets ILayer::Cached equal to TRUE. In this case, the Map will create a separate cache for the layer and groups the layers above and below it into different caches.
The AppDisplay object has no implementation for this method.
addCache
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removeCache(short cacheID) throws IOException, AutomationException
Use this method to remove a cache that is no longer needed. For example, calling the IActiveView::PartialRefresh method on a Map object will delete the Map's selection cache if one exists and there are no features selected.
The AppDisplay object has no implementation for this method.
removeCache
in interface IScreenDisplay
cacheID
- The cacheID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public short getCacheCount() throws IOException, AutomationException
Use this property to loop through all of the available screen caches. For example, if you Invalidate using esriAllScreenCaches, this property is used to loop through all of the caches to invalidate each one.
The AppDisplay object has no implementation for this method.
getCacheCount
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removeAllCaches() throws IOException, AutomationException
Use this property to clear all of the screen caches the current object has. For example, when a Map is deactivated (IActiveView::Deactivate) it uses this property to remove all of its caches.
The AppDisplay object has no implementation for this method.
removeAllCaches
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getCacheMemDC(short index) throws IOException, AutomationException
getCacheMemDC
in interface IScreenDisplay
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setActiveCache(short index) throws IOException, AutomationException
setActiveCache
in interface IScreenDisplay
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public short getActiveCache() throws IOException, AutomationException
getActiveCache
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsFirstCacheTransparent(boolean flag) throws IOException, AutomationException
setIsFirstCacheTransparent
in interface IScreenDisplay
flag
- The flag (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isFirstCacheTransparent() throws IOException, AutomationException
isFirstCacheTransparent
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IScreenDisplay.isFramed()
public void startRecording() throws IOException, AutomationException
In addition to the caches clients create, the ScreenDisplay object also provides a recording cache that accumulates all drawing that happens on the display. This recording cache is used to redraw the application when the application is moved or exposed or when drawing rubber banding.
Note, StartRecording and StopRecording are exposed for developers creating custom applications that draw from multiple caches and need to refresh quickly. If you are working with ArcMap or even the Map object, leave all cache management up to the Map.
Use StartRecording to let the display know exactly what to record. Use DrawCache(esriScreenRecording) to display the recording cache. Use CacheMemDC(esriScreenRecording) to get a handle to the memory device context for the recording bitmap.
The following C++ code excerpt is a drawing sequence example that uses StartRecording.
VARIANT_BOOL isCacheDirty;
m_ipScreen->IsCacheDirty(esriScreenRecording, &isCacheDirty);
if (isCacheDirty) // draw from scratch
{
m_ipScreen->StartRecording();
m_ipScreen->StartDrawing((OLE_HANDLE)hPaintDC, esriNoScreenCache);
DrawContents();
m_ipScreen->FinishDrawing();
m_ipScreen->StopRecording();
}
else // draw from offscreen bitmap
{
m_ipScreen->DrawCache((OLE_HANDLE)hPaintDC, esriScreenRecording, 0, 0);
}
The following java code gives you an example drawing sequence.
IScreenDisplay pScreen; boolean isCacheDirty = pScreen.isCacheDirty(esriScreenRecording); if (isCacheDirty) // draw from scratch { IDisplay pIDisplay = new IDisplayProxy(pScreen); pScreen.startRecording(); pIDisplay.startDrawing((int)hPaintDC, esriNoScreenCache); DrawContents(); pScreen.finishDrawing(); pScreen.stopRecording(); } else // draw from offscreen bitmap { pScreen.drawCache((int)hPaintDC, esriScreenRecording, 0, 0); }
startRecording
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void stopRecording() throws IOException, AutomationException
In addition to the caches clients create, the ScreenDisplay object also provides a recording cache that accumulates all drawing that happens on the display. This recording cache is used to redraw the application when the application is moved or exposed or when drawing rubber banding.
Note, StartRecording and StopRecording are exposed for developers creating custom applications that draw from multiple caches and need to refresh quickly. If you are working with ArcMap or even the Map object, leave all cache management up to the Map.
Use StartRecording to let the display know exactly what to record. Use DrawCache(esriScreenRecording) to display the recording cache. Use CacheMemDC(esriScreenRecording) to get a handle to the memory device context for the recording bitmap.
The following C++ code excerpt is a drawing sequence example that uses StartRecording.
VARIANT_BOOL isCacheDirty;
m_ipScreen->IsCacheDirty(esriScreenRecording, &isCacheDirty);
if (isCacheDirty) // draw from scratch
{
m_ipScreen->StartRecording();
m_ipScreen->StartDrawing((OLE_HANDLE)hPaintDC, esriNoScreenCache);
DrawContents();
m_ipScreen->FinishDrawing();
m_ipScreen->StopRecording();
}
else // draw from offscreen bitmap
{
m_ipScreen->DrawCache((OLE_HANDLE)hPaintDC, esriScreenRecording, 0, 0);
}
The following java code gives you an example drawing sequence.
IScreenDisplay pScreen; boolean isCacheDirty = pScreen.isCacheDirty(esriScreenRecording); if (isCacheDirty) // draw from scratch { IDisplay pIDisplay = new IDisplayProxy(pScreen); pScreen.startRecording(); pIDisplay.startDrawing((int)hPaintDC, esriNoScreenCache); DrawContents(); pScreen.finishDrawing(); pScreen.stopRecording(); } else // draw from offscreen bitmap { pScreen.drawCache((int)hPaintDC, esriScreenRecording, 0, 0); }
stopRecording
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setUseScrollbars(boolean flag) throws IOException, AutomationException
setUseScrollbars
in interface IScreenDisplay
flag
- The flag (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isUseScrollbars() throws IOException, AutomationException
IActiveView::ShowScrollBars redirects all its calls to this property.
Changes to this property are not reflected until the active view changes. For example, when in layout view in ArcMap, programmatically changing the PageLayout to not show its scrollbars will have no effect until the next time the active view is set to the PageLayout; calling IActiveView::Refresh has no effect.
ArcMap uses this property to hide the Map's scroll bars when in layout view. Programmatically trying to display a Map's scroll bar in layout view will have no effect; for Map's this setting is only honored in data view and again it requires an active view change before the setting is reflected in the applications window.
isUseScrollbars
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setScrollbarHandles(int hWndHorzScrollbar, int hWndVertScrollbar) throws IOException, AutomationException
setScrollbarHandles
in interface IScreenDisplay
hWndHorzScrollbar
- The hWndHorzScrollbar (A COM typedef) (in)hWndVertScrollbar
- The hWndVertScrollbar (A COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setScaleContents(boolean flag) throws IOException, AutomationException
setScaleContents
in interface IScreenDisplay
flag
- The flag (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isScaleContents() throws IOException, AutomationException
If a Map's ScaleContents property is set to TRUE, when its display is resized, the area shown stays the same and the scale changes. When set to FALSE, the scale of the Map stays the same and the area shown changes.
The PageLayout object works similarly. If set to TRUE, the contents are stretched when the display is resized. The scale of all maps changes. When set to FALSE, the page remains the same size.
In ArcMap, on the Tools/Options menu, there are check boxes for controlling this property for the data and layout view.
isScaleContents
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSuppressResize(boolean suppressResize) throws IOException, AutomationException
setSuppressResize
in interface IScreenDisplay
suppressResize
- The suppressResize (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isSuppressResize() throws IOException, AutomationException
isSuppressResize
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isFramed() throws IOException, AutomationException
When creating a custom application, if you want the display to take over the window it's drawing in, set IsFramed to FALSE. This will add scrollbars (IScreenDisplay::UseScrollBars = TRUE) as necessary and keeps the device frame in sync with the window extent. Setting IsFramed to TRUE means that the display is drawing on some extent within the window. In this case, it won't show scrollbars and it won't automatically update the device frame.
For example, in the ArcMap application, in layout view where each Map resides inside a separate MapFrame, each Map has it IsFramed property set to TRUE. In data view, the opposite is true, a Map's display fits the entire window; in this view, all Map's have IsFramed set to FALSE, not just the focus map.
The IsFramed property also sets the IsFirstCacheTransparent property. When a Map is drawing in layout view, the PageLayout object has its ScreenDisplay and each Map has its own separate ScreenDisplay. This means that the layout has it's display cache(s) and the maps have their own. If the bottom cache of each map was opaque, you wouldn't be able to see through a map onto layout elements below it. Setting IsFirstCacheTransparent on the maps in layout view lets you see through the maps.
If you are working with Map's inside of ArcMap these settings should not be touched. Only use this property when building a low level application that uses a display to draw on a frame on a window.
isFramed
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IScreenDisplay
public void setIsFramed(boolean flag) throws IOException, AutomationException
setIsFramed
in interface IScreenDisplay
flag
- The flag (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITrackCancel getCancelTracker() throws IOException, AutomationException
getCancelTracker
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setCancelTrackerByRef(ITrackCancel cancelTracker) throws IOException, AutomationException
setCancelTrackerByRef
in interface IScreenDisplay
cancelTracker
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void invalidate(IEnvelope rect, boolean erase, short cacheIndex) throws IOException, AutomationException
Use Invalidate to refresh a specific region on the display. For example, if you add a new feature, only the extent of the new feature requires refreshing; the remainder of the display can redraw from cache.
The rect parameter specifies the region to update. Use 'Nothing' in Visual Basic or a zero in C++ to invalidate the entire display.
Erase specifies whether or not the background within the update region is erased when the update region is processed. Usually this is set to TRUE.
CacheIndex controls which cache to update. Use IActiveView::ScreenCacheID to get the cache index for a specific draw phase. The valid draw phases are held in the esriViewDrawPhase enumeration and are as follows:
0 - esriViewNone
1 - esriViewBackground
2 - esriViewGeography
4 - esriViewGeoSelection
8 - esriViewGraphics
16 - esriViewGraphicSelection
32 - esriviewForeground
You can also specify esriAllScreenCaches, esriNoScreenCache, and esriScreenRecording.
Invalidate sets the cache(s) as dirty. Use IsCacheDirty to check the state of a particular cache.
After completion, Invalidate fires the IDisplayEvents::DisplayInvalidated event.
IActiveView::PartialRefresh has similar parameters and itself calls Invalidate. Use this method instead as much as possible as it automatically determines the cache index based on the phase provided.
invalidate
in interface IScreenDisplay
rect
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)erase
- The erase (in)cacheIndex
- The cacheIndex (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.esriViewDrawPhase
,
IGlobeLayerProperties2
,
IActiveView.partialRefresh(int, java.lang.Object, com.esri.arcgis.geometry.IEnvelope)
,
IScreenDisplay.invalidate(com.esri.arcgis.geometry.IEnvelope, boolean, short)
,
IActiveView.getScreenCacheID(int, java.lang.Object)
,
IActiveView.refresh()
public boolean isCacheDirty(short cacheIndex) throws IOException, AutomationException
When drawing, use this property to check if a particular cache is dirty. If a cache is not dirty (FALSE), redraw the cache; if the cache is dirty (TRUE), redraw from scratch.
isCacheDirty
in interface IScreenDisplay
cacheIndex
- The cacheIndex (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void drawCache(int hDC, short index, tagRECT deviceRect, tagRECT cacheRect) throws IOException, AutomationException
Redrawing data from scratch is time consuming compared to drawing data that has been cached in an off-screen bitmap. If a particular cache return FALSE for IsCacheDirty, use DrawCache to instantly redraw the bitmap.
Use the CacheMemDC property to get the desired cache's hDC.
drawCache
in interface IScreenDisplay
hDC
- The hDC (A COM typedef) (in)index
- The index (in)deviceRect
- A Structure: com.esri.arcgis.system.tagRECT (in)cacheRect
- A Structure: com.esri.arcgis.system.tagRECT (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void doScroll(int xDelta, int yDelta, boolean updateScreen) throws IOException, AutomationException
ArcMap's scroll bars call this method to scroll the current display. The updateScreen parameter specifies whether or not the display will be refreshed after the scroll.
The following example shows how this method can be used.
MapControl mapControl;IActiveView pActiveView = mapControl.getActiveView();IDisplayTransformation pDisplayTransform =pActiveView.getScreenDisplay().getDisplayTransformation()IScreenDisplay pScreenDisplay = pActiveView.getScreenDisplay();pScreenDisplay.doScroll( 100, 100, true );
doScroll
in interface IScreenDisplay
xDelta
- The xDelta (in)yDelta
- The yDelta (in)updateScreen
- The updateScreen (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void trackPan() throws IOException, AutomationException
There are two approaches to panning - this method, and the group PanStart, PanMoveTo, and PanStop. This method is the easiest to use as it takes care of all the mouse events and refreshing the display when pan is complete.
Call this method in the mouse down event and make certain you have a reference to the correct ScreenDisplay object. For example, if you are in layout view and you want to pan just the focus map, do not use the ScreenDisplay object associated with IMxDocument::ActiveView. Instead, get the focus Map via IMxDocument::FocusMap, and then get its ScreenDisplay.
MapControl mapControl;IActiveView pActiveView = mapControl.getActiveView();IScreenDisplay pScreenDisplay = pActiveView.getScreenDisplay();pScreenDisplay.trackPan();
trackPan
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IScreenDisplay.panMoveTo(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.panStart(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.panStop()
public void panStart(IPoint mouseLocation) throws IOException, AutomationException
Call PanStart to initiate panning. The required point parameter specifies the pan's starting point. Call PanMoveTo next to specify a destination point.
The typical sequence for using the pan methods is as follows:
See TrackPan for an alternative panning approach.
panStart
in interface IScreenDisplay
mouseLocation
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IScreenDisplay.panMoveTo(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.panStart(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.panStop()
,
IScreenDisplay.trackPan()
public void panMoveTo(IPoint mouseLocation) throws IOException, AutomationException
PanMoveTo pans the display by calculating an offset distance between the start point supplied to PanStart and the destination point provided to this method. The recording cache is automatically redrawn each time PanMoveTo is called. Use the envelope PanStop returns to truly refresh the display.
The typical sequence for using the pan methods is as follows:
See TrackPan for an alternative panning approach.
panMoveTo
in interface IScreenDisplay
mouseLocation
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IScreenDisplay.panMoveTo(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.panStart(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.panStop()
,
IScreenDisplay.trackPan()
public IEnvelope panStop() throws IOException, AutomationException
PanStop creates an Envelope that should be used to reset the extent of the active view. Because PanMoveTo redraws only the recording cache (bitmap), there are typically blank areas in the display. Call IActiveView::Refresh after calling PanStop to invalidate the entire display.
The typical sequence for using the pan methods is as follows:
See TrackPan for an alternative panning approach.
panStop
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IScreenDisplay.panMoveTo(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.panStart(com.esri.arcgis.geometry.IPoint)
,
com.esri.arcgis.display.IActiveView
,
IScreenDisplay.panStop()
,
IScreenDisplay.trackPan()
public void trackRotate() throws IOException, AutomationException
There are two approaches to rotating the display - this method and the group RotateStart, RotateMoveTo, RotateTimer, and RotateStop. This method is the easiest to use as it takes care of all the mouse events automatically, performs the final display rotation, and invalidates the display.
Call this method in the mouse down event and make certain you have a reference to the correct ScreenDisplay object. For example, if you are in layout view and you want to pan just the focus map, do not use the ScreenDisplay object associated with IMxDocument::ActiveView. Instead, get the focus Map via IMxDocument::FocusMap, and then get its ScreenDisplay.
The following java code excerpt shows this.
MapControl mapControl;IActiveView pActiveView = mapControl.getActiveView();IScreenDisplay pScreenDisplay = pActiveView.getScreenDisplay();pScreenDisplay.trackRotate();
trackRotate
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void rotateStart(IPoint mousePt, IPoint centerPt) throws IOException, AutomationException
Call RotateStart to initiate rotating the display. The required point parameter specifies the starting point of the rotation. Call RotateMoveTo next to specify the rotation destination point, a rotation angle is calculated based on these two points.
The typical sequence for using the rotate methods is as follows:
See TrackRotate for an alternative rotating approach.
rotateStart
in interface IScreenDisplay
mousePt
- A reference to a com.esri.arcgis.geometry.IPoint (in)centerPt
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IScreenDisplay.rotateTimer()
,
IDisplayTransformation.getRotation()
,
IScreenDisplay.rotateMoveTo(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.rotateStop()
,
IScreenDisplay.rotateStart(com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint)
public void rotateMoveTo(IPoint pPoint) throws IOException, AutomationException
RotateMoveTo rotates the display based on the calculated angle between the start point supplied to RotateStart and the destination point provided to this method. Next call RotateTimer to show the rotation degree readout and repaint the display from cache.
The typical sequence for using the rotate methods is as follows:
See TrackRotate for an alternative rotating approach.
rotateMoveTo
in interface IScreenDisplay
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.IScreenDisplay.rotateTimer()
,
IDisplayTransformation.getRotation()
,
IScreenDisplay.rotateMoveTo(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.rotateStop()
,
IScreenDisplay.rotateStart(com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint)
public void rotateTimer() throws IOException, AutomationException
RotateTimer shows the rotation degree readout and repaints the display from cache.
The typical sequence for using the rotate methods is as follows:
See TrackRotate for an alternative rotating approach.
rotateTimer
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IScreenDisplay.rotateTimer()
,
IDisplayTransformation.getRotation()
,
IScreenDisplay.rotateMoveTo(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.rotateStop()
,
IScreenDisplay.rotateStart(com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint)
public double rotateStop() throws IOException, AutomationException
RotateStop returns the final rotation angle. You must call IDisplayTransformation::Rotation with the final rotation angle to actually rotate the display.
The typical sequence for using the rotate methods is as follows:
See TrackRotate for an alternative rotating approach.
rotateStop
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IScreenDisplay.rotateTimer()
,
IDisplayTransformation.getRotation()
,
IScreenDisplay.rotateMoveTo(com.esri.arcgis.geometry.IPoint)
,
IScreenDisplay.rotateStop()
,
IScreenDisplay.rotateStart(com.esri.arcgis.geometry.IPoint, com.esri.arcgis.geometry.IPoint)
public void updateWindow() throws IOException, AutomationException
Use UpdateWindow to process pending Windows WM_PAINT messages immediately. This may be the case if you have a routine that takes a long time to execute and you need the window to refresh while the code executes. Typically, no drawing will occur until all your code has been executed and control returns to the ArcMap's message loop and the WM_PAINT message is handled. UpdateWindow forces the window to invalidate by sending a WM_PAINT message directly to the window; the normal ArcMap message queue is bypassed.
See UpdateWindow in MSDN for more information.
updateWindow
in interface IScreenDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IDisplayTransformation getDisplayTransformation() throws IOException, AutomationException
getDisplayTransformation
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setDisplayTransformation(IDisplayTransformation displayTransformation) throws IOException, AutomationException
setDisplayTransformation
in interface IDisplay
displayTransformation
- A reference to a com.esri.arcgis.display.IDisplayTransformation (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnvelope getClipEnvelope() throws IOException, AutomationException
getClipEnvelope
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISet getClipEnvelopes() throws IOException, AutomationException
getClipEnvelopes
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry getClipGeometry() throws IOException, AutomationException
Use the ClipGeometry property to shape the area data is drawn in. For example, if you had a map of the United States that contained many layers, you could set the ClipGeometry property on the focus Map's ScreenDisplay object equal to the geometry of a particular state thereby telling the map to only draw the data falling within the particular state's area. The ClipGeometry is used to cookie-cut all data before it is drawn.
See IMap::ClipGeometry for a more information and a sample.
getClipGeometry
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setClipGeometry(IGeometry geometry) throws IOException, AutomationException
setClipGeometry
in interface IDisplay
geometry
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isSuppressEvents() throws IOException, AutomationException
For example, IScreenDisplay::StartDrawing sets SuppressEvents to TRUE and FinishDrawing sets it back to FALSE, this prevents all transform events from firing during the drawing.
SuppressEvents is set to FALSE by default.
isSuppressEvents
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSuppressEvents(boolean suppressEvents) throws IOException, AutomationException
setSuppressEvents
in interface IDisplay
suppressEvents
- The suppressEvents (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IDisplayFilter getFilter() throws IOException, AutomationException
getFilter
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setFilterByRef(IDisplayFilter filter) throws IOException, AutomationException
setFilterByRef
in interface IDisplay
filter
- A reference to a com.esri.arcgis.display.IDisplayFilter (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getHPalette() throws IOException, AutomationException
getHPalette
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setHPalette(int hPalette) throws IOException, AutomationException
setHPalette
in interface IDisplay
hPalette
- The hPalette (A COM typedef) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void startDrawing(int hDC, short cacheID) throws IOException, AutomationException
StartDrawing and FinishDrawing are used to manage clipping, symbols, and caching. Call StartDrawing and FinishDrawing anytime you want to draw to a device such as a display, printer, or cache (bitmap). However, if you are drawing in response to IActiveViewEvents::AfterDraw, the Map object automatically makes these calls for you.
StartDrawing has two parameters: hDc and cacheID. The hDc parameter specifies the target device where drawing will occur, usually a display, printer, or bitmap. The cacheID parameter activates a specific cache. In most cases, esriNoScreenCache should be used.
Specifying a cache sets it as the screen's active cache. When esriNoScreenCache is used, it sets the display's active cache to zero and drawing occurs directly in the device. Specify a cache when you don't want to draw to a screen directly and you instead want to draw to a cache (bitmap) that may ultimately be copied to the screen. For example, when ArcMap draws geography, it draws it to a specific cache and then the cache is copied to the screen. When the screen repaints, instead of drawing all the data from scratch again, the software checks if the cache is dirty or not and simply redraws the bitmap to save time if it can. When drawing to a cache, the hDc parameter should be the device context of the bitmap, use the IScreenDisplay::CacheMemDC property to get a particular cache's hDC.
Each time you need to change the cache you are drawing to, you must do so inside a new StartDrawing / FinishDrawing block. For example, ArcMap usually creates three caches: one for geography layers, one for graphics and annotation, and one for selections. ArcMap draws each of these phases within a separate StartDrawing / FinishDrawing block.
There are times when may need to draw shapes directly to screen without having them become part of a display cache. For example, drawing moving objects. In these cases, use IScreenDisplay::WindowDC to get the device context of the display and esriNoScreenCache as the cacheID.
If a zero is specified for the hDc parameter, the Windows API function GetDC is used to populate IScreenDisplay::WindowDC with the hDC of the main display and drawing is sent here.
StartDrawing fires the IDisplayEvents::DisplayStarted event.The following java code gives you an example drawing sequence.
<font face=”Courier New” size=2>
<pre>
IScreenDisplay pScreen;
boolean isCacheDirty = pScreen.isCacheDirty(esriScreenRecording);
if (isCacheDirty) // draw from scratch
{
IDisplay pIDisplay = new IDisplayProxy(pScreen);
pScreen.startRecording();
pIDisplay.startDrawing((int)hPaintDC, esriNoScreenCache);
DrawContents();
pScreen.finishDrawing();
pScreen.stopRecording();
} else // draw from offscreen bitmap
{
pScreen.drawCache((int)hPaintDC, esriScreenRecording, 0, 0);
}
</pre>
</font>
startDrawing
in interface IDisplay
hDC
- The hDC (A COM typedef) (in)cacheID
- The cacheID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IDisplay.finishDrawing()
public int getHDC() throws IOException, AutomationException
Returns the device context specified to StartDrawing. This may be the device context of a display, cache (bitmap), or some other device such as a printer. As StartDrawing is called frequently throughout the drawing pipeline, the hDc property continually changes and is therefore safe to use only within a single StartDrawing / FinishDrawing block.
This property does not provide a value to pass to IDisplay::StartDrawing. Instead, call IDisplay::StartDrawing with a value of 0 for the hDC as this will automatically use the Windows API function GetDC to populate IScreenDisplay::WindowDC with the hDC of the main display and drawing will occur there.
getHDC
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void finishDrawing() throws IOException, AutomationException
finishDrawing
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IDisplay.startDrawing(int, short)
public void progress(int vertexCount) throws IOException, AutomationException
progress
in interface IDisplay
vertexCount
- The vertexCount (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void drawPoint(IGeometry point) throws IOException, AutomationException
DrawPoint draws a Point object with the symbol that must be specified before hand with the SetSymbol method. All draw methods must be enclosed between the calls to StartDrawing and FinishDrawing unless you are drawing in response to the IActiveViewEvents::AfterDraw event.
drawPoint
in interface IDisplay
point
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IDisplay.startDrawing(int, short)
public void drawMultipoint(IGeometry multipoint) throws IOException, AutomationException
drawMultipoint
in interface IDisplay
multipoint
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IDisplay.startDrawing(int, short)
public void drawRectangle(IEnvelope rectangle) throws IOException, AutomationException
drawRectangle
in interface IDisplay
rectangle
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IDisplay.startDrawing(int, short)
public void drawPolyline(IGeometry polyline) throws IOException, AutomationException
drawPolyline
in interface IDisplay
polyline
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IDisplay.startDrawing(int, short)
public void drawPolygon(IGeometry polygon) throws IOException, AutomationException
drawPolygon
in interface IDisplay
polygon
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IDisplay.startDrawing(int, short)
public void drawText(IGeometry shape, String text) throws IOException, AutomationException
drawText
in interface IDisplay
shape
- A reference to a com.esri.arcgis.geometry.IGeometry (in)text
- The text (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IDisplay.startDrawing(int, short)
public void setSymbol(ISymbol sym) throws IOException, AutomationException
setSymbol
in interface IDisplay
sym
- A reference to a com.esri.arcgis.display.ISymbol (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IIlluminationProps getIlluminationProps() throws IOException, AutomationException
getIlluminationProps
in interface IDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIlluminationProps(IIlluminationProps illuminationProps) throws IOException, AutomationException
setIlluminationProps
in interface IDisplay
illuminationProps
- A reference to a com.esri.arcgis.display.IIlluminationProps (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getStatistic(int property) throws IOException, AutomationException
getStatistic
in interface IGlobeStatInfo
property
- A com.esri.arcgis.globecore.esriGlobeStat constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void startAccumulating(int property) throws IOException, AutomationException
startAccumulating
in interface IGlobeStatInfo
property
- A com.esri.arcgis.globecore.esriGlobeStat constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double stopAccumulating(int property) throws IOException, AutomationException
stopAccumulating
in interface IGlobeStatInfo
property
- A com.esri.arcgis.globecore.esriGlobeStat constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setNumFramesInAvg(int property, int num) throws IOException, AutomationException
setNumFramesInAvg
in interface IGlobeStatInfo
property
- A com.esri.arcgis.globecore.esriGlobeStat constant (in)num
- The num (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITimeValue getTimeValue() throws IOException, AutomationException
getTimeValue
in interface ITimeDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTimeValue(ITimeValue timeExtent) throws IOException, AutomationException
setTimeValue
in interface ITimeDisplay
timeExtent
- A reference to a com.esri.arcgis.system.ITimeValue (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITimeReference getTimeReference() throws IOException, AutomationException
getTimeReference
in interface ITimeDisplay
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTimeReference(ITimeReference timeReference) throws IOException, AutomationException
setTimeReference
in interface ITimeDisplay
timeReference
- A reference to a com.esri.arcgis.system.ITimeReference (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getTimeRelation() throws IOException, AutomationException
getTimeRelation
in interface ITimeDisplay2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTimeRelation(int relation) throws IOException, AutomationException
setTimeRelation
in interface ITimeDisplay2
relation
- A com.esri.arcgis.system.esriTimeRelation constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumLayer createLayerFromGmxXML(String cachePath) throws IOException, AutomationException
Use IGlobeDisplayUtil.CreateLayerFromGmxXML to create a layer file for a globe cache
cachePath - the full path for you data cache. It can include gmx.xml or just full path to the cache path folder.
ppLayers – returns an IEnumLayer. You can use IScene:AddLayers to add the returned layer to the globe.
createLayerFromGmxXML
in interface IGlobeDisplayUtil
cachePath
- The cachePath (in)
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 |