aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/views/nodes/trails/PresBox.tsx4
-rw-r--r--src/client/views/nodes/trails/SpringUtils.ts48
2 files changed, 51 insertions, 1 deletions
diff --git a/src/client/views/nodes/trails/PresBox.tsx b/src/client/views/nodes/trails/PresBox.tsx
index d3abaddd9..3f546cdd7 100644
--- a/src/client/views/nodes/trails/PresBox.tsx
+++ b/src/client/views/nodes/trails/PresBox.tsx
@@ -48,7 +48,7 @@ import CubicBezierEditor, { TIMING_DEFAULT_MAPPINGS } from './CubicBezierEditor'
import Slider from '@mui/material/Slider';
import { FaArrowDown, FaArrowLeft, FaArrowRight, FaArrowUp, FaCompressArrowsAlt } from 'react-icons/fa';
import SpringAnimationPreview from './SlideEffectPreview';
-import { effectTimings, SpringType, springMappings, effectItems, easeItems, movementItems, SpringSettings } from './SpringUtils';
+import { effectTimings, SpringType, springMappings, effectItems, easeItems, movementItems, SpringSettings, presEffectDefaultTimings } from './SpringUtils';
export interface pinDataTypes {
scrollable?: boolean;
@@ -2156,6 +2156,8 @@ export class PresBox extends ViewBoxBaseComponent<FieldViewProps>() {
selectedVal={effect?.toString()}
setSelectedVal={val => {
this.updateEffect(val as PresEffect, false);
+ // set default spring options for that effect
+ this.updateEffectTiming(activeItem, presEffectDefaultTimings[val as keyof typeof presEffectDefaultTimings]);
}}
dropdownType={DropdownType.SELECT}
type={Type.TERT}
diff --git a/src/client/views/nodes/trails/SpringUtils.ts b/src/client/views/nodes/trails/SpringUtils.ts
index 5feb1628a..caadf4220 100644
--- a/src/client/views/nodes/trails/SpringUtils.ts
+++ b/src/client/views/nodes/trails/SpringUtils.ts
@@ -59,6 +59,54 @@ export const effectItems = Object.values(PresEffect)
val: effect,
}));
+export const presEffectDefaultTimings: {
+ [key: string]: SpringSettings;
+} = {
+ Zoom: { type: SpringType.GENTLE, stiffness: 100, damping: 15, mass: 1 },
+ Bounce: {
+ type: SpringType.BOUNCY,
+ stiffness: 600,
+ damping: 15,
+ mass: 1,
+ },
+ Lightspeed: {
+ type: SpringType.GENTLE,
+ stiffness: 100,
+ damping: 15,
+ mass: 1,
+ },
+ Fade: {
+ type: SpringType.GENTLE,
+ stiffness: 100,
+ damping: 15,
+ mass: 1,
+ },
+ Flip: {
+ type: SpringType.GENTLE,
+ stiffness: 100,
+ damping: 15,
+ mass: 1,
+ },
+ Rotate: {
+ type: SpringType.GENTLE,
+ stiffness: 100,
+ damping: 15,
+ mass: 1,
+ },
+ Roll: {
+ type: SpringType.GENTLE,
+ stiffness: 100,
+ damping: 15,
+ mass: 1,
+ },
+ None: {
+ type: SpringType.GENTLE,
+ stiffness: 100,
+ damping: 15,
+ mass: 1,
+ },
+};
+
export const effectTimings = [
{ text: 'Default', val: SpringType.DEFAULT },
{