![Page 1: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/1.jpg)
FVS 2010 FvOverlay Interfaces 1
The FalconView Overlay Wizard
Presenters:George MenhornDaniel Longhurst
Georgia Tech Research Institutehttp://www.falconview.orghttp://www.defense.gatech.edu/
![Page 2: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/2.jpg)
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
![Page 3: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/3.jpg)
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
![Page 4: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/4.jpg)
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
![Page 5: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/5.jpg)
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
![Page 6: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/6.jpg)
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
![Page 7: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/7.jpg)
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
![Page 8: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/8.jpg)
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
![Page 9: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/9.jpg)
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
![Page 10: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/10.jpg)
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
![Page 11: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/11.jpg)
Copy and Paste Operations• IFvOverlayCopyPaste
• Copy and paste from “clipboard”
• Handling dropping of IDataObject
FVS 2010 FvOverlay Interfaces 11
![Page 12: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/12.jpg)
Snappable Points• IFvOverlaySnappablePoints
• Allow other overlays to snap-to objects in your overlay
FVS 2010 FvOverlay Interfaces 12
![Page 13: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/13.jpg)
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
![Page 14: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/14.jpg)
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
![Page 15: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/15.jpg)
FVS 2010 FvOverlay Interfaces 15
• Property Page
• FvOverlayPropertyPages.xml
• IFvOverlayPropertyPage• OnCreate• OnApply
Optional Objects
![Page 16: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/16.jpg)
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
![Page 17: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/17.jpg)
FVS 2010 FvOverlay Interfaces 17
• File Overlay Type Descriptor• Runtime specification of file specifics• Normally specified in configuration
• IFvFileOverlayTypeDescriptor• GetDefaultDirectory• GetDefaultFileExtension• GetFileDialogFilter
Optional Objects
![Page 18: FVS 2010 FvOverlay Interfaces1 The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute](https://reader034.vdocument.in/reader034/viewer/2022042702/56649cb95503460f9497f98e/html5/thumbnails/18.jpg)
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