Commit Graph

7 Commits

Author SHA1 Message Date
90653fa34e restructure, move to TS 2024-01-08 20:37:18 +01:00
janis
ad27645c39 Some more work on refactoring 2024-01-08 16:16:45 +01:00
Henrik Ingo
20cd28ff00 Add fsevents to package-lock.json 2022-05-29 11:41:06 +03:00
thawk
629f7686f3 Add relative move and rotate to rel plugin (#794)
The relative position in rel plugin is currently based on the world coordinate. So for the same effect, like fly in from the right-hand side, we must use different `data-rel-x/y/z` value. Why not let the plugin do the hard part?

So I introduce a `data-rel-position`, when set to `relative`, all relative attribute is based on the position and rotation of previous slide. So no matter the rotation of previous slide, data-rel-x="1000" always looks like fly in from the right-hand side. We can change the position and rotation of one slide, and the position of all following slides will be changed too.

When `data-rel-position` is set to `relative`, relative rotation has a clear meaning. It describes the relative rotations between slides. We don't need to set rotations for all slide, setting the key slides is enough. If `data-rel-position` is not relative, the effect of `data-rel-rotate-x/y/z` is not clear, so they're only used when `data-rel-position="relative"`.

After the introduction of relative rotation, there're 6 attribute that will inherit from previous slide. If we want to set a relative X move, we have to set all other 5 attributes to 0. It's boring. So a `data-rel-clear` is used to set all 6 attributes to 0, and then the value specified in current slide is applied. 

The `examples/3D-positions/index.html` shows some usage. As you can see, the html code of two slide ring is the same, and slides except for the first two in a ring has no position attributes. It work by inheriting the previous one.

This PR invokes a lot math calculations. Basically, the rotation of a slide is translated into the coordinate describing the directions of X/Y/Z axes. And `data-rel-x/y/z` can be easily calculated by that. The rotations is the hard part, I mainly use the algorithm in the Quaternions and spatial rotation - Wikipedia to compose two and more rotations.  I'm not a math guy, hope I don't make much mistakes.
2022-04-24 21:37:50 +03:00
Daniel Sockwell
4c9d2e38aa Add ability to specify substep order (#779)
The substep plugin currently shows each substep in the order in which
it appears in the HTML.  This is not always an ideal fit for some
presentation styles, where it would be helpful to specify a different
order (e.g., to add annotations to an image).

This commit allows users to specify a custom order via the
`data-substep-order` attribute.  Substeps without a
`data-substep-order` attribute are revealed last.

This commit also updates the Substep README to document the new
feature.
2021-02-26 16:24:10 +02:00
Henrik Ingo
511d87e726 Update all node_modules to newest versions 2020-03-29 11:26:05 +03:00
Moritz
898083116b Update dependencies and remove outdated ones (#722)
* Update dependencies and remove outdated ones
* Add package lock file
* Add minified file
* Karma now uses headless browser to run QUnit
* Add to readme that node and npm install is required
* Update license info
* Add lint-new but don't use it in CI yet
2019-04-10 10:21:23 +03:00