-
Notifications
You must be signed in to change notification settings - Fork 55
Description
Create a prototype "canvas" for drawing 2D vector graphics. The existing "3D viewer" can be used as a starting point. "Sample: NACA 4-digit" may be a good example because it draws cubic Bezier curves.
The first PR should only add the most basic features. Try to stay within 500 lines of diff.
The prototype scope only needs to create line segments and/or rectangles. It may also create polygons and curves, but do not make one PR too long.
The 2D drawing should use modmesh::World in universe/World.hpp as the data object. The prototype strictly focuses on 2D. 3D drawing will be extended from prototype canvas in the future, probably after the 2D drawing reaches certain maturity and is no longer a prototype.
Menu items for the (2D) drawing feature should use the "Canvas" menu.
File I/O, e.g., SVG and/or OASIS, is not included in the prototype and will be tracked in follow-up issues (to be filed after this one is done).