RODraggableWithVelocity can wait.  The problem is severe but not critical.  I solved that issue by bypassing it and implementing Part Two with Glamour having the option of using a virgin ROView without RODraggableVelocity - see Moose Issue 900.  I would be keen for you (or Vanessa or Doru) to take an hour to have a look at that, even if you don't integrate it into the main repository at this time.   It is really just refactoring rather than something innovative and would be good to have some feedback I can consider in relation to refining it. 

---
In relation to scalability, a recently noticed that it seems that ALL elements and edges get translated from virtualToReal (or is it the other way around) before being passed to the FormCanvas for clipping and I wonder if you could gain some speed by first clipping with the ROCamera viewport translated into virtual co-ordinates. 

Btw, could you enhance the comment in the methods #realToVirtualPoint and #virtualToRealPoint to more clearly describe what 'real' and 'virtual' .  I get a bit lost trying to work it out myself.

cheers -ben

Alexandre Bergel wrote:
Scalability has been completely discarded so far. Even if it is difficult to make it right, we will get there on some point. 
How severe is the problem you have faced? Can it wait until mid february or march ?

Cheers,
Alexandre


  
Part One
RODraggableWithVelocity seems to have a problem overshooting the drag distance with large numbers of elements. For example, referring to the next script, with RODraggable only, if I drag the view background sideways by a quarter-window-width, even though it takes a few seconds to respond to a drag, the final position of the elements is a quarter-window-width sideways. However with RODraggableWithVelocity, doing the same action, I observe the elements briefly appear a quarter-window-width sideways, then another quarter-window-width, then another until the elements disappear off the side of the window.  This behaviour disappears from this example by reducing to 1000 elements, but occurs in my application with only 100 elements (plus an equal number of edges).
-----
| rawView domain |
rawView := ROView new @ RODraggable  " @ RODraggableWithVelocity "  .
domain := 1 to: 10000.
domain do: [ :x | rawView add: (ROElement on: x) + (ROLabel) ].
ROVerticalLineLayout on: rawView elements.
rawView open
----