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 resource related interfaces 1861847f8eSopenharmony_ci * @kit ArkGraphics3D 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ciimport { Vec2, Vec3, Vec4, Aabb } from './SceneTypes'; 2261847f8eSopenharmony_ciimport { Callback } from '../@ohos.base'; 2361847f8eSopenharmony_ci 2461847f8eSopenharmony_ci/** 2561847f8eSopenharmony_ci * The enum of SceneResource type. 2661847f8eSopenharmony_ci * 2761847f8eSopenharmony_ci * @enum { number } 2861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 2961847f8eSopenharmony_ci * @since 12 3061847f8eSopenharmony_ci */ 3161847f8eSopenharmony_ciexport enum SceneResourceType { 3261847f8eSopenharmony_ci /** 3361847f8eSopenharmony_ci * The resource is an Unknown. 3461847f8eSopenharmony_ci * 3561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 3661847f8eSopenharmony_ci * @since 12 3761847f8eSopenharmony_ci */ 3861847f8eSopenharmony_ci UNKNOWN = 0, 3961847f8eSopenharmony_ci 4061847f8eSopenharmony_ci /** 4161847f8eSopenharmony_ci * The resource is a Node. 4261847f8eSopenharmony_ci * 4361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 4461847f8eSopenharmony_ci * @since 12 4561847f8eSopenharmony_ci */ 4661847f8eSopenharmony_ci NODE = 1, 4761847f8eSopenharmony_ci 4861847f8eSopenharmony_ci /** 4961847f8eSopenharmony_ci * The resource is an Environment. 5061847f8eSopenharmony_ci * 5161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 5261847f8eSopenharmony_ci * @since 12 5361847f8eSopenharmony_ci */ 5461847f8eSopenharmony_ci ENVIRONMENT = 2, 5561847f8eSopenharmony_ci 5661847f8eSopenharmony_ci /** 5761847f8eSopenharmony_ci * The resource is a Material. 5861847f8eSopenharmony_ci * 5961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 6061847f8eSopenharmony_ci * @since 12 6161847f8eSopenharmony_ci */ 6261847f8eSopenharmony_ci MATERIAL = 3, 6361847f8eSopenharmony_ci 6461847f8eSopenharmony_ci /** 6561847f8eSopenharmony_ci * The resource is a Mesh. 6661847f8eSopenharmony_ci * 6761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 6861847f8eSopenharmony_ci * @since 12 6961847f8eSopenharmony_ci */ 7061847f8eSopenharmony_ci MESH = 4, 7161847f8eSopenharmony_ci 7261847f8eSopenharmony_ci /** 7361847f8eSopenharmony_ci * The resource is an Animation. 7461847f8eSopenharmony_ci * 7561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 7661847f8eSopenharmony_ci * @since 12 7761847f8eSopenharmony_ci */ 7861847f8eSopenharmony_ci ANIMATION = 5, 7961847f8eSopenharmony_ci 8061847f8eSopenharmony_ci /** 8161847f8eSopenharmony_ci * The resource is a Shader. 8261847f8eSopenharmony_ci * 8361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 8461847f8eSopenharmony_ci * @since 12 8561847f8eSopenharmony_ci */ 8661847f8eSopenharmony_ci SHADER = 6, 8761847f8eSopenharmony_ci 8861847f8eSopenharmony_ci /** 8961847f8eSopenharmony_ci * The resource is an Image. 9061847f8eSopenharmony_ci * 9161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 9261847f8eSopenharmony_ci * @since 12 9361847f8eSopenharmony_ci */ 9461847f8eSopenharmony_ci IMAGE = 7, 9561847f8eSopenharmony_ci} 9661847f8eSopenharmony_ci 9761847f8eSopenharmony_ci/** 9861847f8eSopenharmony_ci * Define scene resource extended by other 3d resource. 9961847f8eSopenharmony_ci * 10061847f8eSopenharmony_ci * @interface SceneResource 10161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 10261847f8eSopenharmony_ci * @since 12 10361847f8eSopenharmony_ci */ 10461847f8eSopenharmony_ciexport interface SceneResource { 10561847f8eSopenharmony_ci /** 10661847f8eSopenharmony_ci * Scene resource name. 10761847f8eSopenharmony_ci * 10861847f8eSopenharmony_ci * @type { string } 10961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 11061847f8eSopenharmony_ci * @since 12 11161847f8eSopenharmony_ci */ 11261847f8eSopenharmony_ci name: string; 11361847f8eSopenharmony_ci 11461847f8eSopenharmony_ci /** 11561847f8eSopenharmony_ci * Scene resource type. 11661847f8eSopenharmony_ci * 11761847f8eSopenharmony_ci * @type { SceneResourceType } 11861847f8eSopenharmony_ci * @readonly 11961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 12061847f8eSopenharmony_ci * @since 12 12161847f8eSopenharmony_ci */ 12261847f8eSopenharmony_ci readonly resourceType: SceneResourceType; 12361847f8eSopenharmony_ci 12461847f8eSopenharmony_ci /** 12561847f8eSopenharmony_ci * Scene resource uri. 12661847f8eSopenharmony_ci * 12761847f8eSopenharmony_ci * @type { ?ResourceStr } 12861847f8eSopenharmony_ci * @readonly 12961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 13061847f8eSopenharmony_ci * @since 12 13161847f8eSopenharmony_ci */ 13261847f8eSopenharmony_ci readonly uri?: ResourceStr; 13361847f8eSopenharmony_ci 13461847f8eSopenharmony_ci 13561847f8eSopenharmony_ci /** 13661847f8eSopenharmony_ci * Release scene resource. 13761847f8eSopenharmony_ci * 13861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 13961847f8eSopenharmony_ci * @since 12 14061847f8eSopenharmony_ci */ 14161847f8eSopenharmony_ci destroy(): void; 14261847f8eSopenharmony_ci} 14361847f8eSopenharmony_ci 14461847f8eSopenharmony_ci/** 14561847f8eSopenharmony_ci * Shader resource. 14661847f8eSopenharmony_ci * 14761847f8eSopenharmony_ci * @interface Shader 14861847f8eSopenharmony_ci * @extends SceneResource 14961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 15061847f8eSopenharmony_ci * @since 12 15161847f8eSopenharmony_ci */ 15261847f8eSopenharmony_ciexport interface Shader extends SceneResource { 15361847f8eSopenharmony_ci /** 15461847f8eSopenharmony_ci * Shader inputs. 15561847f8eSopenharmony_ci * 15661847f8eSopenharmony_ci * @type { Record<string, number | Vec2 | Vec3 | Vec4 | Image> } 15761847f8eSopenharmony_ci * @readonly 15861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 15961847f8eSopenharmony_ci * @since 12 16061847f8eSopenharmony_ci */ 16161847f8eSopenharmony_ci readonly inputs: Record<string, number | Vec2 | Vec3 | Vec4 | Image>; 16261847f8eSopenharmony_ci} 16361847f8eSopenharmony_ci 16461847f8eSopenharmony_ci/** 16561847f8eSopenharmony_ci * The enum of material type. 16661847f8eSopenharmony_ci * 16761847f8eSopenharmony_ci * @enum { number } 16861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 16961847f8eSopenharmony_ci * @since 12 17061847f8eSopenharmony_ci */ 17161847f8eSopenharmony_ciexport enum MaterialType { 17261847f8eSopenharmony_ci /** 17361847f8eSopenharmony_ci * The material type is a Shader. 17461847f8eSopenharmony_ci * 17561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 17661847f8eSopenharmony_ci * @since 12 17761847f8eSopenharmony_ci */ 17861847f8eSopenharmony_ci SHADER = 1, 17961847f8eSopenharmony_ci} 18061847f8eSopenharmony_ci 18161847f8eSopenharmony_ci/** 18261847f8eSopenharmony_ci * Material resource. 18361847f8eSopenharmony_ci * 18461847f8eSopenharmony_ci * @interface Material 18561847f8eSopenharmony_ci * @extends SceneResource 18661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 18761847f8eSopenharmony_ci * @since 12 18861847f8eSopenharmony_ci */ 18961847f8eSopenharmony_ciexport interface Material extends SceneResource { 19061847f8eSopenharmony_ci /** 19161847f8eSopenharmony_ci * Material resource type. 19261847f8eSopenharmony_ci * 19361847f8eSopenharmony_ci * @type { MaterialType } 19461847f8eSopenharmony_ci * @readonly 19561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 19661847f8eSopenharmony_ci * @since 12 19761847f8eSopenharmony_ci */ 19861847f8eSopenharmony_ci readonly materialType: MaterialType; 19961847f8eSopenharmony_ci} 20061847f8eSopenharmony_ci 20161847f8eSopenharmony_ci/** 20261847f8eSopenharmony_ci * Shader material resource. 20361847f8eSopenharmony_ci * 20461847f8eSopenharmony_ci * @interface ShaderMaterial 20561847f8eSopenharmony_ci * @extends Material 20661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 20761847f8eSopenharmony_ci * @since 12 20861847f8eSopenharmony_ci */ 20961847f8eSopenharmony_ciexport interface ShaderMaterial extends Material { 21061847f8eSopenharmony_ci /** 21161847f8eSopenharmony_ci * Color shader of material. 21261847f8eSopenharmony_ci * 21361847f8eSopenharmony_ci * @type { ?Shader } 21461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 21561847f8eSopenharmony_ci * @since 12 21661847f8eSopenharmony_ci */ 21761847f8eSopenharmony_ci colorShader?: Shader; 21861847f8eSopenharmony_ci} 21961847f8eSopenharmony_ci 22061847f8eSopenharmony_ci/** 22161847f8eSopenharmony_ci * Sub mesh resource. 22261847f8eSopenharmony_ci * 22361847f8eSopenharmony_ci * @interface SubMesh 22461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 22561847f8eSopenharmony_ci * @since 12 22661847f8eSopenharmony_ci */ 22761847f8eSopenharmony_ciexport interface SubMesh { 22861847f8eSopenharmony_ci /** 22961847f8eSopenharmony_ci * The name of the sub mesh. 23061847f8eSopenharmony_ci * 23161847f8eSopenharmony_ci * @type { string } 23261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 23361847f8eSopenharmony_ci * @since 12 23461847f8eSopenharmony_ci */ 23561847f8eSopenharmony_ci name: string; 23661847f8eSopenharmony_ci 23761847f8eSopenharmony_ci /** 23861847f8eSopenharmony_ci * The material of the sub mesh. 23961847f8eSopenharmony_ci * 24061847f8eSopenharmony_ci * @type { Material } 24161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 24261847f8eSopenharmony_ci * @since 12 24361847f8eSopenharmony_ci */ 24461847f8eSopenharmony_ci material: Material; 24561847f8eSopenharmony_ci 24661847f8eSopenharmony_ci /** 24761847f8eSopenharmony_ci * The axis aligned bounding box of the sub mesh. 24861847f8eSopenharmony_ci * 24961847f8eSopenharmony_ci * @type { Aabb } 25061847f8eSopenharmony_ci * readonly 25161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 25261847f8eSopenharmony_ci * @since 12 25361847f8eSopenharmony_ci */ 25461847f8eSopenharmony_ci readonly aabb: Aabb; 25561847f8eSopenharmony_ci} 25661847f8eSopenharmony_ci 25761847f8eSopenharmony_ci/** 25861847f8eSopenharmony_ci * Mesh resource. 25961847f8eSopenharmony_ci * 26061847f8eSopenharmony_ci * @interface Mesh 26161847f8eSopenharmony_ci * @extends SceneResource 26261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 26361847f8eSopenharmony_ci * @since 12 26461847f8eSopenharmony_ci */ 26561847f8eSopenharmony_ciexport interface Mesh extends SceneResource { 26661847f8eSopenharmony_ci /** 26761847f8eSopenharmony_ci * The sub meshes of the mesh. 26861847f8eSopenharmony_ci * 26961847f8eSopenharmony_ci * @type { SubMesh[] } 27061847f8eSopenharmony_ci * @readonly 27161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 27261847f8eSopenharmony_ci * @since 12 27361847f8eSopenharmony_ci */ 27461847f8eSopenharmony_ci readonly subMeshes: SubMesh[]; 27561847f8eSopenharmony_ci 27661847f8eSopenharmony_ci /** 27761847f8eSopenharmony_ci * The axis aligned bounding box of the mesh. 27861847f8eSopenharmony_ci * 27961847f8eSopenharmony_ci * @type { Aabb } 28061847f8eSopenharmony_ci * readonly 28161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 28261847f8eSopenharmony_ci * @since 12 28361847f8eSopenharmony_ci */ 28461847f8eSopenharmony_ci readonly aabb: Aabb; 28561847f8eSopenharmony_ci 28661847f8eSopenharmony_ci /** 28761847f8eSopenharmony_ci * The material override sub mesh's material. 28861847f8eSopenharmony_ci * 28961847f8eSopenharmony_ci * @type { ?Material } 29061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 29161847f8eSopenharmony_ci * @since 12 29261847f8eSopenharmony_ci */ 29361847f8eSopenharmony_ci materialOverride?: Material; 29461847f8eSopenharmony_ci} 29561847f8eSopenharmony_ci 29661847f8eSopenharmony_ci/** 29761847f8eSopenharmony_ci * Animation resource. 29861847f8eSopenharmony_ci * 29961847f8eSopenharmony_ci * @interface Animation 30061847f8eSopenharmony_ci * @extends SceneResource 30161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 30261847f8eSopenharmony_ci * @since 12 30361847f8eSopenharmony_ci */ 30461847f8eSopenharmony_ciexport interface Animation extends SceneResource { 30561847f8eSopenharmony_ci /** 30661847f8eSopenharmony_ci * The animation is enabled. 30761847f8eSopenharmony_ci * 30861847f8eSopenharmony_ci * @type { boolean } 30961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 31061847f8eSopenharmony_ci * @since 12 31161847f8eSopenharmony_ci */ 31261847f8eSopenharmony_ci enabled: boolean; 31361847f8eSopenharmony_ci 31461847f8eSopenharmony_ci /** 31561847f8eSopenharmony_ci * The duration of the animation. 31661847f8eSopenharmony_ci * 31761847f8eSopenharmony_ci * @type { number } 31861847f8eSopenharmony_ci * @readonly 31961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 32061847f8eSopenharmony_ci * @since 12 32161847f8eSopenharmony_ci */ 32261847f8eSopenharmony_ci readonly duration: number; 32361847f8eSopenharmony_ci 32461847f8eSopenharmony_ci /** 32561847f8eSopenharmony_ci * Whether the animation is running. 32661847f8eSopenharmony_ci * 32761847f8eSopenharmony_ci * @type { boolean } 32861847f8eSopenharmony_ci * @readonly 32961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 33061847f8eSopenharmony_ci * @since 12 33161847f8eSopenharmony_ci */ 33261847f8eSopenharmony_ci readonly running: boolean; 33361847f8eSopenharmony_ci 33461847f8eSopenharmony_ci /** 33561847f8eSopenharmony_ci * The progress of the animation between 0~1. 33661847f8eSopenharmony_ci * 33761847f8eSopenharmony_ci * @type { number } 33861847f8eSopenharmony_ci * @readonly 33961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 34061847f8eSopenharmony_ci * @since 12 34161847f8eSopenharmony_ci */ 34261847f8eSopenharmony_ci readonly progress: number; 34361847f8eSopenharmony_ci 34461847f8eSopenharmony_ci /** 34561847f8eSopenharmony_ci * Register a callback when animation finished. 34661847f8eSopenharmony_ci * 34761847f8eSopenharmony_ci * @param { Callback<void> } callback - the callback invoked when animation finished 34861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 34961847f8eSopenharmony_ci * @since 12 35061847f8eSopenharmony_ci */ 35161847f8eSopenharmony_ci onFinished(callback: Callback<void>): void; 35261847f8eSopenharmony_ci 35361847f8eSopenharmony_ci /** 35461847f8eSopenharmony_ci * Register a callback when animation started. 35561847f8eSopenharmony_ci * 35661847f8eSopenharmony_ci * @param { Callback<void> } callback - the callback invoked when animation started 35761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 35861847f8eSopenharmony_ci * @since 12 35961847f8eSopenharmony_ci */ 36061847f8eSopenharmony_ci onStarted(callback: Callback<void>): void; 36161847f8eSopenharmony_ci 36261847f8eSopenharmony_ci /** 36361847f8eSopenharmony_ci * Pause the animation. 36461847f8eSopenharmony_ci * 36561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 36661847f8eSopenharmony_ci * @since 12 36761847f8eSopenharmony_ci */ 36861847f8eSopenharmony_ci pause(): void; 36961847f8eSopenharmony_ci 37061847f8eSopenharmony_ci /** 37161847f8eSopenharmony_ci * Restart the animation. 37261847f8eSopenharmony_ci * 37361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 37461847f8eSopenharmony_ci * @since 12 37561847f8eSopenharmony_ci */ 37661847f8eSopenharmony_ci restart(): void; 37761847f8eSopenharmony_ci 37861847f8eSopenharmony_ci /** 37961847f8eSopenharmony_ci * Seek the animation to the position. 38061847f8eSopenharmony_ci * 38161847f8eSopenharmony_ci * @param { number } position - the position seek between 0~1 38261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 38361847f8eSopenharmony_ci * @since 12 38461847f8eSopenharmony_ci */ 38561847f8eSopenharmony_ci seek(position: number): void; 38661847f8eSopenharmony_ci 38761847f8eSopenharmony_ci /** 38861847f8eSopenharmony_ci * Start the animation. 38961847f8eSopenharmony_ci * 39061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 39161847f8eSopenharmony_ci * @since 12 39261847f8eSopenharmony_ci */ 39361847f8eSopenharmony_ci start(): void; 39461847f8eSopenharmony_ci 39561847f8eSopenharmony_ci /** 39661847f8eSopenharmony_ci * Stop the animation and seek the position to the beginning. 39761847f8eSopenharmony_ci * 39861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 39961847f8eSopenharmony_ci * @since 12 40061847f8eSopenharmony_ci */ 40161847f8eSopenharmony_ci stop(): void; 40261847f8eSopenharmony_ci 40361847f8eSopenharmony_ci /** 40461847f8eSopenharmony_ci * Finish the animation and seek the position to the end. 40561847f8eSopenharmony_ci * 40661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 40761847f8eSopenharmony_ci * @since 12 40861847f8eSopenharmony_ci */ 40961847f8eSopenharmony_ci finish(): void; 41061847f8eSopenharmony_ci} 41161847f8eSopenharmony_ci 41261847f8eSopenharmony_ci/** 41361847f8eSopenharmony_ci * The enum of environment background type. 41461847f8eSopenharmony_ci * @enum { number } 41561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 41661847f8eSopenharmony_ci * @since 12 41761847f8eSopenharmony_ci */ 41861847f8eSopenharmony_ciexport enum EnvironmentBackgroundType { 41961847f8eSopenharmony_ci /** 42061847f8eSopenharmony_ci * The background is none. 42161847f8eSopenharmony_ci * 42261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 42361847f8eSopenharmony_ci * @since 12 42461847f8eSopenharmony_ci */ 42561847f8eSopenharmony_ci BACKGROUND_NONE = 0, 42661847f8eSopenharmony_ci 42761847f8eSopenharmony_ci /** 42861847f8eSopenharmony_ci * The background is image. 42961847f8eSopenharmony_ci * 43061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 43161847f8eSopenharmony_ci * @since 12 43261847f8eSopenharmony_ci */ 43361847f8eSopenharmony_ci BACKGROUND_IMAGE = 1, 43461847f8eSopenharmony_ci 43561847f8eSopenharmony_ci /** 43661847f8eSopenharmony_ci * The background is cubemap. 43761847f8eSopenharmony_ci * 43861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 43961847f8eSopenharmony_ci * @since 12 44061847f8eSopenharmony_ci */ 44161847f8eSopenharmony_ci BACKGROUND_CUBEMAP = 2, 44261847f8eSopenharmony_ci 44361847f8eSopenharmony_ci /** 44461847f8eSopenharmony_ci * The background is equirectangular. 44561847f8eSopenharmony_ci * 44661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 44761847f8eSopenharmony_ci * @since 12 44861847f8eSopenharmony_ci */ 44961847f8eSopenharmony_ci BACKGROUND_EQUIRECTANGULAR = 3, 45061847f8eSopenharmony_ci} 45161847f8eSopenharmony_ci 45261847f8eSopenharmony_ci/** 45361847f8eSopenharmony_ci * Environment resource. 45461847f8eSopenharmony_ci * 45561847f8eSopenharmony_ci * @interface Environment 45661847f8eSopenharmony_ci * @extends SceneResource 45761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 45861847f8eSopenharmony_ci * @since 12 45961847f8eSopenharmony_ci */ 46061847f8eSopenharmony_ciexport interface Environment extends SceneResource { 46161847f8eSopenharmony_ci /** 46261847f8eSopenharmony_ci * The background type of the environment. 46361847f8eSopenharmony_ci * 46461847f8eSopenharmony_ci * @type { EnvironmentBackgroundType } 46561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 46661847f8eSopenharmony_ci * @since 12 46761847f8eSopenharmony_ci */ 46861847f8eSopenharmony_ci backgroundType: EnvironmentBackgroundType; 46961847f8eSopenharmony_ci 47061847f8eSopenharmony_ci /** 47161847f8eSopenharmony_ci * The indirect diffuse factor of the environment. 47261847f8eSopenharmony_ci * 47361847f8eSopenharmony_ci * @type { Vec4 } 47461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 47561847f8eSopenharmony_ci * @since 12 47661847f8eSopenharmony_ci */ 47761847f8eSopenharmony_ci indirectDiffuseFactor: Vec4; 47861847f8eSopenharmony_ci 47961847f8eSopenharmony_ci /** 48061847f8eSopenharmony_ci * The indirect specular factor of the environment. 48161847f8eSopenharmony_ci * 48261847f8eSopenharmony_ci * @type { Vec4 } 48361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 48461847f8eSopenharmony_ci * @since 12 48561847f8eSopenharmony_ci */ 48661847f8eSopenharmony_ci indirectSpecularFactor: Vec4; 48761847f8eSopenharmony_ci 48861847f8eSopenharmony_ci /** 48961847f8eSopenharmony_ci * The environment map factor of the environment. 49061847f8eSopenharmony_ci * 49161847f8eSopenharmony_ci * @type { Vec4 } 49261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 49361847f8eSopenharmony_ci * @since 12 49461847f8eSopenharmony_ci */ 49561847f8eSopenharmony_ci environmentMapFactor: Vec4; 49661847f8eSopenharmony_ci 49761847f8eSopenharmony_ci /** 49861847f8eSopenharmony_ci * The environment image of the environment. 49961847f8eSopenharmony_ci * 50061847f8eSopenharmony_ci * @type { ?(Image | null) } 50161847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 50261847f8eSopenharmony_ci * @since 12 50361847f8eSopenharmony_ci */ 50461847f8eSopenharmony_ci environmentImage?: Image | null; 50561847f8eSopenharmony_ci 50661847f8eSopenharmony_ci /** 50761847f8eSopenharmony_ci * The radiance image of the environment. 50861847f8eSopenharmony_ci * 50961847f8eSopenharmony_ci * @type { ?(Image | null) } 51061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 51161847f8eSopenharmony_ci * @since 12 51261847f8eSopenharmony_ci */ 51361847f8eSopenharmony_ci radianceImage?: Image | null; 51461847f8eSopenharmony_ci 51561847f8eSopenharmony_ci /** 51661847f8eSopenharmony_ci * The irradiance coefficients (array of nine Vec3). 51761847f8eSopenharmony_ci * 51861847f8eSopenharmony_ci * @type { ?Vec3[] } 51961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 52061847f8eSopenharmony_ci * @since 12 52161847f8eSopenharmony_ci */ 52261847f8eSopenharmony_ci irradianceCoefficients?: Vec3[]; 52361847f8eSopenharmony_ci} 52461847f8eSopenharmony_ci 52561847f8eSopenharmony_ci/** 52661847f8eSopenharmony_ci * Image resource. 52761847f8eSopenharmony_ci * 52861847f8eSopenharmony_ci * @interface Image 52961847f8eSopenharmony_ci * @extends SceneResource 53061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 53161847f8eSopenharmony_ci * @since 12 53261847f8eSopenharmony_ci */ 53361847f8eSopenharmony_ciexport interface Image extends SceneResource { 53461847f8eSopenharmony_ci /** 53561847f8eSopenharmony_ci * The width of the image. 53661847f8eSopenharmony_ci * 53761847f8eSopenharmony_ci * @type { number } 53861847f8eSopenharmony_ci * @readonly 53961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 54061847f8eSopenharmony_ci * @since 12 54161847f8eSopenharmony_ci */ 54261847f8eSopenharmony_ci readonly width: number; 54361847f8eSopenharmony_ci 54461847f8eSopenharmony_ci /** 54561847f8eSopenharmony_ci * The height of the image. 54661847f8eSopenharmony_ci * 54761847f8eSopenharmony_ci * @type { number } 54861847f8eSopenharmony_ci * @readonly 54961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUi.Graphics3D 55061847f8eSopenharmony_ci * @since 12 55161847f8eSopenharmony_ci */ 55261847f8eSopenharmony_ci readonly height: number; 55361847f8eSopenharmony_ci} 554