Refactored the getOrigin helper to help fix the relative affine animations
This commit refactors the getOrigin helper, in order to send the origin to the correct
space. The origin should be expressed in the space of the last animation.
Changes
=======
- Refactored the getOrigin helper
- Added a simple example to the dirty file to test multiple transformations
Fixed the relative non-affine transform animations
This commit uncovered an issue with the relative non-affine transformations. It is
now correctly fixed and working. Next we should fix the affine transforms as well.
Changes
=======
- Fixed the relative non-affine transformation animations
Added a simple example for relative declarative animations
This commit adds an example that demonstrates how I'd imagine declarative animations
should work and how they should mirror what imperative animations would do
Changes
=======
- Added a simple declarative example
Saivan [Tue, 26 Jun 2018 12:42:47 +0000 (22:42 +1000)]
Allowed the origin to stay fixed as we animate transforms
This commit start to remove the expensive bbox calculation by assuming
that the origin stays at a fixed point during an animation. This is a
good assumption as transforms don't change the bbox of the element.
Changes
=======
- Refactor the Element.transform function
- Make a getOrigin function to call the bbox only one time
Saivan [Fri, 22 Jun 2018 15:58:43 +0000 (01:58 +1000)]
Runners now work with absolute and relative transformations
This commit finally gets transformations workin in both absolute and
relative mode. This is the last **major** hurdle for the new
animation module, so we just need to clean it up and fix some bugs 🐞
fixed morphing. Changed easing function so that it can handle strings
- error in Matrix constructor which ignores translateX (and more?)
- generelized all morphable objects so that they behave logical
- SVG.Morphable can handle all datatypes now
Saivan [Tue, 15 May 2018 05:03:28 +0000 (15:03 +1000)]
The timeline is now decoupled from the real time
This commit allows the timeline to exist independently of the actual
time. This will allow it to be used to seek through an animation
with relative ease. We also made some architectural changes to the
timeline to support this.
Changes
=======
- Refactored the runner into its own file without exposing it to the
user (changed the gulpfile)
- The timeline no longer depends on the current time
- The user can supply absolute times to queue events
- Some more methods have been integrated into the timeline
This commit just includes a few plans and a massive derrangement
of the fx module before it is to be refactored into the Timeline
module. The basic methods are included, but everything is broken
Saivan [Sun, 4 Mar 2018 15:24:43 +0000 (02:24 +1100)]
Fixed recommendations by @Fuzzyma regarding transforms
This commit fixes a number of issues with transformations:
- Removed move/dmove/etc... on groups
- Sugar was being passed origin instead of ox, oy
- Updated the changelog
- Removed parseMatrix in favor of new SVG.Matrix()
- .matrix is the getter for a matrix, not .transform
- added a [02:24:41] Using gulpfile ~/Desktop/svg/svg.js/gulpfile.js
[02:24:41] Starting 'lint'...
[02:24:43] Finished 'lint' after 2.32 s directive
Saivan [Sat, 3 Mar 2018 21:54:28 +0000 (08:54 +1100)]
Fixed all transformation tests, the new transforms are ready
This commit fixes all of the tests to reflect all of the changes to
our transform code. It also makes the default test output dots
instead of anything else.
Saivan [Sat, 3 Mar 2018 11:08:26 +0000 (22:08 +1100)]
Added matrix composition and decompositions
This commit adds matrix composition and decompositions (untested),
it also adds another playground to test that this is working as
expected in every case.
Saivan [Tue, 27 Feb 2018 06:36:08 +0000 (17:36 +1100)]
Updated the README to welcome new users better!
This commit updates the README with up to date instructions about
how to run and build the library, as well as how to run the tests,
playgrounds and performance tests