I'm a little unsure on how to handle this - since ft.o.viewBox is not defined yet on initialization of freeTransform, this was my current solution. However, in a situation where cy is less than the viewBox's y, the initial position of the circle handles is incorrect. Although once the element is interacted with, the handle updates to the correct location.

Take away - this needs to be refined still, I just don't want to start ripping apart something I don't fully understand yet. I'm open to suggestions.