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
Saivan [Tue, 27 Feb 2018 06:23:59 +0000 (17:23 +1100)]
Made developing a little more enjoyable
This commit adds playgrounds and a build:dev mode. Now you
can call npm run build:dev to make the linter warn you about
errors without breaking. Also, we now have playgrounds, where
you can use a built version of svg.js to run your own tests.
Saivan [Mon, 26 Feb 2018 15:52:25 +0000 (02:52 +1100)]
So the standard linter is operational and our code is compliant
This commit completes the compliance of our code with the standard
linter. It is now building correctly and error messages are displayed
when somebody tries to build bad code!
Saivan [Mon, 26 Feb 2018 14:14:06 +0000 (01:14 +1100)]
All files now loosely abide by standard linting
This commit completes the rest of the files, making sure they are
in the standard linting format. Next we will add the linter to
the build process of our application.
Saivan [Mon, 26 Feb 2018 13:48:11 +0000 (00:48 +1100)]
The first half of the library complies with Standard linting
This commit reformats the code so that it complies with the
standard linting style. Its currently a work in progress, but
it is meant to pave the way for linting in the build process
Saivan [Mon, 26 Feb 2018 05:59:46 +0000 (16:59 +1100)]
We can form a compound matrix in the matrix module
This commit allows us to form a compounded matrix by setting
parameters like scale, translate, rotate etc directly in a single
call by asserting a particular matrix order.
Saivan [Sun, 25 Feb 2018 10:36:16 +0000 (21:36 +1100)]
Identified transformation code to retire
This commit simply identifies some of the code that we will be
retiring in 3.0.0 related to transformations. I have commented
and in some cases removed code that will not be required.
Changes
=======
- Added the new affine composition and decomposition functions
- Commented out code that will be removed in coming commits
- `SVG.on()` calls the listener in the context of the passed object. el.on always uses the svg.js object as context
- `SVG.on()` and `el.on()` now accepts multiple comma or space seperated events e.g. "mousedown, foo bar" (#727)