In the Bahamas splitting my time between vacation and coding.
I started implementing the vector drawing layer. This started with just doing it from scratch and then switched to using Merva diagramming as a reference (as I felt like I was redoing a lot of work I had in Merva), then trying to merge Merva diagramming in… and then not. I even considered merging Euphemia into Merva (as Merva is a larger – more feature rich application). So a few attempts that I was not happy with. At this point I have done enough work that I feel committed to the path I am on… merging in a good chunk of Merva diagramming. Its a big code mash-up at the moment with not much working. The scope of changes is large – even after I reduced the merge from Merva considerably. I am flirting with the boundary of what I can wrap my head around for a single change.
A side affect is that I will be introducing new features to the existing raster/painting layer. Such as;
- ruler with user defined guides
- automatic canvas enlargement/shrinking
- cross-hair
- snap to grid with user defined grid size
- a standardized interface for a layer
- shape alignment (before commit)
And a bunch of new stuff that really only applies to vector such as;
- resize – by class
- select – by class
- toggle visible – by class
- align shapes
- group shapes
- layout for shapes
Examples of what I am leaving out from Merva (in addition to all of the non-digramming stuff like ODBC interface etc);
- the whole custom object hierarchy management including..
- searching the hierarchy (spanning memory and files)
- validating the objects in the hierarchy
- workspace as root object in hierarchy
- transactions
- the many derived diagrams (org chart etc) – for now
I created an ‘Object Registry’ to cover some functionality lost when I ‘chopped off’ the custom object hierarchy that Merva uses. The main thing the ‘Object Registry’ is used for is to provide OID’s which in turn allows references to be saved/loaded (ie; a line-end connected to a shape).
My guess is that this will take about a week to get the code to build again and possibly another week getting it all working. Kinda depends upon how much vacationing I get up to.
