charlesvdv / boulot-robot

GNU General Public License v3.0
0 stars 2 forks source link

Add map visualization capabilities #16

Open charlesvdv opened 4 years ago

charlesvdv commented 4 years ago

Adding visualization capabilities to the map creation and the path planning are critical for multiple reasons:

I have never done 2D drawing in C++ so I don't have any strong preferences for a library. I am just wondering if a format like SVG would not be better compared to more opaque format like JPEG or PNG. It would allow us more flexibility if we want more fancy tooling around the map visualization/analysis. Also, the library capabilities needs to be versatile enough to be able to compose multiple "layers" of drawing. For example, drawing a path on top of mesh.

It also needs to be embedded with CMake FetchContent functionality if possible. For a code design perspective, I would like to have the drawing/visualization capabilities as decoupled as possible from the Map abstraction. The best would be to have separate class(es) doing the drawing.

More concretely, I see at least 3 visualizations needed:

charlesvdv commented 4 years ago

Right now, only a rough implementation of the quadtree map can be found on this branch. The mesh and path are not yet implemented.

But with the quadtree implementation and the rough map implementation, you should be able to have ideas on how you will implement the visualization as well as picking a good 2D drawing library that fits our needs.

JonathanPetit commented 4 years ago

The steps to create visualization lib:

The steps to create the SVG map are:

Each step will be a layer of SVG and will be a separate class.