@react-native-ohos/react-native-reanimated 4.0.0-rc.1 → 4.0.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compatibility.json +161 -161
- package/harmony/reanimated/BuildProfile.ets +16 -16
- package/harmony/reanimated/build-profile.json5 +18 -18
- package/harmony/reanimated/hvigorfile.ts +4 -4
- package/harmony/reanimated/index.ets +4 -4
- package/harmony/reanimated/oh-package-lock.json5 +39 -0
- package/harmony/reanimated/oh-package.json5 +12 -12
- package/harmony/reanimated/src/main/cpp/CMakeLists.txt +65 -62
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -81
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -390
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -30
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -23
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -21
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -166
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -71
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -368
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -594
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -67
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -156
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -76
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +94 -93
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -48
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -135
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -61
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -100
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +45 -44
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -81
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -122
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -38
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -82
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -63
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -118
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -174
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -111
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -196
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -66
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -134
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -44
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -174
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -43
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -17
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -13
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -127
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -51
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -145
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -69
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -66
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -15
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -28
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -15
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -13
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -12
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -157
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -189
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -76
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -66
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -136
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -38
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -24
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -58
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -24
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -17
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -32
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -99
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -37
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -308
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -100
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -94
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -18
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -43
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -103
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -42
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -224
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -218
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -89
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -149
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -208
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -56
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -42
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -28
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -43
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -70
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -146
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -71
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -155
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -170
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -67
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -12
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -193
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -77
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -340
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -80
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -167
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -51
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -61
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -80
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -93
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +111 -110
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -75
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -45
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -12
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -23
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -149
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -32
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -113
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -56
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -37
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -104
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -72
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -160
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -71
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -161
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -65
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -11
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -137
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -82
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -79
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -81
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -864
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -214
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp +897 -897
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -220
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -146
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -456
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -102
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -544
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -119
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1380 -1376
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -228
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -183
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -93
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -54
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -28
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -58
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -31
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -18
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -44
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -67
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -114
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -46
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.h +18 -18
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +233 -230
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.h +23 -23
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +56 -56
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.h +30 -30
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +44 -44
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.h +16 -16
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +265 -265
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -36
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +35 -35
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -23
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.cpp +23 -23
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +19 -19
- package/harmony/reanimated/src/main/cpp/TransformParser.h +93 -93
- package/harmony/reanimated/src/main/ets/AnimationManager.ts +60 -60
- package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +51 -51
- package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +25 -25
- package/harmony/reanimated/src/main/module.json5 +12 -12
- package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
- package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
- package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
- package/harmony/reanimated/ts.ts +6 -6
- package/harmony/reanimated.har +0 -0
- package/package.json +70 -68
- package/scripts/deploy.js +191 -191
- package/scripts/set-reanimated-version.js +37 -37
- package/scripts/update-version.js +119 -119
- package/scripts/validate-react-native-version.js +46 -46
- package/scripts/validate-worklets-build.js +17 -17
- package/scripts/validate-worklets-version.js +84 -79
- package/scripts/worklets-version.json +4 -4
- package/src/index.ts +9 -9
|
@@ -1,218 +1,218 @@
|
|
|
1
|
-
#include <reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h>
|
|
2
|
-
|
|
3
|
-
#include <reanimated/CSS/interpolation/transforms/operations/rotate.h>
|
|
4
|
-
#include <reanimated/CSS/interpolation/transforms/operations/scale.h>
|
|
5
|
-
#include <reanimated/CSS/interpolation/transforms/operations/skew.h>
|
|
6
|
-
#include <reanimated/CSS/interpolation/transforms/operations/translate.h>
|
|
7
|
-
|
|
8
|
-
#include <utility>
|
|
9
|
-
|
|
10
|
-
namespace reanimated::css {
|
|
11
|
-
|
|
12
|
-
// Base implementation for simple operations
|
|
13
|
-
template <typename TOperation, typename TEnable>
|
|
14
|
-
std::unique_ptr<StyleOperation> TransformOperationInterpolator<TOperation, TEnable>::interpolate(
|
|
15
|
-
double progress,
|
|
16
|
-
const std::shared_ptr<StyleOperation> &from,
|
|
17
|
-
const std::shared_ptr<StyleOperation> &to,
|
|
18
|
-
const StyleOperationsInterpolationContext & /* context */) const {
|
|
19
|
-
const auto &fromOp = *std::static_pointer_cast<TOperation>(from);
|
|
20
|
-
const auto &toOp = *std::static_pointer_cast<TOperation>(to);
|
|
21
|
-
return std::make_unique<TOperation>(fromOp.value.interpolate(progress, toOp.value));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Specialization for PerspectiveOperation
|
|
25
|
-
TransformOperationInterpolator<PerspectiveOperation, void>::TransformOperationInterpolator(
|
|
26
|
-
const std::shared_ptr<PerspectiveOperation> &defaultOperation)
|
|
27
|
-
: StyleOperationInterpolator(defaultOperation) {}
|
|
28
|
-
|
|
29
|
-
std::unique_ptr<StyleOperation> TransformOperationInterpolator<PerspectiveOperation, void>::interpolate(
|
|
30
|
-
double progress,
|
|
31
|
-
const std::shared_ptr<StyleOperation> &from,
|
|
32
|
-
const std::shared_ptr<StyleOperation> &to,
|
|
33
|
-
const StyleOperationsInterpolationContext & /* context */) const {
|
|
34
|
-
// TODO - check if this implementation is correct
|
|
35
|
-
const auto &fromValue = std::static_pointer_cast<PerspectiveOperation>(from)->value;
|
|
36
|
-
const auto &toValue = std::static_pointer_cast<PerspectiveOperation>(to)->value;
|
|
37
|
-
|
|
38
|
-
if (fromValue.value == 0)
|
|
39
|
-
return std::make_unique<PerspectiveOperation>(toValue);
|
|
40
|
-
if (toValue.value == 0)
|
|
41
|
-
return std::make_unique<PerspectiveOperation>(fromValue);
|
|
42
|
-
|
|
43
|
-
return std::make_unique<PerspectiveOperation>(fromValue.interpolate(progress, toValue));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Specialization for MatrixOperation
|
|
47
|
-
TransformOperationInterpolator<MatrixOperation, void>::TransformOperationInterpolator(
|
|
48
|
-
const std::shared_ptr<MatrixOperation> &defaultOperation)
|
|
49
|
-
: StyleOperationInterpolator(defaultOperation) {}
|
|
50
|
-
|
|
51
|
-
std::unique_ptr<StyleOperation> TransformOperationInterpolator<MatrixOperation, void>::interpolate(
|
|
52
|
-
double progress,
|
|
53
|
-
const std::shared_ptr<StyleOperation> &from,
|
|
54
|
-
const std::shared_ptr<StyleOperation> &to,
|
|
55
|
-
const StyleOperationsInterpolationContext &context) const {
|
|
56
|
-
const auto fromOperation = std::static_pointer_cast<TransformOperation>(from);
|
|
57
|
-
const auto toOperation = std::static_pointer_cast<TransformOperation>(to);
|
|
58
|
-
const auto shouldBe3D = fromOperation->is3D() || toOperation->is3D();
|
|
59
|
-
|
|
60
|
-
const auto fromMatrix = matrixFromOperation(fromOperation, shouldBe3D, context);
|
|
61
|
-
const auto toMatrix = matrixFromOperation(toOperation, shouldBe3D, context);
|
|
62
|
-
|
|
63
|
-
if (shouldBe3D) {
|
|
64
|
-
return std::make_unique<MatrixOperation>(interpolateMatrix<TransformMatrix3D>(progress, fromMatrix, toMatrix));
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const auto result2D = interpolateMatrix<TransformMatrix2D>(progress, fromMatrix, toMatrix);
|
|
68
|
-
|
|
69
|
-
// Unfortunately 2D matrices aren't handled properly in RN, so we have to
|
|
70
|
-
// convert them to 3D
|
|
71
|
-
// see the issue: https://github.com/facebook/react-native/issues/53639
|
|
72
|
-
return std::make_unique<MatrixOperation>(TransformMatrix3D::from2D(result2D));
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
template <typename MatrixType>
|
|
76
|
-
MatrixType TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix(
|
|
77
|
-
double progress,
|
|
78
|
-
const TransformMatrix::Shared &from,
|
|
79
|
-
const TransformMatrix::Shared &to) const {
|
|
80
|
-
const auto fromMatrix = std::static_pointer_cast<const MatrixType>(from);
|
|
81
|
-
const auto toMatrix = std::static_pointer_cast<const MatrixType>(to);
|
|
82
|
-
const auto decomposedFrom = fromMatrix->decompose();
|
|
83
|
-
const auto decomposedTo = toMatrix->decompose();
|
|
84
|
-
|
|
85
|
-
if (!decomposedFrom.has_value() || !decomposedTo.has_value()) {
|
|
86
|
-
return progress < 0.5 ? *fromMatrix : *toMatrix;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return MatrixType::recompose(decomposedFrom->interpolate(progress, decomposedTo.value()));
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
TransformMatrix::Shared TransformOperationInterpolator<MatrixOperation, void>::matrixFromOperation(
|
|
93
|
-
const std::shared_ptr<TransformOperation> &operation,
|
|
94
|
-
const bool shouldBe3D,
|
|
95
|
-
const StyleOperationsInterpolationContext &context) const {
|
|
96
|
-
const auto &matrixOperation = std::static_pointer_cast<MatrixOperation>(operation);
|
|
97
|
-
|
|
98
|
-
if (std::holds_alternative<TransformMatrix::Shared>(matrixOperation->value)) {
|
|
99
|
-
const auto &matrix = std::get<TransformMatrix::Shared>(matrixOperation->value);
|
|
100
|
-
|
|
101
|
-
if (shouldBe3D && !matrixOperation->is3D()) {
|
|
102
|
-
return std::make_shared<TransformMatrix3D>(
|
|
103
|
-
TransformMatrix3D::from2D(static_cast<const TransformMatrix2D &>(*matrix)));
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return matrix;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
const auto &operations = std::get<TransformOperations>(matrixOperation->value);
|
|
110
|
-
|
|
111
|
-
// Map over operations and resolve unresolved ones
|
|
112
|
-
TransformOperations resolvedOperations;
|
|
113
|
-
resolvedOperations.reserve(operations.size());
|
|
114
|
-
|
|
115
|
-
std::transform(
|
|
116
|
-
operations.begin(),
|
|
117
|
-
operations.end(),
|
|
118
|
-
std::back_inserter(resolvedOperations),
|
|
119
|
-
[&](const auto &operation) -> std::shared_ptr<TransformOperation> {
|
|
120
|
-
if (operation->shouldResolve()) {
|
|
121
|
-
const auto &interpolator = context.interpolators->at(operation->type);
|
|
122
|
-
return std::static_pointer_cast<TransformOperation>(interpolator->resolveOperation(operation, context));
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return operation;
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
if (shouldBe3D) {
|
|
129
|
-
return std::make_shared<TransformMatrix3D>(matrixFromOperations3D(resolvedOperations));
|
|
130
|
-
}
|
|
131
|
-
return std::make_shared<TransformMatrix2D>(matrixFromOperations2D(resolvedOperations));
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// Explicit template instantiations
|
|
135
|
-
template TransformMatrix2D TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix<TransformMatrix2D>(
|
|
136
|
-
double,
|
|
137
|
-
const TransformMatrix::Shared &,
|
|
138
|
-
const TransformMatrix::Shared &) const;
|
|
139
|
-
template TransformMatrix3D TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix<TransformMatrix3D>(
|
|
140
|
-
double,
|
|
141
|
-
const TransformMatrix::Shared &,
|
|
142
|
-
const TransformMatrix::Shared &) const;
|
|
143
|
-
|
|
144
|
-
// Specialization for resolvable operations
|
|
145
|
-
template <typename TOperation>
|
|
146
|
-
TransformOperationInterpolator<
|
|
147
|
-
TOperation,
|
|
148
|
-
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::TransformOperationInterpolator(
|
|
149
|
-
const std::shared_ptr<TOperation> &defaultOperation,
|
|
150
|
-
ResolvableValueInterpolatorConfig config)
|
|
151
|
-
: StyleOperationInterpolator(defaultOperation), config_(std::move(config)) {}
|
|
152
|
-
|
|
153
|
-
template <typename TOperation>
|
|
154
|
-
std::unique_ptr<StyleOperation> TransformOperationInterpolator<
|
|
155
|
-
TOperation,
|
|
156
|
-
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::interpolate(
|
|
157
|
-
double progress,
|
|
158
|
-
const std::shared_ptr<StyleOperation> &from,
|
|
159
|
-
const std::shared_ptr<StyleOperation> &to,
|
|
160
|
-
const StyleOperationsInterpolationContext &context) const {
|
|
161
|
-
const auto &fromOp = *std::static_pointer_cast<TOperation>(from);
|
|
162
|
-
const auto &toOp = *std::static_pointer_cast<TOperation>(to);
|
|
163
|
-
|
|
164
|
-
return std::make_unique<TOperation>(
|
|
165
|
-
fromOp.value.interpolate(progress, toOp.value, getResolvableValueContext(context)));
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
template <typename TOperation>
|
|
169
|
-
std::shared_ptr<StyleOperation> TransformOperationInterpolator<
|
|
170
|
-
TOperation,
|
|
171
|
-
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::resolveOperation(
|
|
172
|
-
const std::shared_ptr<StyleOperation> &operation,
|
|
173
|
-
const StyleOperationsInterpolationContext &context) const {
|
|
174
|
-
const auto &resolvableOp = std::static_pointer_cast<TOperation>(operation);
|
|
175
|
-
const auto &resolved = resolvableOp->value.resolve(getResolvableValueContext(context));
|
|
176
|
-
|
|
177
|
-
if (!resolved.has_value()) {
|
|
178
|
-
throw std::invalid_argument(
|
|
179
|
-
"[Reanimated] Cannot resolve resolvable operation: " + operation->getOperationName() +
|
|
180
|
-
" for node with tag: " + std::to_string(context.node->getTag()));
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
return std::make_shared<TOperation>(resolved.value());
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
template <typename TOperation>
|
|
187
|
-
ResolvableValueInterpolationContext TransformOperationInterpolator<
|
|
188
|
-
TOperation,
|
|
189
|
-
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::getResolvableValueContext(
|
|
190
|
-
const StyleOperationsInterpolationContext &context) const {
|
|
191
|
-
return ResolvableValueInterpolationContext{
|
|
192
|
-
.node = context.node,
|
|
193
|
-
.fallbackInterpolateThreshold = context.fallbackInterpolateThreshold,
|
|
194
|
-
.viewStylesRepository = context.viewStylesRepository,
|
|
195
|
-
.relativeProperty = config_.relativeProperty,
|
|
196
|
-
.relativeTo = config_.relativeTo};
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// Rotate operations
|
|
200
|
-
template class TransformOperationInterpolator<RotateOperation, void>;
|
|
201
|
-
template class TransformOperationInterpolator<RotateXOperation, void>;
|
|
202
|
-
template class TransformOperationInterpolator<RotateYOperation, void>;
|
|
203
|
-
template class TransformOperationInterpolator<RotateZOperation, void>;
|
|
204
|
-
|
|
205
|
-
// Scale operations
|
|
206
|
-
template class TransformOperationInterpolator<ScaleOperation, void>;
|
|
207
|
-
template class TransformOperationInterpolator<ScaleXOperation, void>;
|
|
208
|
-
template class TransformOperationInterpolator<ScaleYOperation, void>;
|
|
209
|
-
|
|
210
|
-
// Skew operations
|
|
211
|
-
template class TransformOperationInterpolator<SkewXOperation, void>;
|
|
212
|
-
template class TransformOperationInterpolator<SkewYOperation, void>;
|
|
213
|
-
|
|
214
|
-
// Translate operations (resolvable)
|
|
215
|
-
template class TransformOperationInterpolator<TranslateXOperation>;
|
|
216
|
-
template class TransformOperationInterpolator<TranslateYOperation>;
|
|
217
|
-
|
|
218
|
-
} // namespace reanimated::css
|
|
1
|
+
#include <reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h>
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/interpolation/transforms/operations/rotate.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/transforms/operations/scale.h>
|
|
5
|
+
#include <reanimated/CSS/interpolation/transforms/operations/skew.h>
|
|
6
|
+
#include <reanimated/CSS/interpolation/transforms/operations/translate.h>
|
|
7
|
+
|
|
8
|
+
#include <utility>
|
|
9
|
+
|
|
10
|
+
namespace reanimated::css {
|
|
11
|
+
|
|
12
|
+
// Base implementation for simple operations
|
|
13
|
+
template <typename TOperation, typename TEnable>
|
|
14
|
+
std::unique_ptr<StyleOperation> TransformOperationInterpolator<TOperation, TEnable>::interpolate(
|
|
15
|
+
double progress,
|
|
16
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
17
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
18
|
+
const StyleOperationsInterpolationContext & /* context */) const {
|
|
19
|
+
const auto &fromOp = *std::static_pointer_cast<TOperation>(from);
|
|
20
|
+
const auto &toOp = *std::static_pointer_cast<TOperation>(to);
|
|
21
|
+
return std::make_unique<TOperation>(fromOp.value.interpolate(progress, toOp.value));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Specialization for PerspectiveOperation
|
|
25
|
+
TransformOperationInterpolator<PerspectiveOperation, void>::TransformOperationInterpolator(
|
|
26
|
+
const std::shared_ptr<PerspectiveOperation> &defaultOperation)
|
|
27
|
+
: StyleOperationInterpolator(defaultOperation) {}
|
|
28
|
+
|
|
29
|
+
std::unique_ptr<StyleOperation> TransformOperationInterpolator<PerspectiveOperation, void>::interpolate(
|
|
30
|
+
double progress,
|
|
31
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
32
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
33
|
+
const StyleOperationsInterpolationContext & /* context */) const {
|
|
34
|
+
// TODO - check if this implementation is correct
|
|
35
|
+
const auto &fromValue = std::static_pointer_cast<PerspectiveOperation>(from)->value;
|
|
36
|
+
const auto &toValue = std::static_pointer_cast<PerspectiveOperation>(to)->value;
|
|
37
|
+
|
|
38
|
+
if (fromValue.value == 0)
|
|
39
|
+
return std::make_unique<PerspectiveOperation>(toValue);
|
|
40
|
+
if (toValue.value == 0)
|
|
41
|
+
return std::make_unique<PerspectiveOperation>(fromValue);
|
|
42
|
+
|
|
43
|
+
return std::make_unique<PerspectiveOperation>(fromValue.interpolate(progress, toValue));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Specialization for MatrixOperation
|
|
47
|
+
TransformOperationInterpolator<MatrixOperation, void>::TransformOperationInterpolator(
|
|
48
|
+
const std::shared_ptr<MatrixOperation> &defaultOperation)
|
|
49
|
+
: StyleOperationInterpolator(defaultOperation) {}
|
|
50
|
+
|
|
51
|
+
std::unique_ptr<StyleOperation> TransformOperationInterpolator<MatrixOperation, void>::interpolate(
|
|
52
|
+
double progress,
|
|
53
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
54
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
55
|
+
const StyleOperationsInterpolationContext &context) const {
|
|
56
|
+
const auto fromOperation = std::static_pointer_cast<TransformOperation>(from);
|
|
57
|
+
const auto toOperation = std::static_pointer_cast<TransformOperation>(to);
|
|
58
|
+
const auto shouldBe3D = fromOperation->is3D() || toOperation->is3D();
|
|
59
|
+
|
|
60
|
+
const auto fromMatrix = matrixFromOperation(fromOperation, shouldBe3D, context);
|
|
61
|
+
const auto toMatrix = matrixFromOperation(toOperation, shouldBe3D, context);
|
|
62
|
+
|
|
63
|
+
if (shouldBe3D) {
|
|
64
|
+
return std::make_unique<MatrixOperation>(interpolateMatrix<TransformMatrix3D>(progress, fromMatrix, toMatrix));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const auto result2D = interpolateMatrix<TransformMatrix2D>(progress, fromMatrix, toMatrix);
|
|
68
|
+
|
|
69
|
+
// Unfortunately 2D matrices aren't handled properly in RN, so we have to
|
|
70
|
+
// convert them to 3D
|
|
71
|
+
// see the issue: https://github.com/facebook/react-native/issues/53639
|
|
72
|
+
return std::make_unique<MatrixOperation>(TransformMatrix3D::from2D(result2D));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
template <typename MatrixType>
|
|
76
|
+
MatrixType TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix(
|
|
77
|
+
double progress,
|
|
78
|
+
const TransformMatrix::Shared &from,
|
|
79
|
+
const TransformMatrix::Shared &to) const {
|
|
80
|
+
const auto fromMatrix = std::static_pointer_cast<const MatrixType>(from);
|
|
81
|
+
const auto toMatrix = std::static_pointer_cast<const MatrixType>(to);
|
|
82
|
+
const auto decomposedFrom = fromMatrix->decompose();
|
|
83
|
+
const auto decomposedTo = toMatrix->decompose();
|
|
84
|
+
|
|
85
|
+
if (!decomposedFrom.has_value() || !decomposedTo.has_value()) {
|
|
86
|
+
return progress < 0.5 ? *fromMatrix : *toMatrix;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return MatrixType::recompose(decomposedFrom->interpolate(progress, decomposedTo.value()));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
TransformMatrix::Shared TransformOperationInterpolator<MatrixOperation, void>::matrixFromOperation(
|
|
93
|
+
const std::shared_ptr<TransformOperation> &operation,
|
|
94
|
+
const bool shouldBe3D,
|
|
95
|
+
const StyleOperationsInterpolationContext &context) const {
|
|
96
|
+
const auto &matrixOperation = std::static_pointer_cast<MatrixOperation>(operation);
|
|
97
|
+
|
|
98
|
+
if (std::holds_alternative<TransformMatrix::Shared>(matrixOperation->value)) {
|
|
99
|
+
const auto &matrix = std::get<TransformMatrix::Shared>(matrixOperation->value);
|
|
100
|
+
|
|
101
|
+
if (shouldBe3D && !matrixOperation->is3D()) {
|
|
102
|
+
return std::make_shared<TransformMatrix3D>(
|
|
103
|
+
TransformMatrix3D::from2D(static_cast<const TransformMatrix2D &>(*matrix)));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return matrix;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const auto &operations = std::get<TransformOperations>(matrixOperation->value);
|
|
110
|
+
|
|
111
|
+
// Map over operations and resolve unresolved ones
|
|
112
|
+
TransformOperations resolvedOperations;
|
|
113
|
+
resolvedOperations.reserve(operations.size());
|
|
114
|
+
|
|
115
|
+
std::transform(
|
|
116
|
+
operations.begin(),
|
|
117
|
+
operations.end(),
|
|
118
|
+
std::back_inserter(resolvedOperations),
|
|
119
|
+
[&](const auto &operation) -> std::shared_ptr<TransformOperation> {
|
|
120
|
+
if (operation->shouldResolve()) {
|
|
121
|
+
const auto &interpolator = context.interpolators->at(operation->type);
|
|
122
|
+
return std::static_pointer_cast<TransformOperation>(interpolator->resolveOperation(operation, context));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return operation;
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
if (shouldBe3D) {
|
|
129
|
+
return std::make_shared<TransformMatrix3D>(matrixFromOperations3D(resolvedOperations));
|
|
130
|
+
}
|
|
131
|
+
return std::make_shared<TransformMatrix2D>(matrixFromOperations2D(resolvedOperations));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Explicit template instantiations
|
|
135
|
+
template TransformMatrix2D TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix<TransformMatrix2D>(
|
|
136
|
+
double,
|
|
137
|
+
const TransformMatrix::Shared &,
|
|
138
|
+
const TransformMatrix::Shared &) const;
|
|
139
|
+
template TransformMatrix3D TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix<TransformMatrix3D>(
|
|
140
|
+
double,
|
|
141
|
+
const TransformMatrix::Shared &,
|
|
142
|
+
const TransformMatrix::Shared &) const;
|
|
143
|
+
|
|
144
|
+
// Specialization for resolvable operations
|
|
145
|
+
template <typename TOperation>
|
|
146
|
+
TransformOperationInterpolator<
|
|
147
|
+
TOperation,
|
|
148
|
+
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::TransformOperationInterpolator(
|
|
149
|
+
const std::shared_ptr<TOperation> &defaultOperation,
|
|
150
|
+
ResolvableValueInterpolatorConfig config)
|
|
151
|
+
: StyleOperationInterpolator(defaultOperation), config_(std::move(config)) {}
|
|
152
|
+
|
|
153
|
+
template <typename TOperation>
|
|
154
|
+
std::unique_ptr<StyleOperation> TransformOperationInterpolator<
|
|
155
|
+
TOperation,
|
|
156
|
+
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::interpolate(
|
|
157
|
+
double progress,
|
|
158
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
159
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
160
|
+
const StyleOperationsInterpolationContext &context) const {
|
|
161
|
+
const auto &fromOp = *std::static_pointer_cast<TOperation>(from);
|
|
162
|
+
const auto &toOp = *std::static_pointer_cast<TOperation>(to);
|
|
163
|
+
|
|
164
|
+
return std::make_unique<TOperation>(
|
|
165
|
+
fromOp.value.interpolate(progress, toOp.value, getResolvableValueContext(context)));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
template <typename TOperation>
|
|
169
|
+
std::shared_ptr<StyleOperation> TransformOperationInterpolator<
|
|
170
|
+
TOperation,
|
|
171
|
+
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::resolveOperation(
|
|
172
|
+
const std::shared_ptr<StyleOperation> &operation,
|
|
173
|
+
const StyleOperationsInterpolationContext &context) const {
|
|
174
|
+
const auto &resolvableOp = std::static_pointer_cast<TOperation>(operation);
|
|
175
|
+
const auto &resolved = resolvableOp->value.resolve(getResolvableValueContext(context));
|
|
176
|
+
|
|
177
|
+
if (!resolved.has_value()) {
|
|
178
|
+
throw std::invalid_argument(
|
|
179
|
+
"[Reanimated] Cannot resolve resolvable operation: " + operation->getOperationName() +
|
|
180
|
+
" for node with tag: " + std::to_string(context.node->getTag()));
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return std::make_shared<TOperation>(resolved.value());
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
template <typename TOperation>
|
|
187
|
+
ResolvableValueInterpolationContext TransformOperationInterpolator<
|
|
188
|
+
TOperation,
|
|
189
|
+
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::getResolvableValueContext(
|
|
190
|
+
const StyleOperationsInterpolationContext &context) const {
|
|
191
|
+
return ResolvableValueInterpolationContext{
|
|
192
|
+
.node = context.node,
|
|
193
|
+
.fallbackInterpolateThreshold = context.fallbackInterpolateThreshold,
|
|
194
|
+
.viewStylesRepository = context.viewStylesRepository,
|
|
195
|
+
.relativeProperty = config_.relativeProperty,
|
|
196
|
+
.relativeTo = config_.relativeTo};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Rotate operations
|
|
200
|
+
template class TransformOperationInterpolator<RotateOperation, void>;
|
|
201
|
+
template class TransformOperationInterpolator<RotateXOperation, void>;
|
|
202
|
+
template class TransformOperationInterpolator<RotateYOperation, void>;
|
|
203
|
+
template class TransformOperationInterpolator<RotateZOperation, void>;
|
|
204
|
+
|
|
205
|
+
// Scale operations
|
|
206
|
+
template class TransformOperationInterpolator<ScaleOperation, void>;
|
|
207
|
+
template class TransformOperationInterpolator<ScaleXOperation, void>;
|
|
208
|
+
template class TransformOperationInterpolator<ScaleYOperation, void>;
|
|
209
|
+
|
|
210
|
+
// Skew operations
|
|
211
|
+
template class TransformOperationInterpolator<SkewXOperation, void>;
|
|
212
|
+
template class TransformOperationInterpolator<SkewYOperation, void>;
|
|
213
|
+
|
|
214
|
+
// Translate operations (resolvable)
|
|
215
|
+
template class TransformOperationInterpolator<TranslateXOperation>;
|
|
216
|
+
template class TransformOperationInterpolator<TranslateYOperation>;
|
|
217
|
+
|
|
218
|
+
} // namespace reanimated::css
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <reanimated/CSS/interpolation/configs.h>
|
|
4
|
-
#include <reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h>
|
|
5
|
-
#include <reanimated/CSS/interpolation/transforms/operations/matrix.h>
|
|
6
|
-
#include <reanimated/CSS/interpolation/transforms/operations/perspective.h>
|
|
7
|
-
|
|
8
|
-
#include <memory>
|
|
9
|
-
#include <type_traits>
|
|
10
|
-
|
|
11
|
-
namespace reanimated::css {
|
|
12
|
-
|
|
13
|
-
// Base implementation for simple operations
|
|
14
|
-
template <typename TOperation, typename = void>
|
|
15
|
-
class TransformOperationInterpolator : public StyleOperationInterpolator {
|
|
16
|
-
public:
|
|
17
|
-
using StyleOperationInterpolator::StyleOperationInterpolator;
|
|
18
|
-
|
|
19
|
-
std::unique_ptr<StyleOperation> interpolate(
|
|
20
|
-
double progress,
|
|
21
|
-
const std::shared_ptr<StyleOperation> &from,
|
|
22
|
-
const std::shared_ptr<StyleOperation> &to,
|
|
23
|
-
const StyleOperationsInterpolationContext &context) const override;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
// Specialization for PerspectiveOperation
|
|
27
|
-
template <>
|
|
28
|
-
class TransformOperationInterpolator<PerspectiveOperation, void> : public StyleOperationInterpolator {
|
|
29
|
-
public:
|
|
30
|
-
explicit TransformOperationInterpolator(const std::shared_ptr<PerspectiveOperation> &defaultOperation);
|
|
31
|
-
|
|
32
|
-
std::unique_ptr<StyleOperation> interpolate(
|
|
33
|
-
double progress,
|
|
34
|
-
const std::shared_ptr<StyleOperation> &from,
|
|
35
|
-
const std::shared_ptr<StyleOperation> &to,
|
|
36
|
-
const StyleOperationsInterpolationContext &context) const override;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
// Specialization for MatrixOperation
|
|
40
|
-
template <>
|
|
41
|
-
class TransformOperationInterpolator<MatrixOperation, void> : public StyleOperationInterpolator {
|
|
42
|
-
public:
|
|
43
|
-
explicit TransformOperationInterpolator(const std::shared_ptr<MatrixOperation> &defaultOperation);
|
|
44
|
-
|
|
45
|
-
std::unique_ptr<StyleOperation> interpolate(
|
|
46
|
-
double progress,
|
|
47
|
-
const std::shared_ptr<StyleOperation> &from,
|
|
48
|
-
const std::shared_ptr<StyleOperation> &to,
|
|
49
|
-
const StyleOperationsInterpolationContext &context) const override;
|
|
50
|
-
|
|
51
|
-
protected:
|
|
52
|
-
template <typename MatrixType>
|
|
53
|
-
MatrixType interpolateMatrix(double progress, const TransformMatrix::Shared &from, const TransformMatrix::Shared &to)
|
|
54
|
-
const;
|
|
55
|
-
|
|
56
|
-
TransformMatrix::Shared matrixFromOperation(
|
|
57
|
-
const std::shared_ptr<TransformOperation> &operation,
|
|
58
|
-
bool shouldBe3D,
|
|
59
|
-
const StyleOperationsInterpolationContext &context) const;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
// Specialization for resolvable operations
|
|
63
|
-
template <typename TOperation>
|
|
64
|
-
class TransformOperationInterpolator<
|
|
65
|
-
TOperation,
|
|
66
|
-
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>> : public StyleOperationInterpolator {
|
|
67
|
-
public:
|
|
68
|
-
TransformOperationInterpolator(
|
|
69
|
-
const std::shared_ptr<TOperation> &defaultOperation,
|
|
70
|
-
ResolvableValueInterpolatorConfig config);
|
|
71
|
-
|
|
72
|
-
std::unique_ptr<StyleOperation> interpolate(
|
|
73
|
-
double progress,
|
|
74
|
-
const std::shared_ptr<StyleOperation> &from,
|
|
75
|
-
const std::shared_ptr<StyleOperation> &to,
|
|
76
|
-
const StyleOperationsInterpolationContext &context) const override;
|
|
77
|
-
|
|
78
|
-
std::shared_ptr<StyleOperation> resolveOperation(
|
|
79
|
-
const std::shared_ptr<StyleOperation> &operation,
|
|
80
|
-
const StyleOperationsInterpolationContext &context) const override;
|
|
81
|
-
|
|
82
|
-
protected:
|
|
83
|
-
const ResolvableValueInterpolatorConfig config_;
|
|
84
|
-
|
|
85
|
-
ResolvableValueInterpolationContext getResolvableValueContext(
|
|
86
|
-
const StyleOperationsInterpolationContext &context) const;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
} // namespace reanimated::css
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/interpolation/configs.h>
|
|
4
|
+
#include <reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h>
|
|
5
|
+
#include <reanimated/CSS/interpolation/transforms/operations/matrix.h>
|
|
6
|
+
#include <reanimated/CSS/interpolation/transforms/operations/perspective.h>
|
|
7
|
+
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <type_traits>
|
|
10
|
+
|
|
11
|
+
namespace reanimated::css {
|
|
12
|
+
|
|
13
|
+
// Base implementation for simple operations
|
|
14
|
+
template <typename TOperation, typename = void>
|
|
15
|
+
class TransformOperationInterpolator : public StyleOperationInterpolator {
|
|
16
|
+
public:
|
|
17
|
+
using StyleOperationInterpolator::StyleOperationInterpolator;
|
|
18
|
+
|
|
19
|
+
std::unique_ptr<StyleOperation> interpolate(
|
|
20
|
+
double progress,
|
|
21
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
22
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
23
|
+
const StyleOperationsInterpolationContext &context) const override;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// Specialization for PerspectiveOperation
|
|
27
|
+
template <>
|
|
28
|
+
class TransformOperationInterpolator<PerspectiveOperation, void> : public StyleOperationInterpolator {
|
|
29
|
+
public:
|
|
30
|
+
explicit TransformOperationInterpolator(const std::shared_ptr<PerspectiveOperation> &defaultOperation);
|
|
31
|
+
|
|
32
|
+
std::unique_ptr<StyleOperation> interpolate(
|
|
33
|
+
double progress,
|
|
34
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
35
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
36
|
+
const StyleOperationsInterpolationContext &context) const override;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// Specialization for MatrixOperation
|
|
40
|
+
template <>
|
|
41
|
+
class TransformOperationInterpolator<MatrixOperation, void> : public StyleOperationInterpolator {
|
|
42
|
+
public:
|
|
43
|
+
explicit TransformOperationInterpolator(const std::shared_ptr<MatrixOperation> &defaultOperation);
|
|
44
|
+
|
|
45
|
+
std::unique_ptr<StyleOperation> interpolate(
|
|
46
|
+
double progress,
|
|
47
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
48
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
49
|
+
const StyleOperationsInterpolationContext &context) const override;
|
|
50
|
+
|
|
51
|
+
protected:
|
|
52
|
+
template <typename MatrixType>
|
|
53
|
+
MatrixType interpolateMatrix(double progress, const TransformMatrix::Shared &from, const TransformMatrix::Shared &to)
|
|
54
|
+
const;
|
|
55
|
+
|
|
56
|
+
TransformMatrix::Shared matrixFromOperation(
|
|
57
|
+
const std::shared_ptr<TransformOperation> &operation,
|
|
58
|
+
bool shouldBe3D,
|
|
59
|
+
const StyleOperationsInterpolationContext &context) const;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// Specialization for resolvable operations
|
|
63
|
+
template <typename TOperation>
|
|
64
|
+
class TransformOperationInterpolator<
|
|
65
|
+
TOperation,
|
|
66
|
+
std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>> : public StyleOperationInterpolator {
|
|
67
|
+
public:
|
|
68
|
+
TransformOperationInterpolator(
|
|
69
|
+
const std::shared_ptr<TOperation> &defaultOperation,
|
|
70
|
+
ResolvableValueInterpolatorConfig config);
|
|
71
|
+
|
|
72
|
+
std::unique_ptr<StyleOperation> interpolate(
|
|
73
|
+
double progress,
|
|
74
|
+
const std::shared_ptr<StyleOperation> &from,
|
|
75
|
+
const std::shared_ptr<StyleOperation> &to,
|
|
76
|
+
const StyleOperationsInterpolationContext &context) const override;
|
|
77
|
+
|
|
78
|
+
std::shared_ptr<StyleOperation> resolveOperation(
|
|
79
|
+
const std::shared_ptr<StyleOperation> &operation,
|
|
80
|
+
const StyleOperationsInterpolationContext &context) const override;
|
|
81
|
+
|
|
82
|
+
protected:
|
|
83
|
+
const ResolvableValueInterpolatorConfig config_;
|
|
84
|
+
|
|
85
|
+
ResolvableValueInterpolationContext getResolvableValueContext(
|
|
86
|
+
const StyleOperationsInterpolationContext &context) const;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
} // namespace reanimated::css
|