Contents |
[edit] Functionality
This section outlines 2geom's domain - what it will do, and current state.
This is actually more of a class outline than features. Alot is implemented for the classes below, in current state, and certainly much more is possible (arguably infinite, but moset would be out of the scope of the project).
[edit] Current State
- Basic geometric primitives - Point, Matrix (scale, rotate, translate), Rect
- Advanced Geometry - PathSet / Path (line, quadratic, cubic, s-basis)
- 2D Database - Currently Quadtree
[edit] Possible Future Features
- Clothoid support (would be raphoids [made up name, after the person who would likely implement them, raph] clothoids where the curvature is a not-necessarily linear function)
- Special geometric shapes (stuff like circles, oriented rectangles, spirals, triangles, regular polygons, inkscape-like polygons, etc)
- Constraint system for advanced handle stuff
[edit] Design Decisions
- Small, algebraic objects (Point/Matrix) will be mutable, whereas large objects like a pathset will be immutable. <justification here>
- We are using an original development method we've dubbed "Toy Driven Development". Under this process graphical toys are implemented which allow playing with the features of the library.
[edit] Current Tasks
[edit] Stable Path
Give the people something to build with!
[edit] Intersection
Could slower and nower be superceded by faster later?
[edit] Nearest Points
Current issues:
- reduce the number of iterations needed for each local minimum search-try
- investigating for some curve property that provides a rule to skip to search for local minimum in a given sub-interval