> You can apply the inverse of the matrix of the origin transformation, > then the transformation matrix itself, and the restore the origin > transformation again by applying the origin transformation matrix once > more time.
Yes, I has already implemented this solution. But now i understand that such behaviour of origin is unusable. Main transformation represented in internal units of 'origin-space'. Bone matrix represented in global units. So we always need to know both 'origin_transformation' and 'transformation' values to apply bone matrix properly. So, I reimplemented transformation feature with other rules: Layer_PasteCanvas have three new params: - origin_transformation - transformation - enable_transformation (boolean) Calculation of actual transformation: actual_transformation_matrix = transformation.get_matrix() * origin_transformation.get_matrix().invert(); Behavior of handles (ducks): - when transformation enabled, handles allow user to modify 'transformation' param, and group will transformed at the screen. - when transformation disabled, user sees group in original position without any transformation, and handles allow user to modify 'origin_transformation'. > What I wanted to ask is that you can do internally the calculations as > matrixes, so inverse are quite easy to calculate just transposing the > matrix due to their orthogonal property. Now internally transformation represented as offset, angle, skew angle and scale variables. Also methods get_matrix and set_matrix allow to use transformation as matrix. Transformation can be converted to matrix and matrix can be converted back to transformation. When we apply more then one orthogonal transformations we may loose orthogonality, so in common case matrixes is not orthogonal and i've used common function to calculate inverted matrix. ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl