Conversation
| let moveCount = 0; | ||
| const element = new TwistyAlgWrapperElem("twisty-alg-alg", alg); // TODO: pick a better class name. | ||
| if (dataDown.type) { | ||
| element.addClass(dataDown.type); |
There was a problem hiding this comment.
I don't love having the state stored in class but it was at least the easiest way I could find for POC. Still figuring out the code base so there may be a better way already that I'm just not aware of.
| earliestMoveIndex: dataDown.earliestMoveIndex + moveCount, | ||
| twistyAlgViewer: dataDown.twistyAlgViewer, | ||
| direction: dataDown.direction, | ||
| type: "setup", |
There was a problem hiding this comment.
Open to alternate names for this and "execution" (unsure if there are technical terms for the different parts of a conjugate)
| } | ||
|
|
||
| set(move: Parsed<Move> | null): void { | ||
| set(move: Parsed<Move> | null, twistyPlayer: TwistyPlayer): void { |
There was a problem hiding this comment.
I couldn't find a way to access twistyPlayer from here, but I also didn't try very hard :P
Again, just moving quickly for POC
| return; | ||
| } | ||
| if (newElem?.parentElement?.classList.contains('execution')) { | ||
| twistyPlayer.tempoScale = 10; |
There was a problem hiding this comment.
Hardcoded for now. This is where I think implementation details would need sorting out. How would one pass in these values? Presumably something on DataDown?
| <twisty-player | ||
| id="main-player" | ||
| alg="([R, U])3 (U L)2' [M2': U2]" | ||
| alg="[R2: R U' R' U' R U R' F' R U R' U' R' F R] |
There was a problem hiding this comment.
TODO: revert back.
This alg just made it easier to see my changes being applied.
|
Thanks for the PR! It definitely matches the style of the existing code, although I'm not sure this is the right place for it. Is your goal to set the tempo depending on where you start animating, and then keep that tempo for the rest of the alg? Or perhaps that you only plan to be animating one "alg" at a time? I think my original impression was that you wanted to speed up commutators and conjugates any time they appeared in an alg/solve. The most robust place to do that would be the place where durations are assigned to the alg: https://github.com/cubing/cubing.js/blob/f7f5574f5cdf5937681b09c9381604ef0fc8879e/src/cubing/twisty/controllers/indexer/tree/AlgWalker.ts Any chance you have a screenshot or two that convey the context for these animations, before I point you too far down a given path? |
|
I think my ultimate goal would be to have one long algorithm so that I could use this algviewer thing now that I know about it but then have different portions of it be time adjustable. For example (with the context of my project being geared towards blindsolving):
Right now I'm able to do this behavior but have to treat every setup, swap, and undo setup alg as totally separate. In other words each letter of the memorization sequence involves setting and unsetting the |
|
I have been playing around with |
9d66b71 to
e606af4
Compare
a0e0af5 to
6c8143d
Compare
1c43df3 to
cb52a09
Compare
8f6a252 to
c46ac2a
Compare
50271bc to
690a170
Compare
f4857cf to
37191fe
Compare
18ce379 to
9bb0810
Compare
7845b85 to
635d4d2
Compare
a69483d to
93211be
Compare

No description provided.