+
Stuff To Be Implemented/Fixed
-----------------------------
+ - Add Polyline
- Add Polygon
- Add Ellipse
- Add Spline
- Add Text
- - Manipulate Dimension
- - Object connections
- - Group selection (kind done, needs more work though)
- - Take movement code out of Objects and put it into top level Container (actually
- I think this should be more of the state code handling. Have to see.)
+ - Object connections (two types: flexible and rigid)
- Add OSD to Object creation
- - Add layers
- Add blocks
- Add page layout
- - Add pen color/style/width to Objects
- Add fill/hatch to Objects
- - Fix zooming to be more intuitive
- Add other Dimension types, like radial, diametric, leader
- - Mirror tool
- - Restrict movement horizontal/vertical tool
- - Trim tool
- - Fix Arc manipulator. Idea: split edge handles so that the inner half controls
- arc sizing, outer half controls rotation. That way you can grab either handle
- and know what it's supposed to do.
- - Fix loading and saving code
- - Add Drawing Properties dialog (separate from Application Settings)
+ - Restrict movement horizontal/vertical tool (keyboard shortcut?)
+ - Trim/Slice tool (to be able to click on a line segment crossing another, and
+ remove it and it only, or to cut the entity at other entities crossing)
+ - Add "slice" mode (prob. with SHIFT down) to trim tool. Two modes: 1st,
+ slice hovered entity by all objects that intersect it; 2nd, draw a "cut"
+ line that divides all entities that intersect it (analogously, trim mode
+ does similar, but after defining the line, you have to move the mouse to one
+ side or the other of it, then click to trim everything on that side).
+ - Make Architektonas an MDI application
+ - Add page viewport stacks. These would outline "pages" to be printed that
+ are simple views of a given size at a given point with a given zoom. Normal
+ behavior would be to simply print the entire document if there are no pages
+ defined.
+ - Need to turn off handles (dimension, circle, arc, etc) when not in regular
+ mode (for delete, marker, dropper, etc tools)
+ - Fix stamp tool to not respond to handles of any kind (they currently respond
+ to dimension handles)
+ - Convert line segments/arcs (connected) to polyline
+ - Add trim/slice against circles/arcs too.
+ - Add cursor for delete tool
+ - Add command lines for all tools, not just parallel
+ - Add ability to rotate/scale polylines with appropriate handles when
+ selecting one (when scaling, the default should be to keep the aspect ratio,
+ overrideable with a keypress)
+ - Set window viewport to show whole extents of drawing on load
+ - Need to set a different color/style for hovered objects vs. selected
+ - Add ability to alter object parameters in the object dock
+ - Fix dimension extents to report their size correctly (they currently don't)
+ - Add ability to select more than one point in a stack of points, especially
+ at endpoints. Probably with a keyboard modified like SHIFT.
+ - Finish adding tangent snap everywhere
+ - Add fillet tool
+ - Add ability to make dimensions have no extensions (currently, there's a
+ minimum extension line at all times; this is easy to set to a default with a
+ zero as a possibility). Maybe give the default extension lines IFF one of
+ the clicked on points is an endpoint, otherwise just do zero.
Stuff That's Done
-----------------
+ - Be able to show dimensions in pure inches as well as feet & inches [Shamus
+ 2021]
+ - Add command line tool [Shamus 2021]
+ - Parallel tool (be able to make copy of object that's parallel to original)
+ [Shamus 2021]
+ - Add ability to click through object stack, especially at endpoints (mouse
+ down to select, skip to next object on mouse up--mouse down allows user to
+ select the object so selected) [Shamus 2021]
+ - Fix Arc manipulator [Shamus 2022]
+ - Add Drawing Properties dialog (separate from Application Settings) [Shamus
+ 2021]
+ - Trim tool [Shamus 2021]
+ - Fix zooming to be more intuitive [Shamus 2021]
+ - Group selection (kinda done, needs more work though) [Shamus 2020]
+ - Take movement code out of Objects and put it into top level Container
+ (actually I think this should be more of the state code handling. Have to
+ see.) [Shamus 2015ish, whenever C++ OO was ditched]
+ - Add layers [Shamus 2015ish]
+ - Add pen color/style/width to Objects [Shamus 2017ish]
+ - Fix loading and saving code [Shamus 2016ish]
+ - Manipulate Dimension [Shamus 2014-03-20]
- Fix snap to grid to honor both states (right now, it's a weird mix of states)
[Shamus 2013-08-11]
- Add Arc [Shamus 2013-08-14]
point. [Shamus 2013-08-18]
- Add OSD routines so they don't have to be implemented in Objects [Shamus
2013-08-24]
+ - Mirror tool (started, needs actual mirroring implementation) (Rotate tool is
+ also done :-D) [Shamus 2013-09-01]
+
+
+Things to Ponder
+----------------
+
+Grouping items on different layers currently makes the items *not* on the current layer disappear. Not sure how this should be handled... Maybe we should honor the top level Container's attributes, and not the attributes of the contained objects?
+
+
+Bugs
+----
+ - Pen marker doesn't set attributes on the highlighted part of the group.
+ - Dimension lines extents aren't properly taken into account when printing (or
+ anywhere for that matter)
+ - Add new dimension doesn't honor the scale parameter set by user [DONE]
+ - Dimension object prevents system from finding intersections when near or on
+ object intersection [should be DONE]
+ - Can't move objects to other layers [DONE]