12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import {
- createTypedArray,
- } from '../helpers/arrays';
- function ExpressionValue(elementProp, mult, type) {
- mult = mult || 1;
- var expressionValue;
- if (elementProp.k) {
- elementProp.getValue();
- }
- var i;
- var len;
- var arrValue;
- var val;
- if (type) {
- if (type === 'color') {
- len = 4;
- expressionValue = createTypedArray('float32', len);
- arrValue = createTypedArray('float32', len);
- for (i = 0; i < len; i += 1) {
- arrValue[i] = (i < 3) ? elementProp.v[i] * mult : 1;
- expressionValue[i] = arrValue[i];
- }
- expressionValue.value = arrValue;
- }
- } else if (elementProp.propType === 'unidimensional') {
- val = elementProp.v * mult;
- expressionValue = new Number(val); // eslint-disable-line no-new-wrappers
- expressionValue.value = val;
- } else {
- len = elementProp.pv.length;
- expressionValue = createTypedArray('float32', len);
- arrValue = createTypedArray('float32', len);
- for (i = 0; i < len; i += 1) {
- arrValue[i] = elementProp.v[i] * mult;
- expressionValue[i] = arrValue[i];
- }
- expressionValue.value = arrValue;
- }
- expressionValue.numKeys = elementProp.keyframes ? elementProp.keyframes.length : 0;
- expressionValue.key = function (pos) {
- if (!expressionValue.numKeys) {
- return 0;
- }
- return elementProp.keyframes[pos - 1].t;
- };
- expressionValue.valueAtTime = elementProp.getValueAtTime;
- expressionValue.speedAtTime = elementProp.getSpeedAtTime;
- expressionValue.velocityAtTime = elementProp.getVelocityAtTime;
- expressionValue.propertyGroup = elementProp.propertyGroup;
- Object.defineProperty(expressionValue, 'velocity', {
- get: function () {
- return elementProp.getVelocityAtTime(elementProp.comp.currentFrame);
- },
- });
- return expressionValue;
- }
- export default ExpressionValue;
|