It's a bit longer since at the time I was trying to figure how to make it work at all, so it's not pretty: http://pastebin.com/5VmFC8cD In my adventure to reset the shape I subclassed RTEdge and added a method ------------- REEdge>>resetShape trachelShape := shape trachelShapeFor: self. -------------
Which wasn't enough since RTElement accepts RTEdge only, so I changed the assert to accept subclasses. --------------- RTElement>>addConnectedEdge: anEdge [ anEdge isKindOf: RTEdge ] assert. self connectedEdges add: anEdge -------------- I will refactor it to something like InteractiveMultiLine class however I'm not sure if the way it's currently done is even appropriate. It feels weird to change all these things from outside rather than from inside. But maybe that's just the effect of having it all flat in a workspace. Any comments and criticism is more than welcome. Peter On Wed, Aug 13, 2014 at 2:46 AM, Alexandre Bergel <alexandre.ber...@me.com> wrote: > Again, sorry for the late answer. > How do you add a new control point? Using block? What is the code you are > using? > I just want to make sure your scenario will be covered by the tests. > > Alexandre > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > On Aug 2, 2014, at 5:29 AM, Peter Uhnák <i.uh...@gmail.com> wrote: > > Hi Alex, > > is there a (simple) way to reset element's shape? > When I add a new control point to RTMultiLine I need the trachelShape to > be updated accordingly, however it is created only once and I don't see any > way how to reset it apart from completely removing the element from canvas > and recreating it. > > I tried subclassing RTEdge (and altering RTElement>>addConnectedEdge: > assert to isKindOf:) and setting trachelShape to nil, however that wasn't > enough anyway since the shape is apparently also stored also elsewhere > (TRCanvas I would assume). > > So do I have to remove it and re-add it or am I missing something? > > Also, is there some document(atiton) explaining how all the things > interact together (Roassal, Trachel, updates, redraws, ...) or is source > code the only thing at the moment? > > Thanks, > Peter > > > On Thu, Jul 31, 2014 at 3:22 PM, Alexandre Bergel <alexandre.ber...@me.com > > wrote: > >> > I am familiar with RTBezierLine (I mentioned it in the original >> question), but what I was wondering about was whether controllingElements: >> should be added to RTMultiLine (so it will be handled internally just like >> in BezierLine), or leave it as is and let the user handle it from outside - >> as demonstrated by the example I posted. >> >> Users of the API will decide :-) >> The way you are interacting with us is the right way. Keep asking >> questions and requesting for new features! >> >> Alexandre >> >> > >> > >> > On Thu, Jul 31, 2014 at 8:24 AM, stepharo <steph...@free.fr> wrote: >> > this is cool :) >> > >> > >> > On 30/7/14 20:12, Alexandre Bergel wrote: >> >> Hi Peter! >> >> >> >> I’ve just added the orthogonal vertical and horizontal lines in >> Roassal2. Here are some screenshots. >> >> >> >> <Mail Attachment.png> >> >> <Mail Attachment.png> >> >> >> >> These last script has been made with: >> >> -=-=-=-=-=-=-=-=-=-=-=-= >> >> | v | >> >> v := RTView new. >> >> >> >> v addAll: ((RTEllipse new size: 20; color: (Color red alpha: 0.3)) >> elementsOn: (1 to: 20)). >> >> >> >> shape := RTMultiLine new. >> >> shape orthoVertical. >> >> shape color: (Color blue alpha: 0.3). >> >> >> >> RTEdge >> >> buildEdgesFromObjects: (1 to: 20) from: [ :n | n // 3 ] to: #yourself >> using: shape inView: v. >> >> >> >> v elements @ RTDraggable @ RTPopup. >> >> >> >> RTTreeLayout on: v elements. >> >> v open >> >> -=-=-=-=-=-=-=-=-=-=-=-= >> >> >> >> Cheers, >> >> Alexandre >> >> -- >> >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >> >> Alexandre Bergel http://www.bergel.eu >> >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >> >> >> >> >> >> >> >> On Jul 26, 2014, at 3:57 PM, Peter Uhnák <i.uh...@gmail.com> wrote: >> >> >> >>> Hi, >> >>> >> >>> is there any support for orthogonal lines in Roassal2? I've seen >> something similar (ROOrthoVerticalLineShape), however nothing of that sort >> in Roassal2. I would imagine it to behave similarly to RTBezierLine - >> having controllingElements to specify the corners. (While ROOrtholines did >> it automatically I was looking for something more manual, so it can go in >> both directions - thus the controllingElements). >> >>> >> >>> Second thing I wasn't able to figure out is whether it is possible to >> create line from element to itself. All *AttachPoint classes aren't really >> able to cope with that. The best result I got was from Vertical/Horizontal >> AttachPoints (combined with BezierLine), however I would like to be able to >> specify which side it would start on and end on. Ideally not just middle of >> sides, but arbitrary part of the shape (I imagine that might be hard for >> non-rectangular shapes). >> >>> >> >>> Thanks, >> >>> Peter >> >> >> > >> > >> >> -- >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >> Alexandre Bergel http://www.bergel.eu >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >> >> >> >> >> > >