Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > b003e8639c027b5966fcc5571272c3ff > files > 83

lib2geom-devel-1.0.0-1.mga7.armv7hl.rpm

Code Health:
  - Rewrite old tests using Google Test Framework.
  - Add more unit tests. Ideally, every method should be tested.
  - More Doxygen documentation. Document algorithms used to implement each
    nontrivial method, preferably with pictures.
  - Coding style.
  - Rewrite or remove old junk.

Primitives:
  - Add uniform points - Geom::UPoint.
  - Add projective transformations - Geom::Projective.
  - Add rational Bezier fragments / curves - Geom::D2U<Bezier>

Shapes:
  - Geom::Triangle
  - Geom::Quad
  - Geom::Polygon
  - Function that computes an Affine that maps between triangles.
  - Function that maps between Rects.
  - Function that maps between Ellipses (no skew).

Path / PathVector:
  - Built in support for arc length parametrization, computed on demand.
  - Boolean operations accessible via operators: &, |, / (or -), ^
  - Uncrossing.
  - Conversion from nonzero winding rule to even-odd winding rule.
  - Dashing - requires arc length parametrization.
  - Offset.
  - Stroke-to-path.
  - Minkowski sum.
  - Functions to facilitate node editing without conversion to a node list.
  - Approximation of arbitrary paths with cubic Beziers, quadratic Beziers
    or line segments, available as a path sink.
  - Approximation by lines and circular / elliptical arcs.
  - Support for per-node and per-segment user data?

Fragments:
  - Convert all uses of std::vector<Point> to D2<Bezier> where applicable.
  - Consider adding push_back() for incremental building of Beziers.
  - Implement Bezier versions of SBasis methods.

Toys:
  - Better Bezier / SBasis handles.
  - Use GTK 3 to provide widgets such as checkboxes and buttons (?)

Other:
  - sweeper.h: add variants of Sweeper that accept void Item
    and add a version that does sweepline over two lists rather
    than one.
  - Rewrite conic section code to match coding style.
  - Rewrite QuadTree and RTree to make them actually usable.
  - BSP tree.
  - Interval tree - Geom::IntervalSet, Geom::IntervalMap<T>
  - Geom::MultiInterval
  - Using the above, add regions, as seen in Cairo.
  - Add some basic 3D functionality, enough to draw a 3D box.
  - Write GDB pretty printers for all core classes. See the directory "tools"