• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3* Licensed under the Apache License, Version 2.0 (the "License");
4* you may not use this file except in compliance with the License.
5* You may obtain a copy of the License at
6*
7* http://www.apache.org/licenses/LICENSE-2.0
8*
9* Unless required by applicable law or agreed to in writing, software
10* distributed under the License is distributed on an "AS IS" BASIS,
11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12* See the License for the specific language governing permissions and
13* limitations under the License.
14*/
15
16/**
17 * Contains interpolator functions such as initialization, third-order Bezier curves, and spring curves.
18 * @namespace curves
19 * @syscap SystemCapability.ArkUI.ArkUI.Full
20 * @since 7
21 */
22declare namespace curves {
23  /**
24   * enum Curve.
25   * @enum { number }
26   * @syscap SystemCapability.ArkUI.ArkUI.Full
27   * @since 7
28   */
29  enum Curve {
30    Linear,
31    Ease,
32    EaseIn,
33    EaseOut,
34    EaseInOut,
35    FastOutSlowIn,
36    LinearOutSlowIn,
37    FastOutLinearIn,
38    ExtremeDeceleration,
39    Sharp,
40    Rhythm,
41    Smooth,
42    Friction,
43  }
44
45  /**
46   * Interface for curve object.
47   * @typedef ICurve
48   * @syscap SystemCapability.ArkUI.ArkUI.Full
49   * @since 9
50   */
51  interface ICurve {
52    /**
53    * Get curve value by fraction.
54    * @param { number } fraction
55    * @returns { number }
56    * @syscap SystemCapability.ArkUI.ArkUI.Full
57    * @since 9
58    */
59     interpolate(fraction : number) : number;
60  }
61
62  /**
63   * Initializes the interpolator curve when called.
64   * @param { Curve } [curve]
65   * @returns { ICurve }
66   * @syscap SystemCapability.ArkUI.ArkUI.Full
67   * @since 9
68   */
69  function initCurve(curve?: Curve): ICurve;
70
71  /**
72   * Initializes the interpolator curve when called.
73   * @param { Curve } [curve]
74   * @returns { string }
75   * @syscap SystemCapability.ArkUI.ArkUI.Full
76   * @since 7
77   * @deprecated since 9
78   * @useinstead initCurve
79   */
80  function init(curve?: Curve): string;
81
82  /**
83   * Constructs a step curve when called.
84   * @param { number } count
85   * @param { boolean } end
86   * @returns { ICurve }
87   * @syscap SystemCapability.ArkUI.ArkUI.Full
88   * @since 9
89   */
90   function stepsCurve(count: number, end: boolean): ICurve;
91
92  /**
93   * Constructs a step curve when called.
94   * @param { number } count
95   * @param { boolean } end
96   * @returns { string }
97   * @syscap SystemCapability.ArkUI.ArkUI.Full
98   * @since 7
99   * @deprecated since 9
100   * @useinstead stepsCurve
101   */
102  function steps(count: number, end: boolean): string;
103
104  /**
105   * Constructs a third-order Bezier curve when called.
106   * @param { number } x1
107   * @param { number } y1
108   * @param { number } x2
109   * @param { number } y2
110   * @returns { ICurve }
111   * @syscap SystemCapability.ArkUI.ArkUI.Full
112   * @since 9
113   */
114  function cubicBezierCurve(x1: number, y1: number, x2: number, y2: number): ICurve;
115
116  /**
117   * Constructs a third-order Bezier curve when called.
118   * @param { number } x1
119   * @param { number } y1
120   * @param { number } x2
121   * @param { number } y2
122   * @returns { string }
123   * @syscap SystemCapability.ArkUI.ArkUI.Full
124   * @since 7
125   * @deprecated since 9
126   * @useinstead cubicBezierCurve
127   */
128  function cubicBezier(x1: number, y1: number, x2: number, y2: number): string;
129
130  /**
131   * Constructs a spring curve when called.
132   * @param { number } velocity
133   * @param { number } mass
134   * @param { number } stiffness
135   * @param { number } damping
136   * @returns { ICurve }
137   * @syscap SystemCapability.ArkUI.ArkUI.Full
138   * @since 9
139   */
140  function springCurve(velocity: number, mass: number, stiffness: number, damping: number): ICurve;
141
142  /**
143   * Constructs a spring curve when called.
144   * @param { number } velocity
145   * @param { number } mass
146   * @param { number } stiffness
147   * @param { number } damping
148   * @returns { string }
149   * @syscap SystemCapability.ArkUI.ArkUI.Full
150   * @since 7
151   * @deprecated since 9
152   * @useinstead springCurve
153   */
154  function spring(velocity: number, mass: number, stiffness: number, damping: number): string;
155
156  /**
157   * Constructs a spring motion when called.
158   * @param { number } [response]
159   * @param { number } [dampingFraction]
160   * @param { number } [overlapDuration]
161   * @returns { ICurve }
162   * @syscap SystemCapability.ArkUI.ArkUI.Full
163   * @since 9
164   */
165  function springMotion(response?: number, dampingFraction?: number, overlapDuration?: number): ICurve;
166
167  /**
168   * Constructs a responsive spring motion when called.
169   * @param { number } [response]
170   * @param { number } [dampingFraction]
171   * @param { number } [overlapDuration]
172   * @returns { ICurve }
173   * @syscap SystemCapability.ArkUI.ArkUI.Full
174   * @since 9
175   */
176  function responsiveSpringMotion(response?: number, dampingFraction?: number, overlapDuration?: number): ICurve;
177
178}
179
180export default curves;
181