HaikuArchives / ArtPaint

ArtPaint is a painting and image processing program.
https://haikuarchives.github.io/ArtPaint/
29 stars 18 forks source link

ScaleUtilities: actually *use* y offset for vertical scaling. #606

Closed dsizzle closed 1 year ago

dsizzle commented 1 year ago

Fixes #605

yeah, the code was passing in a y-offset but not using it for vertical scaling. The horizontal scaling code was correct. I think it's been broken since I added different scaling filters. oops.

humdingerb commented 1 year ago

Much better! There's still a little offset of about 1 pixel, it seems. Also, after the scaling, the selection border isn't completely flush anymore. There are also some pixels left from the original sized object. Best seen zoomed in, when doing what's described at #605.

walterYsized

dsizzle commented 1 year ago

There's still a little offset of about 1 pixel, it seems. Also, after the scaling, the selection border isn't completely flush anymore.

Yeah, I'm not sure what to do about that...I think it's more like "accumulated error"... if you look at the top it's perfectly flush, and then by the time it's at the bottom it's about 1 pixel off.

There are also some pixels left from the original sized object.

I think this also happens without scaling (i.e. also with Translation and Rotation). I wonder if the scaling I did to make the outline tighter should be undone.

dsizzle commented 1 year ago

It seems like just rounding the offset up fixes the offset issue.

The "left-behinds" is a general selection issue as I said - you can see that with Translation as well - unrelated to this change.

EDIT: I'm not sure that's true. If you Scale, then Cancel the Scale, then Translate, you see those... but the Cancel oughta put things back to normal. Hmmm...

Well either way I don't think it's related to this fix. I will file that as a separate ticket.

humdingerb commented 1 year ago

Alright. The slight movement when invoking and confirming the Scale window seems to be from show/hiding the bounding box. Time to merge then...