It also became clearer what the next steps should be. For a long time I had assumed that I would port the rendering of graphics before the evaluation of symbolic expressions (i.e., in the order in which these features were implemented originally). However, I have implemented large parts of the Expression and Evaluator classes already in order to debug the Parser class; thus, it’s more natural to finish the implementation of these classes before starting with the rendering of graphics.
Thus, the next steps are probably:
- evaluation of expressions (Expression and Evaluator classes)
- preprocessing of graphics primitives (Graphics3D class)
- rendering of graphics primitives (except formatted text) (Graphics3D class)
- processing of graphics options (Graphics3D class)
- rendering of formatted text (Graphics3D class and TextElement class)
- user interaction (Live class)
I think most of this should be straightforward … maybe with the exception of formatted text. And mouse events are probably as weird as they are in Java applets. And it only gets worse if I want to support single-touch, multi-touch, and touch-pad events on mobile and desktop systems running Windows and macOS …
OK, I better stop worrying about future stuff now.