FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel...

Preview:

Citation preview

FVS 2010 FvOverlay Interfaces 1

The FalconView Overlay Wizard

Presenters:George MenhornDaniel Longhurst

Georgia Tech Research Institutehttp://www.falconview.orghttp://www.defense.gatech.edu/

FalconView Overlay Wizard

• What is the FalconView Overlay Wizard?

• Can I start using the tool?• FvwWizards

• What is a plug-in overlay?• GetTheSdk

FVS 2010 FalconView Overlay Wizard 2

FVS 2010 FvOverlay Interfaces 3

Next Generation plug-in overlays• FalconView 4.2.1+• Why a “next generation”?

• Extended capabilities• Easier to write a plug-in overlay• More efficient• Future proofed

• The remaining internal FalconView overlays will be migrated out to plug-ins in 5.1

Overlay Types Configuration File• FvOverlayTypes.xml<OverlayType

displayName="Geodata“ iconFile="ovlmgr\geodata.ico"

enabled="true“ defaultRestoreAtStartup="false"

uid="6EA5B9FC-0344-4f8d-9F2F-F6B1CB0D03D7">

<FileOverlayTypeDescriptor defaultDir="FOLDERID_PublicDocuments\PFPS\data\Geodata" defaultFileExtension=".kml" openFileDialogFilter="KML files (*.kml;*.kmz)|*.kml;*.kmz|GPX files (*.gpx)|*.gpx|ArcInfo (*.E00)|*.E00|GeoRSS (*.rss)|*.rss|GML files (*.gml)|*.gml" saveFileDialogFilter="KML files (*.kml;*.kmz)|*.kml;*.kmz" />

<OverlayFactory overlayClsid="641E4D02-4A04-4315-93F3-F32FBFC85E21" />

</OverlayType>

FVS 2010 FvOverlay Interfaces 4

FVS 2010 FvOverlay Interfaces 5

• IFvOverlay – the only required interface• Read only property for overlay unique id• Read/write property for visibility• Receives overlay event sink

• IPropertyNotifySink• IDisplayChangeNotifyEvents• IMapChangeNotifyEvents

• Lifetime of object corresponds with lifetime of overlay: Initialize / Terminate

Overlay Objects

File-based overlay types• If a FileOverlayTypeDescriptor is

specified in the configuration file, then implementing IFvOverlayPersistence is required

• Methods: FileNew, FileOpen, and FileSaveAs

• Properties: FileSpecification (read-only), HasBeenSaved, IsDirty, IsReadOnly

FVS 2010 FvOverlay Interfaces 6

Overlay Rendering• Implement IFvOverlayRenderer on the

overlay object

• OnDraw called to render to a surface• Screen• Printer• DIB

• Receive current map projection for geographic to projected coordinate system transforms

FVS 2010 FvOverlay Interfaces 7

User Interface Events• Implement IFvOverlayUIEvents on the overlay

object• Mouse move, mouse buttons down/up, mouse

wheel, double-click, and key up/down events• Events are routed from the top-most overlay in

the overlay stack to the bottom-most overlay until an overlay handles the event

• Implement IFvOverlayUIEventRoutingOverrides to override default event routing behavior

FVS 2010 FvOverlay Interfaces 8

Context Menu Support• Implement IFvOverlayContextMenu on the

overlay object• AppendMenuItems called when user right-clicks

on the map, passed an IFvContextMenu• Call AppendMenuItem passing in a context menu

item object• Context menu item object should implement the

IFvContextMenuItem interface• MenuItemEnabled• MenuItemName• MenuItemSelected

FVS 2010 FvOverlay Interfaces 9

Playback events• IFvPlaybackEventsObserver

• Notifications of playback started/stopped, playback time changed, playback rate changed

• IFvPlaybackTimeInterval

• Used to specify an time interval for overlay

FVS 2010 FvOverlay Interfaces 10

Copy and Paste Operations• IFvOverlayCopyPaste

• Copy and paste from “clipboard”

• Handling dropping of IDataObject

FVS 2010 FvOverlay Interfaces 11

Snappable Points• IFvOverlaySnappablePoints

• Allow other overlays to snap-to objects in your overlay

FVS 2010 FvOverlay Interfaces 12

FVS 2010 FvOverlay Interfaces 13

• Other optional interfaces and their capabilities

• Render to the base map IFvOverlayBaseMapRenderer• Enumeration of overlay IFvOverlayElement

elements IFvOverlayElementEnumerator• Point Export IFvOverlayExportablePoints• Overlay Type Override IFvOverlayTypeOverrides• Vertical View Rendering IFvOverlayVerticalViewRenderer

IFvOverlayVerticalViewUIEvents

FalconView 4.2.1 interfaces

FVS 2010 FvOverlay Interfaces 14

• Editor Object• single object created per overlay type• Manages the editor state, UI, and toolbar

• IFvOverlayEditor• ActivateEditor• DeactivateEditor• DefaultCursor• EditorToolbar• OnToolbarButtonClick

Optional Objects

FVS 2010 FvOverlay Interfaces 15

• Property Page

• FvOverlayPropertyPages.xml

• IFvOverlayPropertyPage• OnCreate• OnApply

Optional Objects

FVS 2010 FvOverlay Interfaces 16

• Runtime Enable• Allow runtime disabling of an overlay

i.e. Required resources not available (e.g., ArcEngine)

• Most overlays will not require this

• IFvOverlayTypeRuntimeEnabled• IsOverlayTypeEnabled

Optional Objects

FVS 2010 FvOverlay Interfaces 17

• File Overlay Type Descriptor• Runtime specification of file specifics• Normally specified in configuration

• IFvFileOverlayTypeDescriptor• GetDefaultDirectory• GetDefaultFileExtension• GetFileDialogFilter

Optional Objects

FVS 2010 FvOverlay Interfaces 18

• Custom Initializer• Optionally implemented to initialize an

overlay type during the startup sequence• Unusual object ~ can slow startup time

• IFvCustomInitializer• InitializeAtStartup(

IFvSplashWnd pFvSplashWnd, IFvOverlayManager

pFvOverlayManager)• TerminateAtShutdown()

Optional Objects

Recommended