1
0
Fork 0
Commit graph

13 commits

Author SHA1 Message Date
Hooray
e510c8917f Canvas Scripting Layer (Mapping):
- first stab at refactoring the map.nas module, and trying to let the API evolve according to our requirements
- split up the module into separate files (some of them will disappear soon)
- split up the "drawing" loops into separate functions so that they can be individually called
- move actual "drawing" to map_layers.nas
- introduce some OOP helpers to prepare a pure Layer-based design
- prepare helpers: LayeredMap, GenericMap, AirportMap (TODO: use a real "Layer" class)
- move airport features (taxiways, runways, parking, tower) to separate layers (i.e. canvas groups)
- avoid using a single update callback and use different layer-specific callbacks to update individual layers more efficiently
- add some boilerplate hashes to prepare the MVC design
- allow lazy updating of layers, where canvas groups are only populated on demand, to save some time during instantiation, i.e. loading an airport without "parking" selected, will only populate the layer once the checkbox is checked
- extend the original code such that it supports showing multiple airports at once
- add some proof of concept "navaid" layer using SVG files for navaid symbols (added only NDB symbol from wikimedia commons)

regressions:
- runway highlighting needs to be re-implemented
- parking highlighting will be done differently
- enforcing a specific drawing order for layers is currently not explicitly supported, so that taxiways may be rendered on top of runways

Also:

- integrated with the latest changes in git/master (HEAD) -i.e. metar support
- further generalized map.nas
- partially moved instantiation from Nasal space to XML space (WIP)
- create "toggle layer" checkboxes procedurally in Nasal space
- prepared the code to be better reusable in other dialogs (e.g. route manager, map dialog etc)
- completely removed the "highlighting" (runway/parking) feature for now, because we talked about re-implementing it anyhow
2012-09-29 21:16:31 +01:00
Thomas Geymayer
5650e97397 Canvas: Bounding box may not exist 2012-09-25 22:20:39 +02:00
Thomas Geymayer
86344dfe57 Canvas: Add method to retrieve all child elements of a group. 2012-09-17 18:16:30 +02:00
Thomas Geymayer
a4af6530e1 Canvas: Fix cubic/scubic typo. 2012-09-04 22:54:53 +02:00
Thomas Geymayer
16890bb5b8 Canvas: Experimental backward support for FlightGear 2.8 2012-09-01 22:37:25 +02:00
Thomas Geymayer
52b89ed372 Canvas: Update API for core changes.
- Use only one node for colors and dash-array
 - Update some property names to better match SVG/CSS
2012-08-23 21:05:52 +02:00
Thomas Geymayer
20c6d48ee7 Canvas: Basic GUI API and API cleanup 2012-08-12 23:25:47 +02:00
Thomas Geymayer
a129877eb8 Canvas: Add function to API for getting canvas path 2012-08-09 22:08:44 +02:00
Thomas Geymayer
c785b1bd1c Canvas: Extend Image element and adapt for latest core changes. 2012-08-09 18:18:07 +02:00
James Turner
5862ada5f0 Add Image to Canvas API 2012-08-06 10:27:25 +01:00
Thomas Geymayer
7e641735cb Canvas: Improve API and SVG parser.
- API:
  * Rename setSize to setFontSize
  * Add method getElementById to Group
  * Rename name of element to id to show more prominent
    that it should be unique.
  * Add methods for hide/show elements.
  * Fix: set correct id for cloned elements (parsesvg)
  * Fix: retrieving group with getElementById failed.
  * Parse SVG inkscape:transform-center-[xy]
  * Allow rotation around given point (use values from inkscape
    by default for SVG files)
  * Use breadth-first search instead of depth-first search for
    Element::getElementById (large speedup :))
  * Add more convenience functions for path drawing.
  * Add version check (useful if API files manually copied)

 - SVG:
  * Support <use> element
  * Parse font-size
  * Parse stroke-linecap
2012-08-02 01:40:00 +02:00
Thomas Geymayer
2e3aa2673b Canvas: Update API to new geo coords and add map element 2012-08-02 01:40:00 +02:00
Thomas Geymayer
07cb9e7df0 Canvas: Add Nasal API for using the Canvas. 2012-08-02 01:39:59 +02:00