-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Preliminary implementation of Measure #159
Conversation
The basic idea seems to be working. I would like others to have a look before we try to attack delayed leaves. In particular, I made some executive decisions about where things should go and how general/specific we should be. Of course all open to discussion. Note all arrow related import are commented out - so Arrow.hs and ArrowHead.hs are not compiled. |
Looks good, other than my questions above. Thanks! |
All of the |
Arrows now working. Getting arrows to work was laughably easy. The combination of removing freeze and the power of delayed leaves means there is no longer any need for scaleInv. Hence it has been eliminated from arrows. There are some other things we may want to add, in particular arrow heads and tails sizes are now in Output units, we should consider adding other units. Also arrows now have an empty envelope and trail, this may or may not be the semantics we want. Of course more testing is necessary. The test program ArrowTest.hs in -lib/test has been modified use in the branch. |
I finally had some time to understand the arrow code and think about adding My first thought was to pass Maybe it's simpler to make arrow tail size and head size It's a bit awkward if you're drawing a bunch of arrows - you can reuse the
|
I really believe that we have to think carefully about the tradeoffs between having the full set of That being said, and I have to think this through more carefully, my intuition is that this would work. The reason I do like the idea of making tail size and head size attributes, if possible. But we need to think carefully about the joints, as they depend on both the head size and shaft width. Honestly, some of these things we wont know until we try to code it. I'm not sure what you have in mind regarding where |
In principle we can walk the |
Just to make sure i understand. |
Yes that's my suggestion. I think it works for the |
I think its worth a shot, I probably wont have much time until the middle of next week as well. There is no rush so why don't you give it a go. |
I do think the semantics we achieve with the new |
as Attributes, they can be defined in terms of Measure, and easily converted to Output during rendering add new module Diagrams.TwoD.Compile for rewriting RTree, to avoid import loop
That's my draft. @jeffreyrosenbluth, take a look when you have some time, poke holes in it. |
Nice, I should have time to look at it today. Does it compile? Have you run it on any examples? |
It builds with -Wall -Werror, but I haven't run it on examples. And I haven't done anything in the Backends. |
Rework of units
…takes a vector type
was going to be too much work to fix it up for changes to Backend class, and it only ever half-worked anyway. If we ever want to revive it, it's there in the git history.
implement strut and phantom the right way: using leafU
Updates to work with `Backend` redesign
* Updates to use `Measure` * Get rid of bitrotted `Show` backend
NOT ready to merge
In particular arrows only use output units.
Companion Branches: core - units, svg - units