fvs 2010 fvoverlay interfaces1 the falconview overlay wizard presenters: george menhorn daniel...
TRANSCRIPT
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