161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2024-2024 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 Defines 3D node related interfaces
1861847f8eSopenharmony_ci * @kit ArkGraphics3D
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport { SceneResource, Mesh } from './SceneResources';
2261847f8eSopenharmony_ciimport { Position3, Quaternion, Scale3, Color } from './SceneTypes';
2361847f8eSopenharmony_ciimport { PostProcessSettings } from './ScenePostProcessSettings';
2461847f8eSopenharmony_ci
2561847f8eSopenharmony_ci/**
2661847f8eSopenharmony_ci * Defines the layer mask of the node.
2761847f8eSopenharmony_ci *
2861847f8eSopenharmony_ci * @interface LayerMask
2961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
3061847f8eSopenharmony_ci * @since 12
3161847f8eSopenharmony_ci */
3261847f8eSopenharmony_ciexport interface LayerMask {
3361847f8eSopenharmony_ci  /**
3461847f8eSopenharmony_ci   * Get whether layer mask is enabled.
3561847f8eSopenharmony_ci   *
3661847f8eSopenharmony_ci   * @param { number } index - the layer mask
3761847f8eSopenharmony_ci   * @returns { boolean } whether layer mask is enabled 
3861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
3961847f8eSopenharmony_ci   * @since 12
4061847f8eSopenharmony_ci   */
4161847f8eSopenharmony_ci  getEnabled(index: number): boolean;
4261847f8eSopenharmony_ci
4361847f8eSopenharmony_ci  /**
4461847f8eSopenharmony_ci   * Set whether the layer mask is enabled.
4561847f8eSopenharmony_ci   *
4661847f8eSopenharmony_ci   * @param { number } index - the layer mask
4761847f8eSopenharmony_ci   * @param { boolean } enabled - whether layer mask is enabled
4861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
4961847f8eSopenharmony_ci   * @since 12
5061847f8eSopenharmony_ci   */
5161847f8eSopenharmony_ci  setEnabled(index: number, enabled: boolean): void;
5261847f8eSopenharmony_ci}
5361847f8eSopenharmony_ci
5461847f8eSopenharmony_ci/**
5561847f8eSopenharmony_ci * The enum of node type.
5661847f8eSopenharmony_ci *
5761847f8eSopenharmony_ci * @enum { number }
5861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
5961847f8eSopenharmony_ci * @since 12
6061847f8eSopenharmony_ci */
6161847f8eSopenharmony_ciexport enum NodeType {
6261847f8eSopenharmony_ci  /**
6361847f8eSopenharmony_ci   * The node is an empty node.
6461847f8eSopenharmony_ci   *
6561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
6661847f8eSopenharmony_ci   * @since 12
6761847f8eSopenharmony_ci   */
6861847f8eSopenharmony_ci  NODE = 1,
6961847f8eSopenharmony_ci
7061847f8eSopenharmony_ci  /**
7161847f8eSopenharmony_ci   * The node is a geometry node.
7261847f8eSopenharmony_ci   *
7361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
7461847f8eSopenharmony_ci   * @since 12
7561847f8eSopenharmony_ci   */
7661847f8eSopenharmony_ci  GEOMETRY = 2,
7761847f8eSopenharmony_ci
7861847f8eSopenharmony_ci  /**
7961847f8eSopenharmony_ci   * The node is a camera node.
8061847f8eSopenharmony_ci   *
8161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
8261847f8eSopenharmony_ci   * @since 12
8361847f8eSopenharmony_ci   */
8461847f8eSopenharmony_ci  CAMERA = 3,
8561847f8eSopenharmony_ci
8661847f8eSopenharmony_ci  /**
8761847f8eSopenharmony_ci   * The node is a light node.
8861847f8eSopenharmony_ci   *
8961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
9061847f8eSopenharmony_ci   * @since 12
9161847f8eSopenharmony_ci   */
9261847f8eSopenharmony_ci  LIGHT = 4
9361847f8eSopenharmony_ci}
9461847f8eSopenharmony_ci
9561847f8eSopenharmony_ci/**
9661847f8eSopenharmony_ci * Defines a scene object container.
9761847f8eSopenharmony_ci *
9861847f8eSopenharmony_ci * @interface Container
9961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
10061847f8eSopenharmony_ci * @since 12
10161847f8eSopenharmony_ci */
10261847f8eSopenharmony_ciexport interface Container<T> {
10361847f8eSopenharmony_ci  /**
10461847f8eSopenharmony_ci   * Append a item to the container.
10561847f8eSopenharmony_ci   *
10661847f8eSopenharmony_ci   * @param { T } item - the item append to the end of container
10761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
10861847f8eSopenharmony_ci   * @since 12
10961847f8eSopenharmony_ci   */
11061847f8eSopenharmony_ci  append(item: T): void;
11161847f8eSopenharmony_ci
11261847f8eSopenharmony_ci  /**
11361847f8eSopenharmony_ci   * Insert a item.
11461847f8eSopenharmony_ci   *
11561847f8eSopenharmony_ci   * @param { T } item - the item insert to the container
11661847f8eSopenharmony_ci   * @param { T | null } sibling - insert after this item, insert to the head if sibling is null
11761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
11861847f8eSopenharmony_ci   * @since 12
11961847f8eSopenharmony_ci   */
12061847f8eSopenharmony_ci  insertAfter(item: T, sibling: T | null): void;
12161847f8eSopenharmony_ci
12261847f8eSopenharmony_ci  /**
12361847f8eSopenharmony_ci   * Remove a item from Container's children.
12461847f8eSopenharmony_ci   *
12561847f8eSopenharmony_ci   * @param { T } item - the item to be removed
12661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
12761847f8eSopenharmony_ci   * @since 12
12861847f8eSopenharmony_ci   */
12961847f8eSopenharmony_ci  remove(item: T): void;
13061847f8eSopenharmony_ci
13161847f8eSopenharmony_ci  /**
13261847f8eSopenharmony_ci   * Returns a child at given index from this Container's child list.
13361847f8eSopenharmony_ci   *
13461847f8eSopenharmony_ci   * @param { number } index - the index of the child to return
13561847f8eSopenharmony_ci   * @returns { T | null } return the item specified by the index
13661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
13761847f8eSopenharmony_ci   * @since 12
13861847f8eSopenharmony_ci   */
13961847f8eSopenharmony_ci  get(index: number): T | null;
14061847f8eSopenharmony_ci
14161847f8eSopenharmony_ci  /**
14261847f8eSopenharmony_ci   * Clear all children.
14361847f8eSopenharmony_ci   *
14461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
14561847f8eSopenharmony_ci   * @since 12
14661847f8eSopenharmony_ci   */
14761847f8eSopenharmony_ci  clear(): void;
14861847f8eSopenharmony_ci
14961847f8eSopenharmony_ci  /**
15061847f8eSopenharmony_ci   * Returns the number of items in the container.
15161847f8eSopenharmony_ci   *
15261847f8eSopenharmony_ci   * @returns { number } the number of the container
15361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
15461847f8eSopenharmony_ci   * @since 12
15561847f8eSopenharmony_ci   */
15661847f8eSopenharmony_ci  count(): number;
15761847f8eSopenharmony_ci}
15861847f8eSopenharmony_ci
15961847f8eSopenharmony_ci/**
16061847f8eSopenharmony_ci * Defines Node interface.
16161847f8eSopenharmony_ci *
16261847f8eSopenharmony_ci * @interface Node
16361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
16461847f8eSopenharmony_ci * @since 12
16561847f8eSopenharmony_ci */
16661847f8eSopenharmony_ciexport interface Node extends SceneResource {
16761847f8eSopenharmony_ci  /**
16861847f8eSopenharmony_ci   * position of the node.
16961847f8eSopenharmony_ci   *
17061847f8eSopenharmony_ci   * @type { Position3 }
17161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
17261847f8eSopenharmony_ci   * @since 12
17361847f8eSopenharmony_ci   */
17461847f8eSopenharmony_ci  position: Position3;
17561847f8eSopenharmony_ci
17661847f8eSopenharmony_ci  /**
17761847f8eSopenharmony_ci   * Rotation of the node.
17861847f8eSopenharmony_ci   *
17961847f8eSopenharmony_ci   * @type { Quaternion }
18061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
18161847f8eSopenharmony_ci   * @since 12
18261847f8eSopenharmony_ci   */
18361847f8eSopenharmony_ci  rotation: Quaternion;
18461847f8eSopenharmony_ci
18561847f8eSopenharmony_ci  /**
18661847f8eSopenharmony_ci   * Scale of the node.
18761847f8eSopenharmony_ci   *
18861847f8eSopenharmony_ci   * @type { Scale3 }
18961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
19061847f8eSopenharmony_ci   * @since 12
19161847f8eSopenharmony_ci   */
19261847f8eSopenharmony_ci  scale: Scale3;
19361847f8eSopenharmony_ci
19461847f8eSopenharmony_ci  /**
19561847f8eSopenharmony_ci   * Visibility flag for the node.
19661847f8eSopenharmony_ci   *
19761847f8eSopenharmony_ci   * @type { boolean }
19861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
19961847f8eSopenharmony_ci   * @since 12
20061847f8eSopenharmony_ci   */
20161847f8eSopenharmony_ci  visible: boolean;
20261847f8eSopenharmony_ci
20361847f8eSopenharmony_ci  /**
20461847f8eSopenharmony_ci   * Type of the node.
20561847f8eSopenharmony_ci   *
20661847f8eSopenharmony_ci   * @type { NodeType }
20761847f8eSopenharmony_ci   * @readonly
20861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
20961847f8eSopenharmony_ci   * @since 12
21061847f8eSopenharmony_ci   */
21161847f8eSopenharmony_ci  readonly nodeType: NodeType;
21261847f8eSopenharmony_ci
21361847f8eSopenharmony_ci  /**
21461847f8eSopenharmony_ci   * Layer mask of the node.
21561847f8eSopenharmony_ci   *
21661847f8eSopenharmony_ci   * @type { LayerMask }
21761847f8eSopenharmony_ci   * @readonly
21861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
21961847f8eSopenharmony_ci   * @since 12
22061847f8eSopenharmony_ci   */
22161847f8eSopenharmony_ci  readonly layerMask: LayerMask;
22261847f8eSopenharmony_ci
22361847f8eSopenharmony_ci  /**
22461847f8eSopenharmony_ci   * Path of the node.
22561847f8eSopenharmony_ci   *
22661847f8eSopenharmony_ci   * @type { string }
22761847f8eSopenharmony_ci   * @readonly
22861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
22961847f8eSopenharmony_ci   * @since 12
23061847f8eSopenharmony_ci   */
23161847f8eSopenharmony_ci  readonly path: string;
23261847f8eSopenharmony_ci
23361847f8eSopenharmony_ci  /**
23461847f8eSopenharmony_ci   * Parent of the node.
23561847f8eSopenharmony_ci   *
23661847f8eSopenharmony_ci   * @type { Node | null }
23761847f8eSopenharmony_ci   * @readonly
23861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
23961847f8eSopenharmony_ci   * @since 12
24061847f8eSopenharmony_ci   */
24161847f8eSopenharmony_ci  readonly parent: Node | null;
24261847f8eSopenharmony_ci
24361847f8eSopenharmony_ci  /**
24461847f8eSopenharmony_ci   * Get node by path.
24561847f8eSopenharmony_ci   *
24661847f8eSopenharmony_ci   * @param { string } path - the path of the node queried
24761847f8eSopenharmony_ci   * @returns { Node | null }
24861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
24961847f8eSopenharmony_ci   * @since 12
25061847f8eSopenharmony_ci   */
25161847f8eSopenharmony_ci  getNodeByPath(path: string): Node | null;
25261847f8eSopenharmony_ci
25361847f8eSopenharmony_ci  /**
25461847f8eSopenharmony_ci   * Children of the node.
25561847f8eSopenharmony_ci   *
25661847f8eSopenharmony_ci   * @type { Container<Node> }
25761847f8eSopenharmony_ci   * @readonly
25861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
25961847f8eSopenharmony_ci   * @since 12
26061847f8eSopenharmony_ci   */
26161847f8eSopenharmony_ci  readonly children: Container<Node>
26261847f8eSopenharmony_ci}
26361847f8eSopenharmony_ci
26461847f8eSopenharmony_ci/**
26561847f8eSopenharmony_ci * Defines Geometry interface.
26661847f8eSopenharmony_ci *
26761847f8eSopenharmony_ci * @interface Geometry
26861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
26961847f8eSopenharmony_ci * @since 12
27061847f8eSopenharmony_ci */
27161847f8eSopenharmony_ciexport interface Geometry extends Node {
27261847f8eSopenharmony_ci  /**
27361847f8eSopenharmony_ci   * Mesh of the node.
27461847f8eSopenharmony_ci   *
27561847f8eSopenharmony_ci   * @type { Mesh }
27661847f8eSopenharmony_ci   * @readonly
27761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
27861847f8eSopenharmony_ci   * @since 12
27961847f8eSopenharmony_ci   */
28061847f8eSopenharmony_ci  readonly mesh: Mesh;
28161847f8eSopenharmony_ci}
28261847f8eSopenharmony_ci
28361847f8eSopenharmony_ci/**
28461847f8eSopenharmony_ci * The enum of light type.
28561847f8eSopenharmony_ci *
28661847f8eSopenharmony_ci * @enum { number }
28761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
28861847f8eSopenharmony_ci * @since 12
28961847f8eSopenharmony_ci */
29061847f8eSopenharmony_ciexport enum LightType {
29161847f8eSopenharmony_ci  /**
29261847f8eSopenharmony_ci   * Directional light.
29361847f8eSopenharmony_ci   *
29461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
29561847f8eSopenharmony_ci   * @since 12
29661847f8eSopenharmony_ci   */
29761847f8eSopenharmony_ci  DIRECTIONAL = 1,
29861847f8eSopenharmony_ci
29961847f8eSopenharmony_ci  /**
30061847f8eSopenharmony_ci   * Spot light.
30161847f8eSopenharmony_ci   *
30261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
30361847f8eSopenharmony_ci   * @since 12
30461847f8eSopenharmony_ci   */
30561847f8eSopenharmony_ci  SPOT = 2,
30661847f8eSopenharmony_ci}
30761847f8eSopenharmony_ci
30861847f8eSopenharmony_ci/**
30961847f8eSopenharmony_ci * Defines light interface.
31061847f8eSopenharmony_ci *
31161847f8eSopenharmony_ci * @interface Light
31261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
31361847f8eSopenharmony_ci * @since 12
31461847f8eSopenharmony_ci */
31561847f8eSopenharmony_ciexport interface Light extends Node {
31661847f8eSopenharmony_ci  /**
31761847f8eSopenharmony_ci   * The type of the light.
31861847f8eSopenharmony_ci   *
31961847f8eSopenharmony_ci   * @type { LightType }
32061847f8eSopenharmony_ci   * @readonly
32161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
32261847f8eSopenharmony_ci   * @since 12
32361847f8eSopenharmony_ci   */
32461847f8eSopenharmony_ci  readonly lightType: LightType;
32561847f8eSopenharmony_ci
32661847f8eSopenharmony_ci  /**
32761847f8eSopenharmony_ci   * The color of the light.
32861847f8eSopenharmony_ci   *
32961847f8eSopenharmony_ci   * @type { Color }
33061847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
33161847f8eSopenharmony_ci   * @since 12
33261847f8eSopenharmony_ci   */
33361847f8eSopenharmony_ci  color: Color;
33461847f8eSopenharmony_ci
33561847f8eSopenharmony_ci  /**
33661847f8eSopenharmony_ci   * The intensity of the light.
33761847f8eSopenharmony_ci   *
33861847f8eSopenharmony_ci   * @type { number }
33961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
34061847f8eSopenharmony_ci   * @since 12
34161847f8eSopenharmony_ci   */
34261847f8eSopenharmony_ci  intensity: number;
34361847f8eSopenharmony_ci
34461847f8eSopenharmony_ci  /**
34561847f8eSopenharmony_ci   * Whether casting shadows.
34661847f8eSopenharmony_ci   *
34761847f8eSopenharmony_ci   * @type { boolean }
34861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
34961847f8eSopenharmony_ci   * @since 12
35061847f8eSopenharmony_ci   */
35161847f8eSopenharmony_ci  shadowEnabled: boolean;
35261847f8eSopenharmony_ci
35361847f8eSopenharmony_ci  /**
35461847f8eSopenharmony_ci   * Whether enable the light.
35561847f8eSopenharmony_ci   *
35661847f8eSopenharmony_ci   * @type { boolean }
35761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
35861847f8eSopenharmony_ci   * @since 12
35961847f8eSopenharmony_ci   */
36061847f8eSopenharmony_ci  enabled: boolean;
36161847f8eSopenharmony_ci}
36261847f8eSopenharmony_ci
36361847f8eSopenharmony_ci/**
36461847f8eSopenharmony_ci * Defines spot light.
36561847f8eSopenharmony_ci *
36661847f8eSopenharmony_ci * @interface SpotLight
36761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
36861847f8eSopenharmony_ci * @since 12
36961847f8eSopenharmony_ci */
37061847f8eSopenharmony_ciexport interface SpotLight extends Light {
37161847f8eSopenharmony_ci}
37261847f8eSopenharmony_ci
37361847f8eSopenharmony_ci/**
37461847f8eSopenharmony_ci * Defines directional light.
37561847f8eSopenharmony_ci *
37661847f8eSopenharmony_ci * @interface DirectionalLight
37761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
37861847f8eSopenharmony_ci * @since 12
37961847f8eSopenharmony_ci */
38061847f8eSopenharmony_ciexport interface DirectionalLight extends Light {
38161847f8eSopenharmony_ci}
38261847f8eSopenharmony_ci
38361847f8eSopenharmony_ci/**
38461847f8eSopenharmony_ci * Defines camera.
38561847f8eSopenharmony_ci *
38661847f8eSopenharmony_ci * @interface Camera
38761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D
38861847f8eSopenharmony_ci * @since 12
38961847f8eSopenharmony_ci */
39061847f8eSopenharmony_ciexport interface Camera extends Node {
39161847f8eSopenharmony_ci  /**
39261847f8eSopenharmony_ci   * Field of view of the camera.
39361847f8eSopenharmony_ci   *
39461847f8eSopenharmony_ci   * @type { number }
39561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
39661847f8eSopenharmony_ci   * @since 12
39761847f8eSopenharmony_ci   */
39861847f8eSopenharmony_ci  fov: number;
39961847f8eSopenharmony_ci
40061847f8eSopenharmony_ci  /**
40161847f8eSopenharmony_ci   * Near plane of the directional light.
40261847f8eSopenharmony_ci   *
40361847f8eSopenharmony_ci   * @type { number }
40461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
40561847f8eSopenharmony_ci   * @since 12
40661847f8eSopenharmony_ci   */
40761847f8eSopenharmony_ci  nearPlane: number;
40861847f8eSopenharmony_ci
40961847f8eSopenharmony_ci  /**
41061847f8eSopenharmony_ci   * Far plane of the directional light.
41161847f8eSopenharmony_ci   *
41261847f8eSopenharmony_ci   * @type { number }
41361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
41461847f8eSopenharmony_ci   * @since 12
41561847f8eSopenharmony_ci   */
41661847f8eSopenharmony_ci  farPlane: number;
41761847f8eSopenharmony_ci
41861847f8eSopenharmony_ci  /**
41961847f8eSopenharmony_ci   * Whether enabled the camera.
42061847f8eSopenharmony_ci   *
42161847f8eSopenharmony_ci   * @type { boolean }
42261847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
42361847f8eSopenharmony_ci   * @since 12
42461847f8eSopenharmony_ci   */
42561847f8eSopenharmony_ci  enabled: boolean;
42661847f8eSopenharmony_ci
42761847f8eSopenharmony_ci  /**
42861847f8eSopenharmony_ci   * The post processing settings of the camera.
42961847f8eSopenharmony_ci   *
43061847f8eSopenharmony_ci   * @type { PostProcessSettings | null }
43161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
43261847f8eSopenharmony_ci   * @since 12
43361847f8eSopenharmony_ci   */
43461847f8eSopenharmony_ci  postProcess: PostProcessSettings | null;
43561847f8eSopenharmony_ci
43661847f8eSopenharmony_ci  /**
43761847f8eSopenharmony_ci   * Background clear color (environment background overrides this color,
43861847f8eSopenharmony_ci   * BACKGROUND_NONE is needed for this to actually take effect).
43961847f8eSopenharmony_ci   *
44061847f8eSopenharmony_ci   * @type { Color | null }
44161847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUi.Graphics3D
44261847f8eSopenharmony_ci   * @since 12
44361847f8eSopenharmony_ci   */
44461847f8eSopenharmony_ci  clearColor: Color | null;
44561847f8eSopenharmony_ci}
446