This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.
2021-04-02 02:24:13 +03:00

1 line
11 KiB
Plaintext

{"version":3,"sources":["SpringUtils.js"],"names":["stiffnessFromOrigamiValue","oValue","dampingFromOrigamiValue","stiffnessFromOrigamiNode","dampingFromOrigamiNode","makeConfigFromOrigamiTensionAndFriction","prevConfig","tension","friction","rest","stiffness","damping","makeConfigFromBouncinessAndSpeed","bounciness","speed","fromBouncinessAndSpeedNumbers","fromBouncinessAndSpeedNodes","normalize","value","startValue","endValue","projectNormal","n","start","end","linearInterpolation","t","quadraticOutInterpolation","b3Friction1","x","b3Friction2","b3Friction3","b3Nobounce","b","s","bouncyTension","bouncyFriction","Math","pow","makeDefaultConfig","AnimatedValue","mass","overshootClamping","restSpeedThreshold","restDisplacementThreshold","toValue"],"mappings":"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","sourcesContent":["import {\n cond,\n sub,\n divide,\n multiply,\n add,\n pow,\n lessOrEq,\n and,\n greaterThan,\n} from './../base';\nimport AnimatedValue from './../core/InternalAnimatedValue';\n\nfunction stiffnessFromOrigamiValue(oValue) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue) {\n return (oValue - 8) * 3 + 25;\n}\n\nfunction stiffnessFromOrigamiNode(oValue) {\n return add(multiply(sub(oValue, 30), 3.62), 194);\n}\n\nfunction dampingFromOrigamiNode(oValue) {\n return add(multiply(sub(oValue, 8), 3), 25);\n}\n\nfunction makeConfigFromOrigamiTensionAndFriction(prevConfig) {\n const { tension, friction, ...rest } = prevConfig;\n return {\n ...rest,\n stiffness:\n typeof tension === 'number'\n ? stiffnessFromOrigamiValue(tension)\n : stiffnessFromOrigamiNode(tension),\n damping:\n typeof friction === 'number'\n ? dampingFromOrigamiValue(friction)\n : dampingFromOrigamiNode(friction),\n };\n}\n\nfunction makeConfigFromBouncinessAndSpeed(prevConfig) {\n const { bounciness, speed, ...rest } = prevConfig;\n if (typeof bounciness === 'number' && typeof speed === 'number') {\n return fromBouncinessAndSpeedNumbers(bounciness, speed, rest);\n }\n return fromBouncinessAndSpeedNodes(bounciness, speed, rest);\n}\n\nfunction fromBouncinessAndSpeedNodes(bounciness, speed, rest) {\n function normalize(value, startValue, endValue) {\n return divide(sub(value, startValue), sub(endValue, startValue));\n }\n\n function projectNormal(n, start, end) {\n return add(start, multiply(n, sub(end, start)));\n }\n\n function linearInterpolation(t, start, end) {\n return add(multiply(t, end), multiply(sub(1, t), start));\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(sub(multiply(2, t), multiply(t, t)), start, end);\n }\n\n function b3Friction1(x) {\n return add(\n sub(multiply(0.0007, pow(x, 3)), multiply(0.031, pow(x, 2))),\n multiply(0.64, x),\n 1.28\n );\n }\n\n function b3Friction2(x) {\n return add(\n sub(multiply(0.000044, pow(x, 3)), multiply(0.006, pow(x, 2))),\n multiply(0.36, x),\n 2\n );\n }\n\n function b3Friction3(x) {\n return add(\n sub(multiply(0.00000045, pow(x, 3)), multiply(0.000332, pow(x, 2))),\n multiply(0.1078, x),\n 5.84\n );\n }\n\n function b3Nobounce(tension) {\n return cond(\n lessOrEq(tension, 18),\n b3Friction1(tension),\n cond(\n and(greaterThan(tension, 18), lessOrEq(tension, 44)),\n b3Friction2(tension),\n b3Friction3(tension)\n )\n );\n }\n\n let b = normalize(divide(bounciness, 1.7), 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(divide(speed, 1.7), 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01\n );\n return {\n ...rest,\n stiffness: stiffnessFromOrigamiNode(bouncyTension),\n damping: dampingFromOrigamiNode(bouncyFriction),\n };\n}\n\nfunction fromBouncinessAndSpeedNumbers(bounciness, speed, rest) {\n function normalize(value, startValue, endValue) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n, start, end) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t, start, end) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x) {\n return (\n 0.00000045 * Math.pow(x, 3) -\n 0.000332 * Math.pow(x, 2) +\n 0.1078 * x +\n 5.84\n );\n }\n\n function b3Nobounce(tension) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n let b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(speed / 1.7, 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01\n );\n\n return {\n ...rest,\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction),\n };\n}\n\nfunction makeDefaultConfig() {\n return {\n stiffness: new AnimatedValue(100),\n mass: new AnimatedValue(1),\n damping: new AnimatedValue(10),\n overshootClamping: false,\n restSpeedThreshold: 0.001,\n restDisplacementThreshold: 0.001,\n toValue: new AnimatedValue(0),\n };\n}\n\nexport default {\n makeDefaultConfig,\n makeConfigFromBouncinessAndSpeed,\n makeConfigFromOrigamiTensionAndFriction,\n};\n"]}