2019-01-18 08:40:47 +03:00
# TODO - GUI and UX
## Quick n easy
2019-01-21 01:27:25 +03:00
- try showing traffic signals by little boxes at the end of lanes
- red circle means right turn on red OK, red right arrow means nope, green means normal turns ok, green arrow means protected left, crosswalk hand or stick figure
2019-01-22 21:02:18 +03:00
- if a lane could feasibly have multiple turn options but doesnt, print "ONLY"
2019-01-20 07:29:13 +03:00
- color roads as solid black when zoomed out, and make intersections similar (except for stop sign / signal)
2019-01-18 08:40:47 +03:00
- audit all panics
- tune text color, size, padding
- sort the top menus
- click cycle diagram to edit duration
- lane edit validity
- make it easy to see current lane when changing it
## Less easy
- revamp stop sign editor
- toggle rewind mode
- sim stuff feels like a modal menu that's kinda omniprescent, but gets hidden sometimes
2019-01-18 10:43:56 +03:00
- yellow or flashing red/yellow for yields
- text box entry: highlight char looks like replace mode; draw it btwn chars
2019-01-18 08:40:47 +03:00
## General ezgui stuff
- trigger screencap from a top menu debug thing WITHOUT a hotkey.
- optionally limit canvas scrolling/zooming to some map bounds
- T top menu doesnt know when we have a more urgent input thing going!
- cant use G for geom debug mode and contextual polygon debug
- on a menu with preselected thing, clicking ANYWHERE does stuff...
- X on all menus
2019-01-18 10:43:56 +03:00
- when dragging, dont give mouse movement to UI elements
2019-01-18 08:40:47 +03:00
## New features
- swap direction of one-way
- convert between one- and two-way if there's enough space
- undo support for edits
## Better rendering
- render overlapping peds reasonably
- draw moving / blocked colors (gradually more red as they wait longer)
- render cars with textures?
- rooftops
- https://thumbs.dreamstime.com/b/top-view-city-street-asphalt-transport-people-walking-down-sidewalk-intersecting-road-pedestrian-81034411.jpg
- https://thumbs.dreamstime.com/z/top-view-city-seamless-pattern-streets-roads-houses-cars-68652655.jpg
2019-01-22 21:02:18 +03:00
- general inspiration
- https://gifer.com/en/2svr
- https://www.fhwa.dot.gov/publications/research/safety/05078/images/fig6.gif
2019-01-18 08:40:47 +03:00
- color tuning
- neutral (white or offwhite) color and make noncritical info close to
that. http://davidjohnstone.net/pages/lch-lab-colour-gradient-picker,
chroma < 50
2019-01-18 10:43:56 +03:00
- use new arrows for drawing...
- triangle and base have a gap; why?!
- only for turn icons?
- draw as one polygon when fixed
- dashed thickness is way off
- last dash shouldnt appear?
2019-01-22 23:22:50 +03:00
## Switch to OpenGL (for speed)
2019-01-24 20:58:34 +03:00
- speed
2019-01-25 22:27:58 +03:00
- show FPS or some kind of measure of lag
2019-01-25 02:17:31 +03:00
- sleep better in the event loop
2019-01-24 22:47:46 +03:00
- first make UserInput borrow state and not need to consume
2019-01-25 22:27:58 +03:00
- optimize zoomed-out experience... one polygon per road
- make sure the quadtree isn't the limiting factor though
2019-01-24 20:58:34 +03:00
- quality
- need padding around text
- text entry needs to draw the cursor differently
- better arrows (then debug the legend plugin)
2019-01-26 01:17:43 +03:00
- time for a car texture?
2019-01-24 00:46:05 +03:00
- refactoring
2019-01-26 21:20:27 +03:00
- probably use f32, not f64 everywhere... but after Pt2D becomes fixed size
2019-01-24 20:58:34 +03:00
- undo the y inversion hacks at last!
2019-02-01 03:43:09 +03:00
- ezgui passes EventCtx and DrawCtx with appropriate things exposed.
2019-02-01 10:32:38 +03:00
- maybe move glyph ownership out of canvas entirely. dont need RefCell.
2019-02-01 20:30:26 +03:00
- need to pass around a NonDrawCtx very uniformly first for this to work
2019-02-01 03:43:09 +03:00
- canvas owning text-drawing is maybe a bit weird, at least API-wise
- hide stuff inside the ctx's? canvas and prerender shouldnt even be known outside of crate
- generic World with quadtree should have actions on objects
2019-01-26 01:17:43 +03:00
- more speculative performance ideas
- experiment with batching and not passing colors
- specialized shaders for common shapes like circles?
- try https://docs.rs/dymod/0.1.0/dymod/ to link in a release-mode ezgui crate?
2019-02-03 01:28:00 +03:00
## Performance
- it's a pity we have to redo DrawCar work for all those parked cars every tick