Week 8 Report

Over the last week, I focused on the work-in-progress image editor.

Last week

Image editor

  • Published a work-in-progress version of the editor

  • Selection and eraser tools

    • The selection tool can currently only select rectangular regions with edges along the canvas' XY axes.
    • Rotation/resizing can be done through the selection tool.
    • The eraser can only erase entire strokes.
  • Saving/loading SVG data (not connected to Joplin)

  • Fixed an issue in the (custom :frowning: ) matrix library used by the editor: Some invertible matrices could not be inverted.

    • A custom matrix library is currently being used. It has:
      • Small, 3x3-only matrices that can translate/scale/rotate Vec2s.
      • Immutable matrices, vectors, rectangles, line segment, and path objects
        • Immutable data structures make undo/redo much easier.
      • Vec2s that can be easily converted from/to the objects used by bezier-js
      • I didn't find an existing matrix/vector library that does this (immutable data structures and optimized for 3x3 matrices)
  • Added an HTML-based toolbar to the editor

    • Allows switching tools and has dropdowns for configuring pens.
    • Shows previews for pens based on the current stroke size/color.
      • The color picker is provided by the Coloris library.
  • Added a view that shows the progress of long operations.


This week