Regression in compose-xx-with-transformation

Daniel Kochmański daniel at turtleware.eu
Tue Mar 23 16:48:06 UTC 2021


I mean (with-drawing-options (stream :transformation +identity-transformation+) …)


--
Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland
TurtleWare - Daniel Kochmański      | www.turtleware.eu

"Be the change that you wish to see in the world." - Mahatma Gandhi

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, March 23, 2021 5:38 PM, Daniel Kochmański <daniel at turtleware.eu> wrote:

> The easy fix is to wrap draw-chart body in with-drawing-options -
> you change destructively the medium transformation in a function adjust-for-axes
> and the next invocation adds another transformation on top of that.
>
> That said it is (rather) a regression that McCLIM invokes the function
> multiple times despite of incremental-redisplay being T. I'll investigate that
> when I have some time.
>
> Thank you for reporting this regression.
>
> Best regards,
> Daniel
>
>
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland
> TurtleWare - Daniel Kochmański      | www.turtleware.eu
>
> "Be the change that you wish to see in the world." - Mahatma Gandhi
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Tuesday, March 23, 2021 6:15 AM, Daniel Kochmański daniel at turtleware.eu wrote:
>
> > Hey Paul
> > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> > On Monday, March 22, 2021 9:02 PM, Paul Werkowski pw at snoopy.qozzy.com wrote:
> >
> > > A recent change in master branch seems to have reversed the argument
> > > order in the subject definitions. I've only checked
> > > compose-scaling-with-transformation which is again wrong causing my
> > > graphics to be written way off screen.
> >
> > Indeed we had problems with transformations, but the issue was fixed; maybe
> > your code depended on invalid behavior?
> > compose-scaling-with-transformation is defined to first apply scaling, then
> > transformation (http://bauhh.dyndns.org:8000/clim-spec/5-3.html#_208)
> > (c:transform-position
> > (c:compose-scaling-with-transformation
> > (c:make-translation-transformation -100 -100) 100 100)
> > 1 1) ;-> (values 0 0)
> > (c:transform-position (c:make-scaling-transformation 100 100) 1 1) ;-> (values 100 100)
> > (c:transform-position (c:make-translation-transformation -100 -100) 100 100) ; -> (values 0 0)
> > Seems correct. The reverse order would give:
> > (c:transform-position (c:make-translation-transformation -100 -100) 1 1) ;-> (values -99 -99)
> > (c:transform-position (c:make-scaling-transformation 100 100) -99 -99) ;-> (values -9900 -9900)
> > Evaluating the former in clim-tos confirms that. IMO it is quite counterintuitive, because:
> > (compose-transformations A B) first applies B, then A
> > (compose-X-with-transformation T , at X-parameters) first applies X then T
> > (compose-transformation-with-X T , at X-parameters) first applies T then X
> > Do you agree?
> >
> > > Paul
> >
> > Best regards,
> > Daniel
> >
> > Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland
> > TurtleWare - Daniel Kochmański | www.turtleware.eu
> > "Be the change that you wish to see in the world." - Mahatma Gandhi





More information about the mcclim-devel mailing list