161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2020-2023 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit ArkUI
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ci/**
2261847f8eSopenharmony_ci * Used to do matrix operations
2361847f8eSopenharmony_ci *
2461847f8eSopenharmony_ci * @namespace matrix4
2561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
2661847f8eSopenharmony_ci * @since 7
2761847f8eSopenharmony_ci */
2861847f8eSopenharmony_ci/**
2961847f8eSopenharmony_ci * Used to do matrix operations
3061847f8eSopenharmony_ci *
3161847f8eSopenharmony_ci * @namespace matrix4
3261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
3361847f8eSopenharmony_ci * @crossplatform
3461847f8eSopenharmony_ci * @since 10
3561847f8eSopenharmony_ci */
3661847f8eSopenharmony_ci/**
3761847f8eSopenharmony_ci * Used to do matrix operations
3861847f8eSopenharmony_ci *
3961847f8eSopenharmony_ci * @namespace matrix4
4061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
4161847f8eSopenharmony_ci * @crossplatform
4261847f8eSopenharmony_ci * @atomicservice
4361847f8eSopenharmony_ci * @since 11
4461847f8eSopenharmony_ci */
4561847f8eSopenharmony_cideclare namespace matrix4 {
4661847f8eSopenharmony_ci  /**
4761847f8eSopenharmony_ci   * Set translation parameters
4861847f8eSopenharmony_ci   *
4961847f8eSopenharmony_ci   * @interface TranslateOption
5061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
5161847f8eSopenharmony_ci   * @since 7
5261847f8eSopenharmony_ci   */
5361847f8eSopenharmony_ci  /**
5461847f8eSopenharmony_ci   * Set translation parameters
5561847f8eSopenharmony_ci   *
5661847f8eSopenharmony_ci   * @interface TranslateOption
5761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
5861847f8eSopenharmony_ci   * @crossplatform
5961847f8eSopenharmony_ci   * @since 10
6061847f8eSopenharmony_ci   */
6161847f8eSopenharmony_ci  /**
6261847f8eSopenharmony_ci   * Set translation parameters
6361847f8eSopenharmony_ci   *
6461847f8eSopenharmony_ci   * @interface TranslateOption
6561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
6661847f8eSopenharmony_ci   * @crossplatform
6761847f8eSopenharmony_ci   * @atomicservice
6861847f8eSopenharmony_ci   * @since 11
6961847f8eSopenharmony_ci   */
7061847f8eSopenharmony_ci  interface TranslateOption {
7161847f8eSopenharmony_ci    /**
7261847f8eSopenharmony_ci     * Indicates the translation distance of the x-axis, in px.
7361847f8eSopenharmony_ci     *
7461847f8eSopenharmony_ci     * @type { ?number }
7561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
7661847f8eSopenharmony_ci     * @since 7
7761847f8eSopenharmony_ci     */
7861847f8eSopenharmony_ci    /**
7961847f8eSopenharmony_ci     * Indicates the translation distance of the x-axis, in px.
8061847f8eSopenharmony_ci     *
8161847f8eSopenharmony_ci     * @type { ?number }
8261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
8361847f8eSopenharmony_ci     * @crossplatform
8461847f8eSopenharmony_ci     * @since 10
8561847f8eSopenharmony_ci     */
8661847f8eSopenharmony_ci    /**
8761847f8eSopenharmony_ci     * Indicates the translation distance of the x-axis, in px.
8861847f8eSopenharmony_ci     *
8961847f8eSopenharmony_ci     * @type { ?number }
9061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
9161847f8eSopenharmony_ci     * @crossplatform
9261847f8eSopenharmony_ci     * @atomicservice
9361847f8eSopenharmony_ci     * @since 11
9461847f8eSopenharmony_ci     */
9561847f8eSopenharmony_ci    x?: number;
9661847f8eSopenharmony_ci
9761847f8eSopenharmony_ci    /**
9861847f8eSopenharmony_ci     * Indicates the translation distance of the y-axis, in px.
9961847f8eSopenharmony_ci     *
10061847f8eSopenharmony_ci     * @type { ?number }
10161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
10261847f8eSopenharmony_ci     * @since 7
10361847f8eSopenharmony_ci     */
10461847f8eSopenharmony_ci    /**
10561847f8eSopenharmony_ci     * Indicates the translation distance of the y-axis, in px.
10661847f8eSopenharmony_ci     *
10761847f8eSopenharmony_ci     * @type { ?number }
10861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
10961847f8eSopenharmony_ci     * @crossplatform
11061847f8eSopenharmony_ci     * @since 10
11161847f8eSopenharmony_ci     */
11261847f8eSopenharmony_ci    /**
11361847f8eSopenharmony_ci     * Indicates the translation distance of the y-axis, in px.
11461847f8eSopenharmony_ci     *
11561847f8eSopenharmony_ci     * @type { ?number }
11661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
11761847f8eSopenharmony_ci     * @crossplatform
11861847f8eSopenharmony_ci     * @atomicservice
11961847f8eSopenharmony_ci     * @since 11
12061847f8eSopenharmony_ci     */
12161847f8eSopenharmony_ci    y?: number;
12261847f8eSopenharmony_ci
12361847f8eSopenharmony_ci    /**
12461847f8eSopenharmony_ci     * Indicates the translation distance of the z-axis, in px.
12561847f8eSopenharmony_ci     *
12661847f8eSopenharmony_ci     * @type { ?number }
12761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
12861847f8eSopenharmony_ci     * @since 7
12961847f8eSopenharmony_ci     */
13061847f8eSopenharmony_ci    /**
13161847f8eSopenharmony_ci     * Indicates the translation distance of the z-axis, in px.
13261847f8eSopenharmony_ci     *
13361847f8eSopenharmony_ci     * @type { ?number }
13461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
13561847f8eSopenharmony_ci     * @crossplatform
13661847f8eSopenharmony_ci     * @since 10
13761847f8eSopenharmony_ci     */
13861847f8eSopenharmony_ci    /**
13961847f8eSopenharmony_ci     * Indicates the translation distance of the z-axis, in px.
14061847f8eSopenharmony_ci     *
14161847f8eSopenharmony_ci     * @type { ?number }
14261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
14361847f8eSopenharmony_ci     * @crossplatform
14461847f8eSopenharmony_ci     * @atomicservice
14561847f8eSopenharmony_ci     * @since 11
14661847f8eSopenharmony_ci     */
14761847f8eSopenharmony_ci    z?: number;
14861847f8eSopenharmony_ci  }
14961847f8eSopenharmony_ci
15061847f8eSopenharmony_ci  /**
15161847f8eSopenharmony_ci   * Set scaling parameters
15261847f8eSopenharmony_ci   *
15361847f8eSopenharmony_ci   * @interface ScaleOption
15461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
15561847f8eSopenharmony_ci   * @since 7
15661847f8eSopenharmony_ci   */
15761847f8eSopenharmony_ci  /**
15861847f8eSopenharmony_ci   * Set scaling parameters
15961847f8eSopenharmony_ci   *
16061847f8eSopenharmony_ci   * @interface ScaleOption
16161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
16261847f8eSopenharmony_ci   * @crossplatform
16361847f8eSopenharmony_ci   * @since 10
16461847f8eSopenharmony_ci   */
16561847f8eSopenharmony_ci  /**
16661847f8eSopenharmony_ci   * Set scaling parameters
16761847f8eSopenharmony_ci   *
16861847f8eSopenharmony_ci   * @interface ScaleOption
16961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
17061847f8eSopenharmony_ci   * @crossplatform
17161847f8eSopenharmony_ci   * @atomicservice
17261847f8eSopenharmony_ci   * @since 11
17361847f8eSopenharmony_ci   */
17461847f8eSopenharmony_ci  interface ScaleOption {
17561847f8eSopenharmony_ci    /**
17661847f8eSopenharmony_ci     * Zoom factor of the x-axis.
17761847f8eSopenharmony_ci     *
17861847f8eSopenharmony_ci     * @type { ?number }
17961847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
18061847f8eSopenharmony_ci     * @since 7
18161847f8eSopenharmony_ci     */
18261847f8eSopenharmony_ci    /**
18361847f8eSopenharmony_ci     * Zoom factor of the x-axis.
18461847f8eSopenharmony_ci     *
18561847f8eSopenharmony_ci     * @type { ?number }
18661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
18761847f8eSopenharmony_ci     * @crossplatform
18861847f8eSopenharmony_ci     * @since 10
18961847f8eSopenharmony_ci     */
19061847f8eSopenharmony_ci    /**
19161847f8eSopenharmony_ci     * Zoom factor of the x-axis.
19261847f8eSopenharmony_ci     *
19361847f8eSopenharmony_ci     * @type { ?number }
19461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
19561847f8eSopenharmony_ci     * @crossplatform
19661847f8eSopenharmony_ci     * @atomicservice
19761847f8eSopenharmony_ci     * @since 11
19861847f8eSopenharmony_ci     */
19961847f8eSopenharmony_ci    x?: number;
20061847f8eSopenharmony_ci
20161847f8eSopenharmony_ci    /**
20261847f8eSopenharmony_ci     * Zoom factor of the y-axis.
20361847f8eSopenharmony_ci     *
20461847f8eSopenharmony_ci     * @type { ?number }
20561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
20661847f8eSopenharmony_ci     * @since 7
20761847f8eSopenharmony_ci     */
20861847f8eSopenharmony_ci    /**
20961847f8eSopenharmony_ci     * Zoom factor of the y-axis.
21061847f8eSopenharmony_ci     *
21161847f8eSopenharmony_ci     * @type { ?number }
21261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
21361847f8eSopenharmony_ci     * @crossplatform
21461847f8eSopenharmony_ci     * @since 10
21561847f8eSopenharmony_ci     */
21661847f8eSopenharmony_ci    /**
21761847f8eSopenharmony_ci     * Zoom factor of the y-axis.
21861847f8eSopenharmony_ci     *
21961847f8eSopenharmony_ci     * @type { ?number }
22061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
22161847f8eSopenharmony_ci     * @crossplatform
22261847f8eSopenharmony_ci     * @atomicservice
22361847f8eSopenharmony_ci     * @since 11
22461847f8eSopenharmony_ci     */
22561847f8eSopenharmony_ci    y?: number;
22661847f8eSopenharmony_ci
22761847f8eSopenharmony_ci    /**
22861847f8eSopenharmony_ci     * Zoom factor of the z-axis.
22961847f8eSopenharmony_ci     *
23061847f8eSopenharmony_ci     * @type { ?number }
23161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
23261847f8eSopenharmony_ci     * @since 7
23361847f8eSopenharmony_ci     */
23461847f8eSopenharmony_ci    /**
23561847f8eSopenharmony_ci     * Zoom factor of the z-axis.
23661847f8eSopenharmony_ci     *
23761847f8eSopenharmony_ci     * @type { ?number }
23861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
23961847f8eSopenharmony_ci     * @crossplatform
24061847f8eSopenharmony_ci     * @since 10
24161847f8eSopenharmony_ci     */
24261847f8eSopenharmony_ci    /**
24361847f8eSopenharmony_ci     * Zoom factor of the z-axis.
24461847f8eSopenharmony_ci     *
24561847f8eSopenharmony_ci     * @type { ?number }
24661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
24761847f8eSopenharmony_ci     * @crossplatform
24861847f8eSopenharmony_ci     * @atomicservice
24961847f8eSopenharmony_ci     * @since 11
25061847f8eSopenharmony_ci     */
25161847f8eSopenharmony_ci    z?: number;
25261847f8eSopenharmony_ci
25361847f8eSopenharmony_ci    /**
25461847f8eSopenharmony_ci     * Transform the x-axis coordinate of the center point.
25561847f8eSopenharmony_ci     *
25661847f8eSopenharmony_ci     * @type { ?number }
25761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
25861847f8eSopenharmony_ci     * @since 7
25961847f8eSopenharmony_ci     */
26061847f8eSopenharmony_ci    /**
26161847f8eSopenharmony_ci     * Transform the x-axis coordinate of the center point.
26261847f8eSopenharmony_ci     *
26361847f8eSopenharmony_ci     * @type { ?number }
26461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
26561847f8eSopenharmony_ci     * @crossplatform
26661847f8eSopenharmony_ci     * @since 10
26761847f8eSopenharmony_ci     */
26861847f8eSopenharmony_ci    /**
26961847f8eSopenharmony_ci     * Transform the x-axis coordinate of the center point.
27061847f8eSopenharmony_ci     *
27161847f8eSopenharmony_ci     * @type { ?number }
27261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
27361847f8eSopenharmony_ci     * @crossplatform
27461847f8eSopenharmony_ci     * @atomicservice
27561847f8eSopenharmony_ci     * @since 11
27661847f8eSopenharmony_ci     */
27761847f8eSopenharmony_ci    centerX?: number;
27861847f8eSopenharmony_ci
27961847f8eSopenharmony_ci    /**
28061847f8eSopenharmony_ci     * Transform the y-axis coordinate of the center point.
28161847f8eSopenharmony_ci     *
28261847f8eSopenharmony_ci     * @type { ?number }
28361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
28461847f8eSopenharmony_ci     * @since 7
28561847f8eSopenharmony_ci     */
28661847f8eSopenharmony_ci    /**
28761847f8eSopenharmony_ci     * Transform the y-axis coordinate of the center point.
28861847f8eSopenharmony_ci     *
28961847f8eSopenharmony_ci     * @type { ?number }
29061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
29161847f8eSopenharmony_ci     * @crossplatform
29261847f8eSopenharmony_ci     * @since 10
29361847f8eSopenharmony_ci     */
29461847f8eSopenharmony_ci    /**
29561847f8eSopenharmony_ci     * Transform the y-axis coordinate of the center point.
29661847f8eSopenharmony_ci     *
29761847f8eSopenharmony_ci     * @type { ?number }
29861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
29961847f8eSopenharmony_ci     * @crossplatform
30061847f8eSopenharmony_ci     * @atomicservice
30161847f8eSopenharmony_ci     * @since 11
30261847f8eSopenharmony_ci     */
30361847f8eSopenharmony_ci    centerY?: number;
30461847f8eSopenharmony_ci  }
30561847f8eSopenharmony_ci
30661847f8eSopenharmony_ci  /**
30761847f8eSopenharmony_ci   * Set Rotation Parameters.
30861847f8eSopenharmony_ci   *
30961847f8eSopenharmony_ci   * @interface RotateOption
31061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
31161847f8eSopenharmony_ci   * @since 7
31261847f8eSopenharmony_ci   */
31361847f8eSopenharmony_ci  /**
31461847f8eSopenharmony_ci   * Set Rotation Parameters.
31561847f8eSopenharmony_ci   *
31661847f8eSopenharmony_ci   * @interface RotateOption
31761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
31861847f8eSopenharmony_ci   * @crossplatform
31961847f8eSopenharmony_ci   * @since 10
32061847f8eSopenharmony_ci   */
32161847f8eSopenharmony_ci  /**
32261847f8eSopenharmony_ci   * Set Rotation Parameters.
32361847f8eSopenharmony_ci   *
32461847f8eSopenharmony_ci   * @interface RotateOption
32561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
32661847f8eSopenharmony_ci   * @crossplatform
32761847f8eSopenharmony_ci   * @atomicservice
32861847f8eSopenharmony_ci   * @since 11
32961847f8eSopenharmony_ci   */
33061847f8eSopenharmony_ci  interface RotateOption {
33161847f8eSopenharmony_ci    /**
33261847f8eSopenharmony_ci     * Axis of rotation vector x coordinate.
33361847f8eSopenharmony_ci     *
33461847f8eSopenharmony_ci     * @type { ?number }
33561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
33661847f8eSopenharmony_ci     * @since 7
33761847f8eSopenharmony_ci     */
33861847f8eSopenharmony_ci    /**
33961847f8eSopenharmony_ci     * Axis of rotation vector x coordinate.
34061847f8eSopenharmony_ci     *
34161847f8eSopenharmony_ci     * @type { ?number }
34261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
34361847f8eSopenharmony_ci     * @crossplatform
34461847f8eSopenharmony_ci     * @since 10
34561847f8eSopenharmony_ci     */
34661847f8eSopenharmony_ci    /**
34761847f8eSopenharmony_ci     * Axis of rotation vector x coordinate.
34861847f8eSopenharmony_ci     *
34961847f8eSopenharmony_ci     * @type { ?number }
35061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
35161847f8eSopenharmony_ci     * @crossplatform
35261847f8eSopenharmony_ci     * @atomicservice
35361847f8eSopenharmony_ci     * @since 11
35461847f8eSopenharmony_ci     */
35561847f8eSopenharmony_ci    x?: number;
35661847f8eSopenharmony_ci
35761847f8eSopenharmony_ci    /**
35861847f8eSopenharmony_ci     * Axis of rotation vector y coordinate.
35961847f8eSopenharmony_ci     *
36061847f8eSopenharmony_ci     * @type { ?number }
36161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
36261847f8eSopenharmony_ci     * @since 7
36361847f8eSopenharmony_ci     */
36461847f8eSopenharmony_ci    /**
36561847f8eSopenharmony_ci     * Axis of rotation vector y coordinate.
36661847f8eSopenharmony_ci     *
36761847f8eSopenharmony_ci     * @type { ?number }
36861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
36961847f8eSopenharmony_ci     * @crossplatform
37061847f8eSopenharmony_ci     * @since 10
37161847f8eSopenharmony_ci     */
37261847f8eSopenharmony_ci    /**
37361847f8eSopenharmony_ci     * Axis of rotation vector y coordinate.
37461847f8eSopenharmony_ci     *
37561847f8eSopenharmony_ci     * @type { ?number }
37661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
37761847f8eSopenharmony_ci     * @crossplatform
37861847f8eSopenharmony_ci     * @atomicservice
37961847f8eSopenharmony_ci     * @since 11
38061847f8eSopenharmony_ci     */
38161847f8eSopenharmony_ci    y?: number;
38261847f8eSopenharmony_ci
38361847f8eSopenharmony_ci    /**
38461847f8eSopenharmony_ci     * Axis of rotation vector z coordinate.
38561847f8eSopenharmony_ci     *
38661847f8eSopenharmony_ci     * @type { ?number }
38761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
38861847f8eSopenharmony_ci     * @since 7
38961847f8eSopenharmony_ci     */
39061847f8eSopenharmony_ci    /**
39161847f8eSopenharmony_ci     * Axis of rotation vector z coordinate.
39261847f8eSopenharmony_ci     *
39361847f8eSopenharmony_ci     * @type { ?number }
39461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
39561847f8eSopenharmony_ci     * @crossplatform
39661847f8eSopenharmony_ci     * @since 10
39761847f8eSopenharmony_ci     */
39861847f8eSopenharmony_ci    /**
39961847f8eSopenharmony_ci     * Axis of rotation vector z coordinate.
40061847f8eSopenharmony_ci     *
40161847f8eSopenharmony_ci     * @type { ?number }
40261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
40361847f8eSopenharmony_ci     * @crossplatform
40461847f8eSopenharmony_ci     * @atomicservice
40561847f8eSopenharmony_ci     * @since 11
40661847f8eSopenharmony_ci     */
40761847f8eSopenharmony_ci    z?: number;
40861847f8eSopenharmony_ci
40961847f8eSopenharmony_ci    /**
41061847f8eSopenharmony_ci     * Transform the x-axis coordinate of the center point.
41161847f8eSopenharmony_ci     *
41261847f8eSopenharmony_ci     * @type { ?number }
41361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
41461847f8eSopenharmony_ci     * @since 7
41561847f8eSopenharmony_ci     */
41661847f8eSopenharmony_ci    /**
41761847f8eSopenharmony_ci     * Transform the x-axis coordinate of the center point.
41861847f8eSopenharmony_ci     *
41961847f8eSopenharmony_ci     * @type { ?number }
42061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
42161847f8eSopenharmony_ci     * @crossplatform
42261847f8eSopenharmony_ci     * @since 10
42361847f8eSopenharmony_ci     */
42461847f8eSopenharmony_ci    /**
42561847f8eSopenharmony_ci     * Transform the x-axis coordinate of the center point.
42661847f8eSopenharmony_ci     *
42761847f8eSopenharmony_ci     * @type { ?number }
42861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
42961847f8eSopenharmony_ci     * @crossplatform
43061847f8eSopenharmony_ci     * @atomicservice
43161847f8eSopenharmony_ci     * @since 11
43261847f8eSopenharmony_ci     */
43361847f8eSopenharmony_ci    centerX?: number;
43461847f8eSopenharmony_ci
43561847f8eSopenharmony_ci    /**
43661847f8eSopenharmony_ci     * Transform the y-axis coordinate of the center point.
43761847f8eSopenharmony_ci     *
43861847f8eSopenharmony_ci     * @type { ?number }
43961847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
44061847f8eSopenharmony_ci     * @since 7
44161847f8eSopenharmony_ci     */
44261847f8eSopenharmony_ci    /**
44361847f8eSopenharmony_ci     * Transform the y-axis coordinate of the center point.
44461847f8eSopenharmony_ci     *
44561847f8eSopenharmony_ci     * @type { ?number }
44661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
44761847f8eSopenharmony_ci     * @crossplatform
44861847f8eSopenharmony_ci     * @since 10
44961847f8eSopenharmony_ci     */
45061847f8eSopenharmony_ci    /**
45161847f8eSopenharmony_ci     * Transform the y-axis coordinate of the center point.
45261847f8eSopenharmony_ci     *
45361847f8eSopenharmony_ci     * @type { ?number }
45461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
45561847f8eSopenharmony_ci     * @crossplatform
45661847f8eSopenharmony_ci     * @atomicservice
45761847f8eSopenharmony_ci     * @since 11
45861847f8eSopenharmony_ci     */
45961847f8eSopenharmony_ci    centerY?: number;
46061847f8eSopenharmony_ci
46161847f8eSopenharmony_ci    /**
46261847f8eSopenharmony_ci     * Rotation angle.
46361847f8eSopenharmony_ci     *
46461847f8eSopenharmony_ci     * @type { ?number }
46561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
46661847f8eSopenharmony_ci     * @since 7
46761847f8eSopenharmony_ci     */
46861847f8eSopenharmony_ci    /**
46961847f8eSopenharmony_ci     * Rotation angle.
47061847f8eSopenharmony_ci     *
47161847f8eSopenharmony_ci     * @type { ?number }
47261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
47361847f8eSopenharmony_ci     * @crossplatform
47461847f8eSopenharmony_ci     * @since 10
47561847f8eSopenharmony_ci     */
47661847f8eSopenharmony_ci    /**
47761847f8eSopenharmony_ci     * Rotation angle.
47861847f8eSopenharmony_ci     *
47961847f8eSopenharmony_ci     * @type { ?number }
48061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
48161847f8eSopenharmony_ci     * @crossplatform
48261847f8eSopenharmony_ci     * @atomicservice
48361847f8eSopenharmony_ci     * @since 11
48461847f8eSopenharmony_ci     */
48561847f8eSopenharmony_ci    angle?: number;
48661847f8eSopenharmony_ci  }
48761847f8eSopenharmony_ci
48861847f8eSopenharmony_ci
48961847f8eSopenharmony_ci  /**
49061847f8eSopenharmony_ci   * Set poly to poly point.
49161847f8eSopenharmony_ci   *
49261847f8eSopenharmony_ci   * @interface Point
49361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
49461847f8eSopenharmony_ci   * @crossplatform
49561847f8eSopenharmony_ci   * @atomicservice
49661847f8eSopenharmony_ci   * @since 12
49761847f8eSopenharmony_ci   */
49861847f8eSopenharmony_ci  export interface Point {
49961847f8eSopenharmony_ci
50061847f8eSopenharmony_ci    /**
50161847f8eSopenharmony_ci     * Point x.
50261847f8eSopenharmony_ci     *
50361847f8eSopenharmony_ci     * @type { number }
50461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
50561847f8eSopenharmony_ci     * @crossplatform
50661847f8eSopenharmony_ci     * @atomicservice
50761847f8eSopenharmony_ci     * @since 12
50861847f8eSopenharmony_ci     */
50961847f8eSopenharmony_ci    x: number;
51061847f8eSopenharmony_ci
51161847f8eSopenharmony_ci    /**
51261847f8eSopenharmony_ci     * Point y.
51361847f8eSopenharmony_ci     *
51461847f8eSopenharmony_ci     * @type { number }
51561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
51661847f8eSopenharmony_ci     * @crossplatform
51761847f8eSopenharmony_ci     * @atomicservice
51861847f8eSopenharmony_ci     * @since 12
51961847f8eSopenharmony_ci     */
52061847f8eSopenharmony_ci    y: number;
52161847f8eSopenharmony_ci  }
52261847f8eSopenharmony_ci
52361847f8eSopenharmony_ci  /**
52461847f8eSopenharmony_ci   * Set poly to poly point options.
52561847f8eSopenharmony_ci   *
52661847f8eSopenharmony_ci   * @interface PolyToPolyOptions
52761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
52861847f8eSopenharmony_ci   * @crossplatform
52961847f8eSopenharmony_ci   * @atomicservice
53061847f8eSopenharmony_ci   * @since 12
53161847f8eSopenharmony_ci   */
53261847f8eSopenharmony_ci  export interface PolyToPolyOptions {
53361847f8eSopenharmony_ci
53461847f8eSopenharmony_ci    /**
53561847f8eSopenharmony_ci     * Array of point coordinates for the source polygon.
53661847f8eSopenharmony_ci     *
53761847f8eSopenharmony_ci     * @type { Array<Point> }
53861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
53961847f8eSopenharmony_ci     * @crossplatform
54061847f8eSopenharmony_ci     * @atomicservice
54161847f8eSopenharmony_ci     * @since 12
54261847f8eSopenharmony_ci     */
54361847f8eSopenharmony_ci    src: Array<Point>;
54461847f8eSopenharmony_ci
54561847f8eSopenharmony_ci    /**
54661847f8eSopenharmony_ci     * Start point index of the source polygon, which defaults to 0.
54761847f8eSopenharmony_ci     * @type { ?number }
54861847f8eSopenharmony_ci     * @default 0
54961847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
55061847f8eSopenharmony_ci     * @crossplatform
55161847f8eSopenharmony_ci     * @atomicservice
55261847f8eSopenharmony_ci     * @since 12
55361847f8eSopenharmony_ci     */
55461847f8eSopenharmony_ci    srcIndex?: number;
55561847f8eSopenharmony_ci
55661847f8eSopenharmony_ci    /**
55761847f8eSopenharmony_ci     * Array of point coordinates for the target polygon.
55861847f8eSopenharmony_ci     *
55961847f8eSopenharmony_ci     * @type { Array<Point> }
56061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
56161847f8eSopenharmony_ci     * @crossplatform
56261847f8eSopenharmony_ci     * @atomicservice
56361847f8eSopenharmony_ci     * @since 12
56461847f8eSopenharmony_ci     */
56561847f8eSopenharmony_ci    dst:Array<Point>;
56661847f8eSopenharmony_ci
56761847f8eSopenharmony_ci    /**
56861847f8eSopenharmony_ci     * Start index of the target polygon, which defaults to 0.
56961847f8eSopenharmony_ci     *
57061847f8eSopenharmony_ci     * @type { ?number }
57161847f8eSopenharmony_ci     * @default src.Length/2
57261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
57361847f8eSopenharmony_ci     * @crossplatform
57461847f8eSopenharmony_ci     * @atomicservice
57561847f8eSopenharmony_ci     * @since 12
57661847f8eSopenharmony_ci     */
57761847f8eSopenharmony_ci    dstIndex?: number;
57861847f8eSopenharmony_ci
57961847f8eSopenharmony_ci    /**
58061847f8eSopenharmony_ci     * The number of points to be used.
58161847f8eSopenharmony_ci     * If it is 0, it returns the identity matrix.
58261847f8eSopenharmony_ci     * If it is 1, it returns a translation matrix that changed before two points.
58361847f8eSopenharmony_ci     * If it is 2-4, it returns a transformation matrix.
58461847f8eSopenharmony_ci     * @type { ?number }
58561847f8eSopenharmony_ci     * @default 0
58661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
58761847f8eSopenharmony_ci     * @crossplatform
58861847f8eSopenharmony_ci     * @atomicservice
58961847f8eSopenharmony_ci     * @since 12
59061847f8eSopenharmony_ci     */
59161847f8eSopenharmony_ci    pointCount?:number;
59261847f8eSopenharmony_ci
59361847f8eSopenharmony_ci  }
59461847f8eSopenharmony_ci  /**
59561847f8eSopenharmony_ci   * Matrix4Transit.
59661847f8eSopenharmony_ci   *
59761847f8eSopenharmony_ci   * @interface Matrix4Transit
59861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
59961847f8eSopenharmony_ci   * @since 7
60061847f8eSopenharmony_ci   */
60161847f8eSopenharmony_ci  /**
60261847f8eSopenharmony_ci   * Matrix4Transit.
60361847f8eSopenharmony_ci   *
60461847f8eSopenharmony_ci   * @interface Matrix4Transit
60561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
60661847f8eSopenharmony_ci   * @crossplatform
60761847f8eSopenharmony_ci   * @since 10
60861847f8eSopenharmony_ci   */
60961847f8eSopenharmony_ci  /**
61061847f8eSopenharmony_ci   * Matrix4Transit.
61161847f8eSopenharmony_ci   *
61261847f8eSopenharmony_ci   * @interface Matrix4Transit
61361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
61461847f8eSopenharmony_ci   * @crossplatform
61561847f8eSopenharmony_ci   * @atomicservice
61661847f8eSopenharmony_ci   * @since 11
61761847f8eSopenharmony_ci   */
61861847f8eSopenharmony_ci  interface Matrix4Transit {
61961847f8eSopenharmony_ci    /**
62061847f8eSopenharmony_ci     * Copy function of Matrix, which can copy a copy of the current matrix object.
62161847f8eSopenharmony_ci     *
62261847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
62361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
62461847f8eSopenharmony_ci     * @since 7
62561847f8eSopenharmony_ci     */
62661847f8eSopenharmony_ci    /**
62761847f8eSopenharmony_ci     * Copy function of Matrix, which can copy a copy of the current matrix object.
62861847f8eSopenharmony_ci     *
62961847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
63061847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
63161847f8eSopenharmony_ci     * @crossplatform
63261847f8eSopenharmony_ci     * @since 10
63361847f8eSopenharmony_ci     */
63461847f8eSopenharmony_ci    /**
63561847f8eSopenharmony_ci     * Copy function of Matrix, which can copy a copy of the current matrix object.
63661847f8eSopenharmony_ci     *
63761847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
63861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
63961847f8eSopenharmony_ci     * @crossplatform
64061847f8eSopenharmony_ci     * @atomicservice
64161847f8eSopenharmony_ci     * @since 11
64261847f8eSopenharmony_ci     */
64361847f8eSopenharmony_ci    copy(): Matrix4Transit;
64461847f8eSopenharmony_ci
64561847f8eSopenharmony_ci    /**
64661847f8eSopenharmony_ci     * The inverse function of Matrix returns an inverse matrix of the current matrix object, that is, the effect is exactly the opposite.
64761847f8eSopenharmony_ci     *
64861847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
64961847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
65061847f8eSopenharmony_ci     * @since 7
65161847f8eSopenharmony_ci     */
65261847f8eSopenharmony_ci    /**
65361847f8eSopenharmony_ci     * The inverse function of Matrix returns an inverse matrix of the current matrix object, that is, the effect is exactly the opposite.
65461847f8eSopenharmony_ci     *
65561847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
65661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
65761847f8eSopenharmony_ci     * @crossplatform
65861847f8eSopenharmony_ci     * @since 10
65961847f8eSopenharmony_ci     */
66061847f8eSopenharmony_ci    /**
66161847f8eSopenharmony_ci     * The inverse function of Matrix returns an inverse matrix of the current matrix object, that is, the effect is exactly the opposite.
66261847f8eSopenharmony_ci     *
66361847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
66461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
66561847f8eSopenharmony_ci     * @crossplatform
66661847f8eSopenharmony_ci     * @atomicservice
66761847f8eSopenharmony_ci     * @since 11
66861847f8eSopenharmony_ci     */
66961847f8eSopenharmony_ci    invert(): Matrix4Transit;
67061847f8eSopenharmony_ci
67161847f8eSopenharmony_ci    /**
67261847f8eSopenharmony_ci     * Matrix superposition function, which can superpose the effects of two matrices to generate a new matrix object.
67361847f8eSopenharmony_ci     *
67461847f8eSopenharmony_ci     * @param { Matrix4Transit } options
67561847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
67661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
67761847f8eSopenharmony_ci     * @since 7
67861847f8eSopenharmony_ci     */
67961847f8eSopenharmony_ci    /**
68061847f8eSopenharmony_ci     * Matrix superposition function, which can superpose the effects of two matrices to generate a new matrix object.
68161847f8eSopenharmony_ci     *
68261847f8eSopenharmony_ci     * @param { Matrix4Transit } options
68361847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
68461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
68561847f8eSopenharmony_ci     * @crossplatform
68661847f8eSopenharmony_ci     * @since 10
68761847f8eSopenharmony_ci     */
68861847f8eSopenharmony_ci    /**
68961847f8eSopenharmony_ci     * Matrix superposition function, which can superpose the effects of two matrices to generate a new matrix object.
69061847f8eSopenharmony_ci     *
69161847f8eSopenharmony_ci     * @param { Matrix4Transit } options
69261847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
69361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
69461847f8eSopenharmony_ci     * @crossplatform
69561847f8eSopenharmony_ci     * @atomicservice
69661847f8eSopenharmony_ci     * @since 11
69761847f8eSopenharmony_ci     */
69861847f8eSopenharmony_ci    combine(options: Matrix4Transit): Matrix4Transit;
69961847f8eSopenharmony_ci
70061847f8eSopenharmony_ci    /**
70161847f8eSopenharmony_ci     * Matrix translation function, which can add the x-axis, Y-axis, or Z-axis translation effect to the current matrix.
70261847f8eSopenharmony_ci     *
70361847f8eSopenharmony_ci     * @param { TranslateOption } options
70461847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
70561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
70661847f8eSopenharmony_ci     * @since 7
70761847f8eSopenharmony_ci     */
70861847f8eSopenharmony_ci    /**
70961847f8eSopenharmony_ci     * Matrix translation function, which can add the x-axis, Y-axis, or Z-axis translation effect to the current matrix.
71061847f8eSopenharmony_ci     *
71161847f8eSopenharmony_ci     * @param { TranslateOption } options
71261847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
71361847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
71461847f8eSopenharmony_ci     * @crossplatform
71561847f8eSopenharmony_ci     * @since 10
71661847f8eSopenharmony_ci     */
71761847f8eSopenharmony_ci    /**
71861847f8eSopenharmony_ci     * Matrix translation function, which can add the x-axis, Y-axis, or Z-axis translation effect to the current matrix.
71961847f8eSopenharmony_ci     *
72061847f8eSopenharmony_ci     * @param { TranslateOption } options
72161847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
72261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
72361847f8eSopenharmony_ci     * @crossplatform
72461847f8eSopenharmony_ci     * @atomicservice
72561847f8eSopenharmony_ci     * @since 11
72661847f8eSopenharmony_ci     */
72761847f8eSopenharmony_ci    translate(options: TranslateOption): Matrix4Transit;
72861847f8eSopenharmony_ci
72961847f8eSopenharmony_ci    /**
73061847f8eSopenharmony_ci     * Scaling function of the Matrix, which can add the x-axis, Y-axis, or Z-axis scaling effect to the current matrix.
73161847f8eSopenharmony_ci     *
73261847f8eSopenharmony_ci     * @param { ScaleOption } options
73361847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
73461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
73561847f8eSopenharmony_ci     * @since 7
73661847f8eSopenharmony_ci     */
73761847f8eSopenharmony_ci    /**
73861847f8eSopenharmony_ci     * Scaling function of the Matrix, which can add the x-axis, Y-axis, or Z-axis scaling effect to the current matrix.
73961847f8eSopenharmony_ci     *
74061847f8eSopenharmony_ci     * @param { ScaleOption } options
74161847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
74261847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
74361847f8eSopenharmony_ci     * @crossplatform
74461847f8eSopenharmony_ci     * @since 10
74561847f8eSopenharmony_ci     */
74661847f8eSopenharmony_ci    /**
74761847f8eSopenharmony_ci     * Scaling function of the Matrix, which can add the x-axis, Y-axis, or Z-axis scaling effect to the current matrix.
74861847f8eSopenharmony_ci     *
74961847f8eSopenharmony_ci     * @param { ScaleOption } options
75061847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
75161847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
75261847f8eSopenharmony_ci     * @crossplatform
75361847f8eSopenharmony_ci     * @atomicservice
75461847f8eSopenharmony_ci     * @since 11
75561847f8eSopenharmony_ci     */
75661847f8eSopenharmony_ci    scale(options: ScaleOption): Matrix4Transit;
75761847f8eSopenharmony_ci
75861847f8eSopenharmony_ci    /**
75961847f8eSopenharmony_ci     * Skew function of the Matrix, which can add the x-axis, y-axis skew effect to the current matrix.
76061847f8eSopenharmony_ci     * Skew function takes a generic point with coordinates (x0, y0, z0) to the point (x0 + x*y0, y0 + y*x0, z0), 
76161847f8eSopenharmony_ci     * where x, y are fixed parameters, called the shear factors.
76261847f8eSopenharmony_ci     *
76361847f8eSopenharmony_ci     * @param { number } x - the shear factor of x-axis.
76461847f8eSopenharmony_ci     * @param { number } y - the shear factor of y-axis.
76561847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
76661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
76761847f8eSopenharmony_ci     * @crossplatform
76861847f8eSopenharmony_ci     * @atomicservice
76961847f8eSopenharmony_ci     * @since 12
77061847f8eSopenharmony_ci     */
77161847f8eSopenharmony_ci    skew(x: number, y: number): Matrix4Transit;
77261847f8eSopenharmony_ci
77361847f8eSopenharmony_ci    /**
77461847f8eSopenharmony_ci     * Rotation function of the Matrix. You can add the x-axis, Y-axis, or Z-axis rotation effect to the current matrix.
77561847f8eSopenharmony_ci     *
77661847f8eSopenharmony_ci     * @param { RotateOption } options
77761847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
77861847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
77961847f8eSopenharmony_ci     * @since 7
78061847f8eSopenharmony_ci     */
78161847f8eSopenharmony_ci    /**
78261847f8eSopenharmony_ci     * Rotation function of the Matrix. You can add the x-axis, Y-axis, or Z-axis rotation effect to the current matrix.
78361847f8eSopenharmony_ci     *
78461847f8eSopenharmony_ci     * @param { RotateOption } options
78561847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
78661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
78761847f8eSopenharmony_ci     * @crossplatform
78861847f8eSopenharmony_ci     * @since 10
78961847f8eSopenharmony_ci     */
79061847f8eSopenharmony_ci    /**
79161847f8eSopenharmony_ci     * Rotation function of the Matrix. You can add the x-axis, Y-axis, or Z-axis rotation effect to the current matrix.
79261847f8eSopenharmony_ci     *
79361847f8eSopenharmony_ci     * @param { RotateOption } options
79461847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
79561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
79661847f8eSopenharmony_ci     * @crossplatform
79761847f8eSopenharmony_ci     * @atomicservice
79861847f8eSopenharmony_ci     * @since 11
79961847f8eSopenharmony_ci     */
80061847f8eSopenharmony_ci    rotate(options: RotateOption): Matrix4Transit;
80161847f8eSopenharmony_ci
80261847f8eSopenharmony_ci    /**
80361847f8eSopenharmony_ci     * Matrix coordinate point conversion function, which can apply the current transformation effect to a coordinate point.
80461847f8eSopenharmony_ci     *
80561847f8eSopenharmony_ci     * @param { [number, number] } options
80661847f8eSopenharmony_ci     * @returns { [number, number] } Return to Matrix4Transit
80761847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
80861847f8eSopenharmony_ci     * @since 7
80961847f8eSopenharmony_ci     */
81061847f8eSopenharmony_ci    /**
81161847f8eSopenharmony_ci     * Matrix coordinate point conversion function, which can apply the current transformation effect to a coordinate point.
81261847f8eSopenharmony_ci     *
81361847f8eSopenharmony_ci     * @param { [number, number] } options
81461847f8eSopenharmony_ci     * @returns { [number, number] } Return to Matrix4Transit
81561847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
81661847f8eSopenharmony_ci     * @crossplatform
81761847f8eSopenharmony_ci     * @since 10
81861847f8eSopenharmony_ci     */
81961847f8eSopenharmony_ci    /**
82061847f8eSopenharmony_ci     * Matrix coordinate point conversion function, which can apply the current transformation effect to a coordinate point.
82161847f8eSopenharmony_ci     *
82261847f8eSopenharmony_ci     * @param { [number, number] } options
82361847f8eSopenharmony_ci     * @returns { [number, number] } Return to Matrix4Transit
82461847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
82561847f8eSopenharmony_ci     * @crossplatform
82661847f8eSopenharmony_ci     * @atomicservice
82761847f8eSopenharmony_ci     * @since 11
82861847f8eSopenharmony_ci     */
82961847f8eSopenharmony_ci    transformPoint(options: [number, number]): [number, number];
83061847f8eSopenharmony_ci
83161847f8eSopenharmony_ci    /**
83261847f8eSopenharmony_ci     * Sets matrix to map src to dst.
83361847f8eSopenharmony_ci     *
83461847f8eSopenharmony_ci     * @param { PolyToPolyOptions } options - polyToPoly options
83561847f8eSopenharmony_ci     * @returns { Matrix4Transit } Return to Matrix4Transit
83661847f8eSopenharmony_ci     * @syscap SystemCapability.ArkUI.ArkUI.Full
83761847f8eSopenharmony_ci     * @crossplatform
83861847f8eSopenharmony_ci     * @atomicservice
83961847f8eSopenharmony_ci     * @since 12
84061847f8eSopenharmony_ci     */
84161847f8eSopenharmony_ci    setPolyToPoly(options: PolyToPolyOptions): Matrix4Transit
84261847f8eSopenharmony_ci
84361847f8eSopenharmony_ci  }
84461847f8eSopenharmony_ci
84561847f8eSopenharmony_ci  /**
84661847f8eSopenharmony_ci   * Constructor of Matrix, which can create a fourth-order matrix based on the input parameters. The matrix is column-first.
84761847f8eSopenharmony_ci   *
84861847f8eSopenharmony_ci   * @param { [number,number,number,number,number,number,number,number,number,number,number,number,number,number,number,number] } options
84961847f8eSopenharmony_ci   * options indicates a fourth-order matrix
85061847f8eSopenharmony_ci   * The default value:
85161847f8eSopenharmony_ci   * [1, 0, 0, 0,
85261847f8eSopenharmony_ci   * 0, 1, 0, 0,
85361847f8eSopenharmony_ci   * 0, 0, 1, 0,
85461847f8eSopenharmony_ci   * 0, 0, 0, 1]
85561847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
85661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
85761847f8eSopenharmony_ci   * @since 7
85861847f8eSopenharmony_ci   */
85961847f8eSopenharmony_ci  /**
86061847f8eSopenharmony_ci   * Constructor of Matrix, which can create a fourth-order matrix based on the input parameters. The matrix is column-first.
86161847f8eSopenharmony_ci   *
86261847f8eSopenharmony_ci   * @param { [number,number,number,number,number,number,number,number,number,number,number,number,number,number,number,number] } options
86361847f8eSopenharmony_ci   * options indicates a fourth-order matrix
86461847f8eSopenharmony_ci   * The default value:
86561847f8eSopenharmony_ci   * [1, 0, 0, 0,
86661847f8eSopenharmony_ci   * 0, 1, 0, 0,
86761847f8eSopenharmony_ci   * 0, 0, 1, 0,
86861847f8eSopenharmony_ci   * 0, 0, 0, 1]
86961847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
87061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
87161847f8eSopenharmony_ci   * @crossplatform
87261847f8eSopenharmony_ci   * @since 10
87361847f8eSopenharmony_ci   */
87461847f8eSopenharmony_ci  /**
87561847f8eSopenharmony_ci   * Constructor of Matrix, which can create a fourth-order matrix based on the input parameters. The matrix is column-first.
87661847f8eSopenharmony_ci   *
87761847f8eSopenharmony_ci   * @param { [number,number,number,number,number,number,number,number,number,number,number,number,number,number,number,number] } options
87861847f8eSopenharmony_ci   * options indicates a fourth-order matrix
87961847f8eSopenharmony_ci   * The default value:
88061847f8eSopenharmony_ci   * [1, 0, 0, 0,
88161847f8eSopenharmony_ci   * 0, 1, 0, 0,
88261847f8eSopenharmony_ci   * 0, 0, 1, 0,
88361847f8eSopenharmony_ci   * 0, 0, 0, 1]
88461847f8eSopenharmony_ci   * Fourth-order matrix notes:
88561847f8eSopenharmony_ci   * m00 { number } -The x-axis scale value, the identity matrix defaults to 1.
88661847f8eSopenharmony_ci   * m01 { number } -The second value, the rotation of the xyz axis affects this value.
88761847f8eSopenharmony_ci   * m02 { number } -The third value, the rotation of the xyz axis affects this value.
88861847f8eSopenharmony_ci   * m03 { number } -Meaningless.
88961847f8eSopenharmony_ci   * m10 { number } -The fifth value, the rotation of the xyz axis affects this value.
89061847f8eSopenharmony_ci   * m11 { number } -The y-axis scales the value, and the identity matrix defaults to 1.
89161847f8eSopenharmony_ci   * m12 { number } -The 7th value, the rotation of the xyz axis affects this value.
89261847f8eSopenharmony_ci   * m13 { number } -Meaningless.
89361847f8eSopenharmony_ci   * m20 { number } -The 9th value, the rotation of the xyz axis affects this value.
89461847f8eSopenharmony_ci   * m21 { number } -The 10th value, xyz axis rotation affects this value.
89561847f8eSopenharmony_ci   * m22 { number } -The z-axis scale value, the identity matrix defaults to 1.
89661847f8eSopenharmony_ci   * m23 { number } -Meaningless.
89761847f8eSopenharmony_ci   * m30 { number } -The x-axis translation value in px, the identity matrix defaults to 0.
89861847f8eSopenharmony_ci   * m31 { number } -Y-axis translation value, in px, the identity matrix defaults to 0.
89961847f8eSopenharmony_ci   * m32 { number } -The z-axis translation value in px, the identity matrix defaults to 0.
90061847f8eSopenharmony_ci   * m33 { number } -It takes effect in homogeneous coordinates to produce a perspective projection effect.
90161847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
90261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
90361847f8eSopenharmony_ci   * @crossplatform
90461847f8eSopenharmony_ci   * @atomicservice
90561847f8eSopenharmony_ci   * @since 11
90661847f8eSopenharmony_ci   */
90761847f8eSopenharmony_ci  /**
90861847f8eSopenharmony_ci   * Constructor of Matrix, which can create a fourth-order matrix based on the input parameters. The matrix is column-first.
90961847f8eSopenharmony_ci   *
91061847f8eSopenharmony_ci   * @param { [number,number,number,number,number,number,number,number,number,number,number,number,number,number,number,number] } options
91161847f8eSopenharmony_ci   * options indicates a fourth-order matrix
91261847f8eSopenharmony_ci   * The default value:
91361847f8eSopenharmony_ci   * [1, 0, 0, 0,
91461847f8eSopenharmony_ci   * 0, 1, 0, 0,
91561847f8eSopenharmony_ci   * 0, 0, 1, 0,
91661847f8eSopenharmony_ci   * 0, 0, 0, 1]
91761847f8eSopenharmony_ci   * Fourth-order matrix notes:
91861847f8eSopenharmony_ci   * m00 { number } -The x-axis scale value, the identity matrix defaults to 1.
91961847f8eSopenharmony_ci   * m01 { number } -The second value, the rotation and skew of the xyz axis affects this value.
92061847f8eSopenharmony_ci   * m02 { number } -The third value, the rotation of the xyz axis affects this value.
92161847f8eSopenharmony_ci   * m03 { number } -The fourth value, the perspective projection affects this value.
92261847f8eSopenharmony_ci   * m10 { number } -The fifth value, the rotation and skew of the xyz axis affects this value.
92361847f8eSopenharmony_ci   * m11 { number } -The y-axis scales the value, and the identity matrix defaults to 1.
92461847f8eSopenharmony_ci   * m12 { number } -The 7th value, the rotation of the xyz axis affects this value.
92561847f8eSopenharmony_ci   * m13 { number } -The 8th value, the perspective projection affects this value.
92661847f8eSopenharmony_ci   * m20 { number } -The 9th value, the rotation of the xyz axis affects this value.
92761847f8eSopenharmony_ci   * m21 { number } -The 10th value, xyz axis rotation affects this value.
92861847f8eSopenharmony_ci   * m22 { number } -The z-axis scale value, the identity matrix defaults to 1.
92961847f8eSopenharmony_ci   * m23 { number } -The 12th value, the perspective projection affects this value.
93061847f8eSopenharmony_ci   * m30 { number } -The x-axis translation value in px, the identity matrix defaults to 0.
93161847f8eSopenharmony_ci   * m31 { number } -Y-axis translation value, in px, the identity matrix defaults to 0.
93261847f8eSopenharmony_ci   * m32 { number } -The z-axis translation value in px, the identity matrix defaults to 0.
93361847f8eSopenharmony_ci   * m33 { number } -It takes effect in homogeneous coordinates to produce a perspective projection effect.
93461847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
93561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
93661847f8eSopenharmony_ci   * @crossplatform
93761847f8eSopenharmony_ci   * @atomicservice
93861847f8eSopenharmony_ci   * @since 12
93961847f8eSopenharmony_ci   */
94061847f8eSopenharmony_ci  function init(
94161847f8eSopenharmony_ci    options: [
94261847f8eSopenharmony_ci      number,
94361847f8eSopenharmony_ci      number,
94461847f8eSopenharmony_ci      number,
94561847f8eSopenharmony_ci      number,
94661847f8eSopenharmony_ci      number,
94761847f8eSopenharmony_ci      number,
94861847f8eSopenharmony_ci      number,
94961847f8eSopenharmony_ci      number,
95061847f8eSopenharmony_ci      number,
95161847f8eSopenharmony_ci      number,
95261847f8eSopenharmony_ci      number,
95361847f8eSopenharmony_ci      number,
95461847f8eSopenharmony_ci      number,
95561847f8eSopenharmony_ci      number,
95661847f8eSopenharmony_ci      number,
95761847f8eSopenharmony_ci      number
95861847f8eSopenharmony_ci    ]
95961847f8eSopenharmony_ci  ): Matrix4Transit;
96061847f8eSopenharmony_ci
96161847f8eSopenharmony_ci  /**
96261847f8eSopenharmony_ci   * Matrix initialization function, which can return an identity matrix object.
96361847f8eSopenharmony_ci   *
96461847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
96561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
96661847f8eSopenharmony_ci   * @since 7
96761847f8eSopenharmony_ci   */
96861847f8eSopenharmony_ci  /**
96961847f8eSopenharmony_ci   * Matrix initialization function, which can return an identity matrix object.
97061847f8eSopenharmony_ci   *
97161847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
97261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
97361847f8eSopenharmony_ci   * @crossplatform
97461847f8eSopenharmony_ci   * @since 10
97561847f8eSopenharmony_ci   */
97661847f8eSopenharmony_ci  /**
97761847f8eSopenharmony_ci   * Matrix initialization function, which can return an identity matrix object.
97861847f8eSopenharmony_ci   *
97961847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
98061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
98161847f8eSopenharmony_ci   * @crossplatform
98261847f8eSopenharmony_ci   * @atomicservice
98361847f8eSopenharmony_ci   * @since 11
98461847f8eSopenharmony_ci   */
98561847f8eSopenharmony_ci  function identity(): Matrix4Transit;
98661847f8eSopenharmony_ci
98761847f8eSopenharmony_ci  /**
98861847f8eSopenharmony_ci   * Copy function of Matrix, which can copy a copy of the current matrix object.
98961847f8eSopenharmony_ci   *
99061847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
99161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
99261847f8eSopenharmony_ci   * @since 7
99361847f8eSopenharmony_ci   * @deprecated since 10
99461847f8eSopenharmony_ci   */
99561847f8eSopenharmony_ci  function copy(): Matrix4Transit;
99661847f8eSopenharmony_ci
99761847f8eSopenharmony_ci  /**
99861847f8eSopenharmony_ci   * The inverse function of Matrix returns an inverse matrix of the current matrix object, that is, the effect is exactly the opposite.
99961847f8eSopenharmony_ci   *
100061847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
100161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
100261847f8eSopenharmony_ci   * @since 7
100361847f8eSopenharmony_ci   * @deprecated since 10
100461847f8eSopenharmony_ci   */
100561847f8eSopenharmony_ci  function invert(): Matrix4Transit;
100661847f8eSopenharmony_ci
100761847f8eSopenharmony_ci  /**
100861847f8eSopenharmony_ci   * Matrix superposition function, which can superpose the effects of two matrices to generate a new matrix object.
100961847f8eSopenharmony_ci   *
101061847f8eSopenharmony_ci   * @param { Matrix4Transit } options
101161847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
101261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
101361847f8eSopenharmony_ci   * @since 7
101461847f8eSopenharmony_ci   * @deprecated since 10
101561847f8eSopenharmony_ci   */
101661847f8eSopenharmony_ci  function combine(options: Matrix4Transit): Matrix4Transit;
101761847f8eSopenharmony_ci
101861847f8eSopenharmony_ci  /**
101961847f8eSopenharmony_ci   * Matrix translation function, which can add the x-axis, Y-axis, or Z-axis translation effect to the current matrix.
102061847f8eSopenharmony_ci   *
102161847f8eSopenharmony_ci   * @param { TranslateOption } options
102261847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
102361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
102461847f8eSopenharmony_ci   * @since 7
102561847f8eSopenharmony_ci   * @deprecated since 10
102661847f8eSopenharmony_ci   */
102761847f8eSopenharmony_ci  function translate(options: TranslateOption): Matrix4Transit;
102861847f8eSopenharmony_ci
102961847f8eSopenharmony_ci  /**
103061847f8eSopenharmony_ci   * Scaling function of the Matrix, which can add the x-axis, Y-axis, or Z-axis scaling effect to the current matrix.
103161847f8eSopenharmony_ci   *
103261847f8eSopenharmony_ci   * @param { ScaleOption } options
103361847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
103461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
103561847f8eSopenharmony_ci   * @since 7
103661847f8eSopenharmony_ci   * @deprecated since 10
103761847f8eSopenharmony_ci   */
103861847f8eSopenharmony_ci  function scale(options: ScaleOption): Matrix4Transit;
103961847f8eSopenharmony_ci
104061847f8eSopenharmony_ci  /**
104161847f8eSopenharmony_ci   * Rotation function of the Matrix. You can add the x-axis, Y-axis, or Z-axis rotation effect to the current matrix.
104261847f8eSopenharmony_ci   *
104361847f8eSopenharmony_ci   * @param { RotateOption } options
104461847f8eSopenharmony_ci   * @returns { Matrix4Transit } Return to Matrix4Transit
104561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
104661847f8eSopenharmony_ci   * @since 7
104761847f8eSopenharmony_ci   * @deprecated since 10
104861847f8eSopenharmony_ci   */
104961847f8eSopenharmony_ci  function rotate(options: RotateOption): Matrix4Transit;
105061847f8eSopenharmony_ci
105161847f8eSopenharmony_ci  /**
105261847f8eSopenharmony_ci   * Matrix coordinate point conversion function, which can apply the current transformation effect to a coordinate point.
105361847f8eSopenharmony_ci   *
105461847f8eSopenharmony_ci   * @param { [number, number] } options
105561847f8eSopenharmony_ci   * @returns { [number, number] } Return to Matrix4Transit
105661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
105761847f8eSopenharmony_ci   * @since 7
105861847f8eSopenharmony_ci   * @deprecated since 10
105961847f8eSopenharmony_ci   */
106061847f8eSopenharmony_ci  function transformPoint(options: [number, number]): [number, number];
106161847f8eSopenharmony_ci}
106261847f8eSopenharmony_ci
106361847f8eSopenharmony_ciexport default matrix4;
1064