210 likes | 733 Views
The FalconView Overlay Wizard. Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute http://www.falconview.org http://www.defense.gatech.edu/. FalconView Overlay Wizard. What is the FalconView Overlay Wizard? Can I start using the tool? FvwWizards
E N D
The FalconView Overlay Wizard Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute http://www.falconview.org http://www.defense.gatech.edu/ FvOverlay Interfaces
FalconView Overlay Wizard • What is the FalconView Overlay Wizard? • Can I start using the tool? • FvwWizards • What is a plug-in overlay? • GetTheSdk FalconView Overlay Wizard
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 FvOverlay Interfaces
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> FvOverlay Interfaces
Overlay Objects • 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 FvOverlay Interfaces
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 FvOverlay Interfaces
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 FvOverlay Interfaces
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 FvOverlay Interfaces
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 FvOverlay Interfaces
Playback events • IFvPlaybackEventsObserver • Notifications of playback started/stopped, playback time changed, playback rate changed • IFvPlaybackTimeInterval • Used to specify an time interval for overlay FvOverlay Interfaces
Copy and Paste Operations • IFvOverlayCopyPaste • Copy and paste from “clipboard” • Handling dropping of IDataObject FvOverlay Interfaces
Snappable Points • IFvOverlaySnappablePoints • Allow other overlays to snap-to objects in your overlay FvOverlay Interfaces
FalconView 4.2.1 interfaces • 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 IFvOverlayVerticalViewRendererIFvOverlayVerticalViewUIEvents FvOverlay Interfaces
Optional Objects • Editor Object • single object created per overlay type • Manages the editor state, UI, and toolbar • IFvOverlayEditor • ActivateEditor • DeactivateEditor • DefaultCursor • EditorToolbar • OnToolbarButtonClick FvOverlay Interfaces
Optional Objects • Property Page • FvOverlayPropertyPages.xml • IFvOverlayPropertyPage • OnCreate • OnApply FvOverlay Interfaces
Optional Objects • 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 FvOverlay Interfaces
Optional Objects • File Overlay Type Descriptor • Runtime specification of file specifics • Normally specified in configuration • IFvFileOverlayTypeDescriptor • GetDefaultDirectory • GetDefaultFileExtension • GetFileDialogFilter FvOverlay Interfaces
Optional Objects • 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() FvOverlay Interfaces