> On Mar 9, 2016, at 18:51, Peter Uhnák <i.uh...@gmail.com> wrote:
> 
> 
> 
> On Wed, Mar 9, 2016 at 10:02 PM, Johan Fabry <jfa...@dcc.uchile.cl 
> <mailto:jfa...@dcc.uchile.cl>> wrote:
> Heh, also a funny feature of your anchor constraints: they do not play well 
> with layouts and animations. Try the code below (adapted from the example to 
> use the layout and animation of LRP ) and you will see that the circles keep 
> spinning around, they never stop. I think it would be better for them to stop 
> ;-)
> 
> can't help myself :)
> 
> https://youtu.be/PGNiXGX2nLU?t=1m <https://youtu.be/PGNiXGX2nLU?t=1m>
Hehe, good one :-)  https://youtu.be/uo0o8eQWfcI ! :-P

>  
>       stepping := RTSpringLayoutStepping new 
>                                               view: v; layout: layout;
>                                               afterBlock: [ v canvas camera 
> focusOnCenter].
> 
> The problem is that RTSpringLayoutStepping>>view sets in effect the layout on 
> all elements in the view, which obviously won't work since they'll start 
> competing.
> 
> I'm not sure right now how to address it, but try this
> 
>       stepping := RTSpringLayoutStepping new 
>                                               view: RTView new; layout: 
> layout;
>                                               nodes: es;
>                                               afterBlock: [ v canvas camera 
> focusOnCenter].

Sorry, I don’t know enough of the internals to understand what’s going on. The 
solution is not a solution for me, because it effectively removes the 
animation, we only see the the resulting layout. There is no other solution? 
Alex, do you have any idea?

> Ah right, thanks. I've extracted the class from my code and I have different 
> removal mechanism...
> Please try the latest version, it should be fixed there.

Fixed, thanks! 

But now there is a new bug RTAnchorConstraint>>computeExtraDistance that I 
cannot reliably reproduce, I only have a stack trace, sorry:

Array(Object)>>errorSubscriptBounds:
Array(Object)>>at:
Array(SequenceableCollection)>>first
Array(SequenceableCollection)>>anyOne
Array(Collection)>>max
RTAnchorConstraint>>computeExtraDistance
[ :crossings | 
element
        translateBy:
                aSegment vector normal
                        * (minDistance + self computeExtraDistance) negated ] 
in RTAnchorConstraint>>moveAwayFromSegment:
BlockClosure>>cull:
Set(Collection)>>ifNotEmpty:
RTAnchorConstraint>>moveAwayFromSegment:
RTAnchorConstraint>>moveElement
RTAnchorConstraint>>update
[ self update ] in RTAnchorConstraint>>build
BlockClosure>>cull:
BlockClosure>>cull:cull:
TRTranslationCallback>>shape:step:
[ :c | 
c isTranslationCallback
        ifTrue: [ c shape: self step: aStep ] ] in 
TREllipseShape(TRCallableObject)>>triggerCallbacksForStep:
OrderedCollection>>do:
TREllipseShape(TRCallableObject)>>triggerCallbacksForStep:
TREllipseShape(TRAbstractBoxShape)>>fromRectangle:
TREllipseShape(TRAbstractBoxShape)>>fromRectangle:color:
RTEllipse>>updateFor:trachelShape:
RTEllipse(RTShape)>>updateFor:
RTElement(RTShapedObject)>>update


---> Save our in-boxes! http://emailcharter.org <---

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of 
Chile

Reply via email to