lythreeframe 1.3.2 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/bundle.cjs.js +59 -3837
  2. package/dist/bundle.cjs.js.map +1 -1
  3. package/dist/bundle.esm.js +60 -3839
  4. package/dist/bundle.esm.js.map +1 -1
  5. package/dist/index.d.ts +72 -70
  6. package/dist/src/AssetManagement/AssetDefines.d.ts +65 -0
  7. package/dist/src/AssetManagement/AssetManager.d.ts +35 -0
  8. package/dist/src/AssetManagement/AssetPointer/AssetPointer.d.ts +20 -0
  9. package/dist/src/AssetManagement/AssetPointer/Assets/GeometryAssetPointer.d.ts +5 -0
  10. package/dist/src/AssetManagement/AssetPointer/Assets/MaterialAssetPointer.d.ts +24 -0
  11. package/dist/src/AssetManagement/AssetPointer/Assets/TextureAssetPointer.d.ts +5 -0
  12. package/dist/src/Container/SmartPointer.d.ts +15 -0
  13. package/dist/src/Defines.d.ts +4 -0
  14. package/dist/src/Delegate.d.ts +8 -0
  15. package/dist/src/Factory/CameraFactory.d.ts +6 -0
  16. package/dist/src/Factory/RendererFactory.d.ts +2 -0
  17. package/dist/src/Frame/Controller.d.ts +130 -0
  18. package/dist/src/Frame/Parameters/AppParameter.d.ts +25 -0
  19. package/dist/src/Frame/Parameters/CameraParameter.d.ts +22 -0
  20. package/dist/src/Frame/Parameters/RendererParameters.d.ts +17 -0
  21. package/dist/src/Frame/Parameters/ViewportParameters.d.ts +6 -0
  22. package/dist/src/Frame/Parameters/WorldParameter.d.ts +5 -0
  23. package/dist/src/Frame/Rendering/PostProcess.d.ts +45 -0
  24. package/dist/src/Frame/Viewport.d.ts +52 -0
  25. package/dist/src/Frame/World.d.ts +29 -0
  26. package/dist/src/Geometry/PlaneGeometry.d.ts +3 -0
  27. package/dist/src/Geometry/TriangleGeometry.d.ts +3 -0
  28. package/dist/src/Library/ContainerLibrary.d.ts +3 -0
  29. package/dist/src/Library/Debounce.d.ts +1 -0
  30. package/dist/src/Library/Math.d.ts +27 -0
  31. package/dist/src/Library/ResourceLibrary.d.ts +7 -0
  32. package/dist/src/Object/Actor.d.ts +86 -0
  33. package/dist/src/Object/Actors/Level/LevelActor.d.ts +13 -0
  34. package/dist/src/Object/Actors/Light/AmbientLightActor.d.ts +9 -0
  35. package/dist/src/Object/Actors/Light/DirectionalLightActor.d.ts +9 -0
  36. package/dist/src/Object/Actors/Shape/BoxActor.d.ts +7 -0
  37. package/dist/src/Object/Actors/Shape/PlaneActor.d.ts +8 -0
  38. package/dist/src/Object/Actors/Sky/SkyActor.d.ts +9 -0
  39. package/dist/src/Object/BaseObject.d.ts +14 -0
  40. package/dist/src/Object/Components/2D/2DComponent.d.ts +14 -0
  41. package/dist/src/Object/Components/Component.d.ts +18 -0
  42. package/dist/src/Object/Components/Level/LevelComponent.d.ts +9 -0
  43. package/dist/src/Object/Components/Light/AmbientLight/AmbientLightComponent.d.ts +16 -0
  44. package/dist/src/Object/Components/Light/DirectionalLight/DirectionalLightComponent.d.ts +16 -0
  45. package/dist/src/Object/Components/Light/LightComponent.d.ts +12 -0
  46. package/dist/src/Object/Components/Mesh/CustomMeshComponent.d.ts +63 -0
  47. package/dist/src/Object/Components/Mesh/MeshComponent.d.ts +28 -0
  48. package/dist/src/Object/Components/Mesh/Shape/BoxComponent.d.ts +6 -0
  49. package/dist/src/Object/Components/Mesh/Shape/PlaneComponent.d.ts +6 -0
  50. package/dist/src/Object/Components/Mesh/Shape/SphereComponent.d.ts +6 -0
  51. package/dist/src/Object/Components/Mesh/Sprite/SpriteComponent.d.ts +9 -0
  52. package/dist/src/Object/Components/SceneComponent.d.ts +79 -0
  53. package/dist/src/Object/Components/Sky/SkyComponent.d.ts +22 -0
  54. package/dist/src/Object/PawnV2/FirstPerson.d.ts +11 -0
  55. package/dist/src/Object/PawnV2/Oribital.d.ts +22 -0
  56. package/dist/src/Object/PawnV2/Pawn.d.ts +22 -0
  57. package/dist/src/Object/PawnV2/TransformControl.d.ts +62 -0
  58. package/dist/src/PostProcess/Param/AAParam.d.ts +6 -0
  59. package/dist/src/PostProcess/Param/Bloom.d.ts +8 -0
  60. package/dist/src/PostProcess/Param/DOF.d.ts +8 -0
  61. package/dist/src/PostProcess/Param/GTAO.d.ts +12 -0
  62. package/dist/src/PostProcess/Param/LensFlare.d.ts +11 -0
  63. package/dist/src/PostProcess/Param/MotionBlur.d.ts +4 -0
  64. package/dist/src/PostProcess/Param/Outline.d.ts +12 -0
  65. package/dist/src/PostProcess/Param/SSR.d.ts +8 -0
  66. package/dist/src/PostProcess/PostProcessParam.d.ts +16 -0
  67. package/dist/src/Shader/Postprocess/ColorShader.d.ts +29 -0
  68. package/dist/src/ThreeJsApp.d.ts +37 -0
  69. package/package.json +5 -2
package/dist/index.d.ts CHANGED
@@ -1,70 +1,72 @@
1
- export { AssetManager } from "./lythreeframe/AssetManagement/AssetManager";
2
- export { TAssetPointer, ASSET_POINTER_KEY, EDITOR_ASSET_ID_KEY } from "./lythreeframe/AssetManagement/AssetPointer/AssetPointer";
3
- export { TSmartPointer } from './lythreeframe/Container/SmartPointer';
4
- export { MaterialAssetPointer } from "./lythreeframe/AssetManagement/AssetPointer/Assets/MaterialAssetPointer";
5
- export { GeometryAssetPointer } from "./lythreeframe/AssetManagement/AssetPointer/Assets/GeometryAssetPointer";
6
- export { TextureAssetPointer } from "./lythreeframe/AssetManagement/AssetPointer/Assets/TextureAssetPointer";
7
- export { AssetCategory, AssetLoadState, ReferenceType, AssetType } from "./lythreeframe/AssetManagement/AssetDefines";
8
- export type { AssetReference, AssetDescriptor } from "./lythreeframe/AssetManagement/AssetDefines";
9
- export { AttachmentRules } from "./lythreeframe/Defines";
10
- export { Delegate } from "./lythreeframe/Delegate";
11
- export { ThreeJsApp } from "./lythreeframe/ThreeJsApp";
12
- export { Controller } from "./lythreeframe/Frame/Controller";
13
- export type { HitResult, ComponentInteractionEvent, ComponentHoverEvent, ComponentPointerDownEvent, ActorInteractionEvent, ActorHoverEvent } from "./lythreeframe/Frame/Controller";
14
- export { Viewport } from "./lythreeframe/Frame/Viewport";
15
- export { World } from "./lythreeframe/Frame/World";
16
- export type { CameraParam, PerspectiveCameraParam, OrthographicCameraParam } from './lythreeframe/Frame/Parameters/CameraParameter';
17
- export { DefaultCameraParam, DefaultPerspectiveCameraParam, DefaultOrthographicCameraParam } from './lythreeframe/Frame/Parameters/CameraParameter';
18
- export type { AppParam, AppClass } from "./lythreeframe/Frame/Parameters/AppParameter";
19
- export { DefaultAppParam } from "./lythreeframe/Frame/Parameters/AppParameter";
20
- export type { ViewportParam } from './lythreeframe/Frame/Parameters/ViewportParameters';
21
- export { DefaultViewportParam } from './lythreeframe/Frame/Parameters/ViewportParameters';
22
- export type { WorldParam } from "./lythreeframe/Frame/Parameters/WorldParameter";
23
- export { DefaultWorldParam } from "./lythreeframe/Frame/Parameters/WorldParameter";
24
- export type { RendererParameters } from './lythreeframe/Frame/Parameters/RendererParameters';
25
- export { DefaultRendererParameters } from './lythreeframe/Frame/Parameters/RendererParameters';
26
- export { Actor } from "./lythreeframe/Object/Actor";
27
- export { DirectionalLightActor } from "./lythreeframe/Object/Actors/Light/DirectionalLightActor";
28
- export { AmbientLightActor } from './lythreeframe/Object/Actors/Light/AmbientLightActor';
29
- export { BoxActor } from "./lythreeframe/Object/Actors/Shape/BoxActor";
30
- export { SkyActor } from "./lythreeframe/Object/Actors/Sky/SkyActor";
31
- export { PlaneActor } from "./lythreeframe/Object/Actors/Shape/PlaneActor";
32
- export { LevelActor } from './lythreeframe/Object/Actors/Level/LevelActor';
33
- export { SceneComponent } from "./lythreeframe/Object/Components/SceneComponent";
34
- export { MeshComponent } from "./lythreeframe/Object/Components/Mesh/MeshComponent";
35
- export { BoxComponent } from "./lythreeframe/Object/Components/Mesh/Shape/BoxComponent";
36
- export { PlaneComponent } from "./lythreeframe/Object/Components/Mesh/Shape/PlaneComponent";
37
- export { SphereComponent } from "./lythreeframe/Object/Components/Mesh/Shape/SphereComponent";
38
- export { LevelComponent } from "./lythreeframe/Object/Components/Level/LevelComponent";
39
- export { DirectionalLightComponent } from "./lythreeframe/Object/Components/Light/DirectionalLight/DirectionalLightComponent";
40
- export { AmbientLightComponent } from './lythreeframe/Object/Components/Light/AmbientLight/AmbientLightComponent';
41
- export { LabelComponent } from "./lythreeframe/Object/Components/2D/2DComponent";
42
- export { SkyComponent } from "./lythreeframe/Object/Components/Sky/SkyComponent";
43
- export type { SkyComponentParam } from "./lythreeframe/Object/Components/Sky/SkyComponent";
44
- export { DefaultSkyParam } from "./lythreeframe/Object/Components/Sky/SkyComponent";
45
- export { DefaultPostProcessParam } from "./lythreeframe/PostProcess/PostProcessParam";
46
- export { PostProcessStepType } from "./lythreeframe/PostProcess/PostProcessParam";
47
- export type { PostProcessStepParam } from "./lythreeframe/PostProcess/PostProcessParam";
48
- export type { PostProcessParam } from "./lythreeframe/PostProcess/PostProcessParam";
49
- export { DefaultBloomParam } from "./lythreeframe/PostProcess/Param/Bloom";
50
- export type { BloomParam } from "./lythreeframe/PostProcess/Param/Bloom";
51
- export { DefaultDOFParam } from "./lythreeframe/PostProcess/Param/DOF";
52
- export type { DOFParam } from "./lythreeframe/PostProcess/Param/DOF";
53
- export { DefaultGTAOParam } from "./lythreeframe/PostProcess/Param/GTAO";
54
- export type { GTAOParam } from "./lythreeframe/PostProcess/Param/GTAO";
55
- export { DefaultOutlineParams } from "./lythreeframe/PostProcess/Param/Outline";
56
- export type { OutlineParams } from "./lythreeframe/PostProcess/Param/Outline";
57
- export { DefaultSSRParam } from "./lythreeframe/PostProcess/Param/SSR";
58
- export type { SSRParam } from "./lythreeframe/PostProcess/Param/SSR";
59
- export { DefaultAAParams } from "./lythreeframe/PostProcess/Param/AAParam";
60
- export type { AAParams } from "./lythreeframe/PostProcess/Param/AAParam";
61
- export { DefaultLensFlareParam } from "./lythreeframe/PostProcess/Param/LensFlare";
62
- export type { LensFlareParam } from "./lythreeframe/PostProcess/Param/LensFlare";
63
- export { PostProcessManager } from "./lythreeframe/Frame/Rendering/PostProcess";
64
- export { Orbital } from "./lythreeframe/Object/PawnV2/Oribital";
65
- export { FirstPerson } from "./lythreeframe/Object/PawnV2/FirstPerson";
66
- export type { ITransforming } from "./lythreeframe/Object/PawnV2/TransformControl";
67
- export type { TransformType } from "./lythreeframe/Object/PawnV2/TransformControl";
68
- export type { TransformGizmoOptions } from "./lythreeframe/Object/PawnV2/TransformControl";
69
- export { TransformGizmo } from "./lythreeframe/Object/PawnV2/TransformControl";
70
- export { ThreeObjectLibrary } from "./lythreeframe/Library/ResourceLibrary";
1
+ export { AssetManager } from "./src/AssetManagement/AssetManager";
2
+ export { TAssetPointer, ASSET_POINTER_KEY, EDITOR_ASSET_ID_KEY } from "./src/AssetManagement/AssetPointer/AssetPointer";
3
+ export { TSmartPointer } from './src/Container/SmartPointer';
4
+ export { MaterialAssetPointer } from "./src/AssetManagement/AssetPointer/Assets/MaterialAssetPointer";
5
+ export { GeometryAssetPointer } from "./src/AssetManagement/AssetPointer/Assets/GeometryAssetPointer";
6
+ export { TextureAssetPointer } from "./src/AssetManagement/AssetPointer/Assets/TextureAssetPointer";
7
+ export { AssetCategory, AssetLoadState, ReferenceType, AssetType } from "./src/AssetManagement/AssetDefines";
8
+ export type { AssetReference, AssetDescriptor } from "./src/AssetManagement/AssetDefines";
9
+ export { AttachmentRules } from "./src/Defines";
10
+ export { Delegate } from "./src/Delegate";
11
+ export { ThreeJsApp } from "./src/ThreeJsApp";
12
+ export { Controller } from "./src/Frame/Controller";
13
+ export type { HitResult, ComponentInteractionEvent, ComponentHoverEvent, ComponentPointerDownEvent, ActorInteractionEvent, ActorHoverEvent } from "./src/Frame/Controller";
14
+ export { Viewport } from "./src/Frame/Viewport";
15
+ export { World } from "./src/Frame/World";
16
+ export type { CameraParam, PerspectiveCameraParam, OrthographicCameraParam } from './src/Frame/Parameters/CameraParameter';
17
+ export { DefaultCameraParam, DefaultPerspectiveCameraParam, DefaultOrthographicCameraParam } from './src/Frame/Parameters/CameraParameter';
18
+ export type { AppParam, AppClass } from "./src/Frame/Parameters/AppParameter";
19
+ export { DefaultAppParam } from "./src/Frame/Parameters/AppParameter";
20
+ export type { ViewportParam } from './src/Frame/Parameters/ViewportParameters';
21
+ export { DefaultViewportParam } from './src/Frame/Parameters/ViewportParameters';
22
+ export type { WorldParam } from "./src/Frame/Parameters/WorldParameter";
23
+ export { DefaultWorldParam } from "./src/Frame/Parameters/WorldParameter";
24
+ export type { RendererParameters } from './src/Frame/Parameters/RendererParameters';
25
+ export { DefaultRendererParameters } from './src/Frame/Parameters/RendererParameters';
26
+ export { Actor } from "./src/Object/Actor";
27
+ export { DirectionalLightActor } from "./src/Object/Actors/Light/DirectionalLightActor";
28
+ export { AmbientLightActor } from './src/Object/Actors/Light/AmbientLightActor';
29
+ export { BoxActor } from "./src/Object/Actors/Shape/BoxActor";
30
+ export { SkyActor } from "./src/Object/Actors/Sky/SkyActor";
31
+ export { PlaneActor } from "./src/Object/Actors/Shape/PlaneActor";
32
+ export { LevelActor } from './src/Object/Actors/Level/LevelActor';
33
+ export { SceneComponent } from "./src/Object/Components/SceneComponent";
34
+ export { MeshComponent } from "./src/Object/Components/Mesh/MeshComponent";
35
+ export { CustomMeshComponent } from "./src/Object/Components/Mesh/CustomMeshComponent";
36
+ export type { CustomMeshData } from "./src/Object/Components/Mesh/CustomMeshComponent";
37
+ export { BoxComponent } from "./src/Object/Components/Mesh/Shape/BoxComponent";
38
+ export { PlaneComponent } from "./src/Object/Components/Mesh/Shape/PlaneComponent";
39
+ export { SphereComponent } from "./src/Object/Components/Mesh/Shape/SphereComponent";
40
+ export { LevelComponent } from "./src/Object/Components/Level/LevelComponent";
41
+ export { DirectionalLightComponent } from "./src/Object/Components/Light/DirectionalLight/DirectionalLightComponent";
42
+ export { AmbientLightComponent } from './src/Object/Components/Light/AmbientLight/AmbientLightComponent';
43
+ export { LabelComponent } from "./src/Object/Components/2D/2DComponent";
44
+ export { SkyComponent } from "./src/Object/Components/Sky/SkyComponent";
45
+ export type { SkyComponentParam } from "./src/Object/Components/Sky/SkyComponent";
46
+ export { DefaultSkyParam } from "./src/Object/Components/Sky/SkyComponent";
47
+ export { DefaultPostProcessParam } from "./src/PostProcess/PostProcessParam";
48
+ export { PostProcessStepType } from "./src/PostProcess/PostProcessParam";
49
+ export type { PostProcessStepParam } from "./src/PostProcess/PostProcessParam";
50
+ export type { PostProcessParam } from "./src/PostProcess/PostProcessParam";
51
+ export { DefaultBloomParam } from "./src/PostProcess/Param/Bloom";
52
+ export type { BloomParam } from "./src/PostProcess/Param/Bloom";
53
+ export { DefaultDOFParam } from "./src/PostProcess/Param/DOF";
54
+ export type { DOFParam } from "./src/PostProcess/Param/DOF";
55
+ export { DefaultGTAOParam } from "./src/PostProcess/Param/GTAO";
56
+ export type { GTAOParam } from "./src/PostProcess/Param/GTAO";
57
+ export { DefaultOutlineParams } from "./src/PostProcess/Param/Outline";
58
+ export type { OutlineParams } from "./src/PostProcess/Param/Outline";
59
+ export { DefaultSSRParam } from "./src/PostProcess/Param/SSR";
60
+ export type { SSRParam } from "./src/PostProcess/Param/SSR";
61
+ export { DefaultAAParams } from "./src/PostProcess/Param/AAParam";
62
+ export type { AAParams } from "./src/PostProcess/Param/AAParam";
63
+ export { DefaultLensFlareParam } from "./src/PostProcess/Param/LensFlare";
64
+ export type { LensFlareParam } from "./src/PostProcess/Param/LensFlare";
65
+ export { PostProcessManager } from "./src/Frame/Rendering/PostProcess";
66
+ export { Orbital } from "./src/Object/PawnV2/Oribital";
67
+ export { FirstPerson } from "./src/Object/PawnV2/FirstPerson";
68
+ export type { ITransforming } from "./src/Object/PawnV2/TransformControl";
69
+ export type { TransformType } from "./src/Object/PawnV2/TransformControl";
70
+ export type { TransformGizmoOptions } from "./src/Object/PawnV2/TransformControl";
71
+ export { TransformGizmo } from "./src/Object/PawnV2/TransformControl";
72
+ export { ThreeObjectLibrary } from "./src/Library/ResourceLibrary";
@@ -0,0 +1,65 @@
1
+ /**
2
+ * 资产类别 - 用于底层资产管理
3
+ */
4
+ export declare enum AssetCategory {
5
+ Geometry = "geometry",
6
+ Material = "material",
7
+ Texture = "texture",
8
+ Actor = "actor",
9
+ ActorManager = "actorManager",
10
+ Level = "level",
11
+ HTML = "html",
12
+ Code = "code",
13
+ Undefined = "undefined"
14
+ }
15
+ /**
16
+ * 资产加载状态
17
+ */
18
+ export declare enum AssetLoadState {
19
+ Unloaded = "unloaded",
20
+ Loading = "loading",
21
+ Loaded = "loaded",
22
+ Error = "error"
23
+ }
24
+ /**
25
+ * 引用者类型
26
+ */
27
+ export declare enum ReferenceType {
28
+ Actor = "actor",
29
+ Component = "component",
30
+ Material = "material",
31
+ Level = "level",
32
+ AssetPointer = "assetPointer",
33
+ External = "external"
34
+ }
35
+ /**
36
+ * 资产引用信息
37
+ */
38
+ export interface AssetReference {
39
+ /** 引用者的 UUID */
40
+ refererId: string;
41
+ /** 引用者类型 */
42
+ refererType: ReferenceType;
43
+ /** 属性路径 (如 "map", "normalMap") */
44
+ propertyPath?: string;
45
+ }
46
+ /**
47
+ * 资产描述符 - 用于序列化和延迟加载
48
+ */
49
+ export interface AssetDescriptor {
50
+ uuid: string;
51
+ name: string;
52
+ category: AssetCategory;
53
+ thumbnail?: string;
54
+ packageName?: string;
55
+ contentPath?: string;
56
+ }
57
+ /**
58
+ * @deprecated 使用 AssetCategory 替代
59
+ */
60
+ export declare enum AssetType {
61
+ geometry = 1,
62
+ material = 2,
63
+ texture = 3,
64
+ undefined = -1
65
+ }
@@ -0,0 +1,35 @@
1
+ import { BufferGeometry, LoadingManager, Material, Mesh, Texture } from "three/webgpu";
2
+ import { SceneComponent } from "../Object/Components/SceneComponent";
3
+ import { TAssetPointer } from "./AssetPointer/AssetPointer";
4
+ import { DRACOLoader, GLTF, GLTFLoader } from 'three/examples/jsm/Addons.js';
5
+ import { Object3D } from "three/webgpu";
6
+ import { ThreeJsApp } from "../ThreeJsApp";
7
+ import { MaterialAssetPointer } from "./AssetPointer/Assets/MaterialAssetPointer";
8
+ import { TextureAssetPointer } from "./AssetPointer/Assets/TextureAssetPointer";
9
+ import { GeometryAssetPointer } from "./AssetPointer/Assets/GeometryAssetPointer";
10
+ export declare class AssetManager {
11
+ protected geometryAssets: Map<string, GeometryAssetPointer>;
12
+ protected textureAssets: Map<string, TextureAssetPointer>;
13
+ protected materialAssets: Map<string, MaterialAssetPointer>;
14
+ protected dracoLoader: DRACOLoader | null;
15
+ protected readonly gltfLoader: GLTFLoader;
16
+ protected readonly loadingManager: LoadingManager;
17
+ protected app: ThreeJsApp;
18
+ constructor(app: ThreeJsApp);
19
+ get LoadingManager(): LoadingManager;
20
+ init(): Promise<void>;
21
+ setupDracoLoader(dracoPath: string): void;
22
+ convertThreeObjectToLYObject(parentLYComponent: SceneComponent, threejsObject: Object3D): SceneComponent | null;
23
+ collectResourcesAndReferences(object: Object3D): void;
24
+ checkMeshResource(mesh: Mesh): void;
25
+ loadGltfFromPathAsync(path: string): Promise<GLTF>;
26
+ loadGltfFromPath(path: string, onLoadFinished: (gltf: GLTF) => void): void;
27
+ loadGltfFromBuffer(data: ArrayBuffer | string, path: string, onLoadFinished: (gltf: GLTF) => void): void;
28
+ loadFile(filepath: string | undefined, onLoadFinished: (data: string | ArrayBuffer) => void): void;
29
+ addAsset(asset: BufferGeometry | Material | Texture, referenceCount?: number): TAssetPointer<BufferGeometry | Material | Texture> | undefined;
30
+ addMaterialAsset(asset: Material, referenceCount?: number): MaterialAssetPointer;
31
+ addTextureAsset(asset: Texture, referenceCount?: number): TextureAssetPointer;
32
+ addGeometryAsset(asset: BufferGeometry, referenceCount?: number): GeometryAssetPointer;
33
+ releaseAsset(asset: BufferGeometry | Material | Texture): void;
34
+ clearAssets(): void;
35
+ }
@@ -0,0 +1,20 @@
1
+ import { BufferGeometry, Material, Texture } from "three/webgpu";
2
+ import { TSmartPointer } from "../../Container/SmartPointer";
3
+ /**
4
+ * userData 键名常量
5
+ */
6
+ export declare const ASSET_POINTER_KEY: "assetPointer";
7
+ export declare const EDITOR_ASSET_ID_KEY: "editorAssetId";
8
+ /**
9
+ * Three.js 资源的智能指针
10
+ * 管理 BufferGeometry、Material、Texture 的生命周期
11
+ */
12
+ export declare abstract class TAssetPointer<T extends BufferGeometry | Texture | Material> extends TSmartPointer<T> {
13
+ private readonly _uuid;
14
+ get uuid(): string;
15
+ constructor(value: T, referenceCount?: number);
16
+ /**
17
+ * 释放资源,清理 userData 并调用 Three.js 的 dispose
18
+ */
19
+ protected dispose(): void;
20
+ }
@@ -0,0 +1,5 @@
1
+ import { TAssetPointer } from "../AssetPointer";
2
+ import { BufferGeometry } from "three/webgpu";
3
+ export declare class GeometryAssetPointer extends TAssetPointer<BufferGeometry> {
4
+ constructor(value: BufferGeometry, referenceCount?: number);
5
+ }
@@ -0,0 +1,24 @@
1
+ import { Material } from "three/webgpu";
2
+ import { TAssetPointer } from "../AssetPointer";
3
+ import { TextureAssetPointer } from "./TextureAssetPointer";
4
+ /**
5
+ * 材质资产指针
6
+ * 管理材质及其关联的纹理引用
7
+ */
8
+ export declare class MaterialAssetPointer extends TAssetPointer<Material> {
9
+ protected textures: Map<string, TextureAssetPointer>;
10
+ constructor(value: Material, usedTextures: Map<string, TextureAssetPointer>, referenceCount?: number);
11
+ get texturePointers(): Map<string, TextureAssetPointer>;
12
+ /**
13
+ * 设置材质的纹理属性
14
+ */
15
+ setTexture(name: string, texturePtr: TextureAssetPointer): void;
16
+ /**
17
+ * 移除纹理属性
18
+ */
19
+ removeTexture(name: string): void;
20
+ /**
21
+ * 释放材质时同时释放所有关联的纹理引用
22
+ */
23
+ protected dispose(): void;
24
+ }
@@ -0,0 +1,5 @@
1
+ import { TAssetPointer } from "../AssetPointer";
2
+ import { Texture } from "three/webgpu";
3
+ export declare class TextureAssetPointer extends TAssetPointer<Texture> {
4
+ constructor(value: Texture, referenceCount?: number);
5
+ }
@@ -0,0 +1,15 @@
1
+ export declare class TSmartPointer<T> {
2
+ protected referenceCount: number;
3
+ protected value: T | null;
4
+ constructor(value: T, referenceCount?: number);
5
+ getRefCount(): number;
6
+ isValid(): boolean;
7
+ addRef(count?: number): void;
8
+ release(): void;
9
+ forceRelease(): void;
10
+ /**
11
+ * 子类覆盖此方法以执行清理逻辑
12
+ */
13
+ protected dispose(): void;
14
+ getValue(): T | null;
15
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum AttachmentRules {
2
+ KeepWorld = 1,
3
+ KeepRelative = 2
4
+ }
@@ -0,0 +1,8 @@
1
+ export declare class Delegate<T extends any[]> {
2
+ private functions;
3
+ constructor();
4
+ broadcast(...args: T): void;
5
+ add(func: (...args: T) => void): void;
6
+ remove(func: (...args: T) => void): void;
7
+ clear(): void;
8
+ }
@@ -0,0 +1,6 @@
1
+ import { OrthographicCamera, PerspectiveCamera } from "three/webgpu";
2
+ import { CameraParam } from "../Frame/Parameters/CameraParameter";
3
+ export declare class CameraFactory {
4
+ static createCamera(param: CameraParam): PerspectiveCamera | OrthographicCamera;
5
+ static updataCamera(param: CameraParam, camera: PerspectiveCamera | OrthographicCamera): PerspectiveCamera | OrthographicCamera;
6
+ }
@@ -0,0 +1,2 @@
1
+ export declare class RendererFactory {
2
+ }
@@ -0,0 +1,130 @@
1
+ import { ThreeJsApp } from "../ThreeJsApp";
2
+ import { Euler, Intersection, OrthographicCamera, PerspectiveCamera, Quaternion, Raycaster, Vector2, Vector3 } from "three/webgpu";
3
+ import { World } from "./World";
4
+ import { Viewport } from "./Viewport";
5
+ import { Pawn } from "../Object/PawnV2/Pawn";
6
+ import { SceneComponent } from "../Object/Components/SceneComponent";
7
+ import { Actor } from "../Object/Actor";
8
+ import { Delegate } from "../Delegate";
9
+ export interface HitResult {
10
+ component: SceneComponent;
11
+ hit: Intersection;
12
+ }
13
+ /** 组件交互事件 */
14
+ export interface ComponentInteractionEvent {
15
+ component: SceneComponent;
16
+ hit: Intersection;
17
+ handled: boolean;
18
+ ctrlKey: boolean;
19
+ shiftKey: boolean;
20
+ altKey: boolean;
21
+ }
22
+ /** 组件悬停事件 */
23
+ export interface ComponentHoverEvent {
24
+ component: SceneComponent;
25
+ hit: Intersection | null;
26
+ handled: boolean;
27
+ }
28
+ /** 组件按下事件 */
29
+ export interface ComponentPointerDownEvent {
30
+ component: SceneComponent;
31
+ hit: Intersection;
32
+ button: number;
33
+ handled: boolean;
34
+ }
35
+ /** Actor 交互事件 */
36
+ export interface ActorInteractionEvent {
37
+ actor: Actor;
38
+ component: SceneComponent;
39
+ hit: Intersection;
40
+ handled: boolean;
41
+ ctrlKey: boolean;
42
+ shiftKey: boolean;
43
+ altKey: boolean;
44
+ }
45
+ /** Actor 悬停事件 */
46
+ export interface ActorHoverEvent {
47
+ actor: Actor;
48
+ component: SceneComponent;
49
+ hit: Intersection | null;
50
+ handled: boolean;
51
+ }
52
+ export declare class Controller {
53
+ protected _app: ThreeJsApp;
54
+ protected _pawn: Pawn | null;
55
+ protected raycaster: Raycaster;
56
+ protected hoveringComponent: SceneComponent | null;
57
+ protected hoveringActor: Actor | null;
58
+ protected prepareClickComponent: SceneComponent | null;
59
+ protected prepareClickHit: Intersection | null;
60
+ protected prepareClickModifiers: {
61
+ ctrlKey: boolean;
62
+ shiftKey: boolean;
63
+ altKey: boolean;
64
+ };
65
+ protected _pointButtonIsDown: Set<number>;
66
+ protected _onComponentClickDelegate: Delegate<[ComponentInteractionEvent]>;
67
+ protected _onComponentDoubleClickDelegate: Delegate<[ComponentInteractionEvent]>;
68
+ protected _onComponentHoverBeginDelegate: Delegate<[ComponentHoverEvent]>;
69
+ protected _onComponentHoverEndDelegate: Delegate<[ComponentHoverEvent]>;
70
+ protected _onComponentPointerDownDelegate: Delegate<[ComponentPointerDownEvent]>;
71
+ protected _onActorClickDelegate: Delegate<[ActorInteractionEvent]>;
72
+ protected _onActorDoubleClickDelegate: Delegate<[ActorInteractionEvent]>;
73
+ protected _onActorHoverBeginDelegate: Delegate<[ActorHoverEvent]>;
74
+ protected _onActorHoverEndDelegate: Delegate<[ActorHoverEvent]>;
75
+ protected _onClickNothingDelegate: Delegate<[void]>;
76
+ protected pointerPosition: Vector2;
77
+ protected pointerLeftDownPosition: Vector2;
78
+ protected readonly _tempVec2: Vector2;
79
+ protected readonly _raycastVec2: Vector2;
80
+ protected readonly doubleClickDelay: number;
81
+ protected leftClickTimer: number | null;
82
+ protected onPointerMove: (event: MouseEvent) => void;
83
+ protected onPointerEnter: (event: MouseEvent) => void;
84
+ protected onPointerLeave: (event: MouseEvent) => void;
85
+ protected onPointerUp: (event: MouseEvent) => void;
86
+ protected onPointerDown: (event: MouseEvent) => void;
87
+ get camera(): PerspectiveCamera | OrthographicCamera;
88
+ get world(): World;
89
+ get viewPort(): Viewport;
90
+ get app(): ThreeJsApp;
91
+ get pawn(): Pawn;
92
+ get onComponentClickDelegate(): Delegate<[ComponentInteractionEvent]>;
93
+ get onComponentDoubleClickDelegate(): Delegate<[ComponentInteractionEvent]>;
94
+ get onComponentHoverBeginDelegate(): Delegate<[ComponentHoverEvent]>;
95
+ get onComponentHoverEndDelegate(): Delegate<[ComponentHoverEvent]>;
96
+ get onComponentPointerDownDelegate(): Delegate<[ComponentPointerDownEvent]>;
97
+ get onActorClickDelegate(): Delegate<[ActorInteractionEvent]>;
98
+ get onActorDoubleClickDelegate(): Delegate<[ActorInteractionEvent]>;
99
+ get onActorHoverBeginDelegate(): Delegate<[ActorHoverEvent]>;
100
+ get onActorHoverEndDelegate(): Delegate<[ActorHoverEvent]>;
101
+ get onClickNothingDelegate(): Delegate<[void]>;
102
+ constructor(app: ThreeJsApp);
103
+ init(): void;
104
+ updateCamera(): void;
105
+ tick(deltaTime: number): void;
106
+ destroy(): void;
107
+ protected onPointerMoveEvent(event: MouseEvent): void;
108
+ protected clearHovering(): void;
109
+ protected onPointerUpEvent(event: MouseEvent): void;
110
+ protected handleFirstClick(): void;
111
+ protected handleDoubleClick(): void;
112
+ protected onPointerDownEvent(event: MouseEvent): void;
113
+ protected onPointerEnterEvent(_event: MouseEvent): void;
114
+ protected onPointerLeaveEvent(_event: MouseEvent): void;
115
+ protected fireComponentHoverBegin(component: SceneComponent, hit: Intersection): void;
116
+ protected fireComponentHoverEnd(component: SceneComponent): void;
117
+ protected fireComponentClick(component: SceneComponent, hit: Intersection, isDoubleClick: boolean): void;
118
+ protected firePointerDownEvent(component: SceneComponent, hit: Intersection, button: number): void;
119
+ protected fireActorHoverBegin(actor: Actor, component: SceneComponent, hit: Intersection): void;
120
+ protected fireActorHoverEnd(actor: Actor, component: SceneComponent): void;
121
+ protected fireActorClick(actor: Actor, component: SceneComponent, hit: Intersection, isDoubleClick: boolean): void;
122
+ protected fireClickEvents(component: SceneComponent, hit: Intersection, isDoubleClick: boolean): void;
123
+ protected clearClickTimer(): void;
124
+ protected addCorePointerListeners(): void;
125
+ protected removeCorePointerListeners(): void;
126
+ getHitResultUnderCursor(): HitResult | null;
127
+ getHitResultFromScreenPoint(x: number, y: number): HitResult | null;
128
+ getAllHitResultFromScreenPoint(x: number, y: number): HitResult[];
129
+ focusTo(targetPos: Vector3, targetQuat: Quaternion | Euler, distance: number, time: number, onGoing?: (() => void) | null, onFinished?: (() => void) | null): void;
130
+ }
@@ -0,0 +1,25 @@
1
+ import { CameraParam } from "./CameraParameter";
2
+ import { WorldParam } from "./WorldParameter";
3
+ import { Controller } from "../Controller";
4
+ import { World } from "../World";
5
+ import { Viewport } from "../Viewport";
6
+ import { ViewportParam } from "./ViewportParameters";
7
+ import { AssetManager } from "../../AssetManagement/AssetManager";
8
+ import { PostProcessParam } from "../../PostProcess/PostProcessParam";
9
+ import { RendererParameters } from "./RendererParameters";
10
+ export interface AppClass {
11
+ assetManagerClass: typeof AssetManager;
12
+ controllerClass: typeof Controller;
13
+ worldClass: typeof World;
14
+ viewportClass: typeof Viewport;
15
+ }
16
+ export interface AppParam {
17
+ renderParam?: RendererParameters;
18
+ cameraParam?: CameraParam;
19
+ postProcessParam?: PostProcessParam;
20
+ worldParam?: WorldParam;
21
+ viewportParam: ViewportParam;
22
+ classes?: AppClass;
23
+ isRenderEveryFrame?: boolean;
24
+ }
25
+ export declare const DefaultAppParam: AppParam;
@@ -0,0 +1,22 @@
1
+ export interface CameraParam {
2
+ type: "Perspective" | "Orthographic";
3
+ }
4
+ export interface PerspectiveCameraParam extends CameraParam {
5
+ type: "Perspective";
6
+ fov: number;
7
+ aspect: number;
8
+ near: number;
9
+ far: number;
10
+ }
11
+ export interface OrthographicCameraParam extends CameraParam {
12
+ type: "Orthographic";
13
+ left: number;
14
+ right: number;
15
+ top: number;
16
+ bottom: number;
17
+ near: number;
18
+ far: number;
19
+ }
20
+ export declare const DefaultPerspectiveCameraParam: PerspectiveCameraParam;
21
+ export declare const DefaultOrthographicCameraParam: OrthographicCameraParam;
22
+ export declare const DefaultCameraParam: CameraParam;
@@ -0,0 +1,17 @@
1
+ import { ShadowMapType, TextureDataType, ToneMapping } from "three/webgpu";
2
+ export interface RendererParameters {
3
+ logarithmicDepthBuffer?: boolean | undefined;
4
+ alpha?: boolean | undefined;
5
+ depth?: boolean | undefined;
6
+ stencil?: boolean | undefined;
7
+ antialias?: boolean | undefined;
8
+ samples?: number | undefined;
9
+ forceWebGL?: boolean | undefined;
10
+ outputBufferType?: TextureDataType | undefined;
11
+ toneMapping: ToneMapping;
12
+ toneMappingExposure: number;
13
+ shadowMapEnabled: boolean;
14
+ shadowMapType: ShadowMapType | null;
15
+ }
16
+ export declare const DefaultRendererParameters: RendererParameters;
17
+ export declare const RendererParametersNeedsRebuild: never[];
@@ -0,0 +1,6 @@
1
+ export interface ViewportParam {
2
+ elementId: string | null;
3
+ isLabelRendererNeeded: boolean;
4
+ isUILayerNeeded: boolean;
5
+ }
6
+ export declare const DefaultViewportParam: ViewportParam;
@@ -0,0 +1,5 @@
1
+ import { LevelActor } from "../../Object/Actors/Level/LevelActor";
2
+ export interface WorldParam {
3
+ levelActorClass: typeof LevelActor;
4
+ }
5
+ export declare const DefaultWorldParam: WorldParam;
@@ -0,0 +1,45 @@
1
+ import { Camera, Data3DTexture, Object3D, PostProcessing, Scene, WebGPURenderer } from "three/webgpu";
2
+ import { PostProcessParam, PostProcessStepParam } from '../../PostProcess/PostProcessParam';
3
+ export declare class PostProcessManager {
4
+ private postProcessParam;
5
+ private postProcessing;
6
+ private outlineObjects;
7
+ private effectUniforms;
8
+ private outlinePass;
9
+ private bloomPass;
10
+ private dofPass;
11
+ private gtaoPass;
12
+ private traaPass;
13
+ private lensflarePass;
14
+ private lut3dTexture;
15
+ private renderer;
16
+ protected scene: Scene;
17
+ protected camera: Camera;
18
+ private onDirtyCallback;
19
+ constructor(renderer: WebGPURenderer, scene: Scene, camera: Camera, postProcessParam: PostProcessParam, onDirtyCallback?: () => void);
20
+ get processing(): PostProcessing | null;
21
+ updateCamera(camera: Camera): void;
22
+ setup(): void;
23
+ private buildPipeline;
24
+ /** Hook for subclasses to modify the final output node. Override to add custom effects. */
25
+ protected onBuildFinalNode(node: any): any;
26
+ private createEffectUniforms;
27
+ private getStepParam;
28
+ private updateAllUniforms;
29
+ updateSteps(steps: PostProcessStepParam[]): void;
30
+ addOutlineObject(obj: Object3D): void;
31
+ setOutlineObjects(objects: Object3D[]): void;
32
+ removeOutlineObject(obj: Object3D): void;
33
+ /**
34
+ * 设置 3D LUT 纹理
35
+ * @param lutTexture 3D LUT 纹理,传 null 清除
36
+ */
37
+ setLUT3DTexture(lutTexture: Data3DTexture | null): void;
38
+ /**
39
+ * 获取当前 3D LUT 纹理
40
+ */
41
+ getLUT3DTexture(): Data3DTexture | null;
42
+ render(): boolean;
43
+ destroy(): void;
44
+ private markDirty;
45
+ }