lythreeframe 1.0.5 → 1.0.7

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 (136) hide show
  1. package/dist/bundle.cjs.js +2782 -0
  2. package/dist/bundle.esm.js +2747 -0
  3. package/dist/index.d.ts +42 -0
  4. package/dist/lythreeframe/AssetManagement/AssetDefines.d.ts +6 -0
  5. package/dist/lythreeframe/AssetManagement/AssetManager.d.ts +23 -0
  6. package/dist/lythreeframe/AssetManagement/AssetPointer/AssetPointer.d.ts +9 -0
  7. package/dist/lythreeframe/AssetManagement/Task/Task.d.ts +7 -0
  8. package/dist/lythreeframe/Container/SmartPointer.d.ts +10 -0
  9. package/dist/lythreeframe/Defines.d.ts +4 -0
  10. package/dist/lythreeframe/Delegate.d.ts +8 -0
  11. package/dist/lythreeframe/Factory/CameraFactory.d.ts +20 -0
  12. package/dist/lythreeframe/Factory/RendererFactory.d.ts +2 -0
  13. package/dist/lythreeframe/Frame/Controller.d.ts +40 -0
  14. package/dist/lythreeframe/Frame/Viewport.d.ts +50 -0
  15. package/dist/lythreeframe/Frame/World.d.ts +18 -0
  16. package/dist/lythreeframe/Geometry/PlaneGeometry.d.ts +3 -0
  17. package/dist/lythreeframe/Geometry/TriangleGeometry.d.ts +3 -0
  18. package/dist/lythreeframe/Library/ContainerLibrary.d.ts +3 -0
  19. package/dist/lythreeframe/Library/Math.d.ts +27 -0
  20. package/dist/lythreeframe/Library/ResourceLibrary.d.ts +6 -0
  21. package/dist/lythreeframe/Object/Actor.d.ts +86 -0
  22. package/dist/lythreeframe/Object/Actors/Camera/CameraActor.d.ts +4 -0
  23. package/dist/lythreeframe/Object/Actors/Light/DirectionalLightActor.d.ts +7 -0
  24. package/dist/lythreeframe/Object/Actors/Shape/BoxActor.d.ts +5 -0
  25. package/dist/lythreeframe/Object/Actors/Shape/PlaneActor.d.ts +9 -0
  26. package/dist/lythreeframe/Object/BaseObject.d.ts +10 -0
  27. package/dist/lythreeframe/Object/Components/2D/2DComponent.d.ts +13 -0
  28. package/dist/lythreeframe/Object/Components/Camera/CameraComponent.d.ts +26 -0
  29. package/dist/lythreeframe/Object/Components/Component.d.ts +17 -0
  30. package/dist/lythreeframe/Object/Components/Light/DirectionalLight/DirectionalLightComponent.d.ts +15 -0
  31. package/dist/lythreeframe/Object/Components/Light/LightComponent.d.ts +12 -0
  32. package/dist/lythreeframe/Object/Components/Mesh/InstanceMesh/InstanceMeshComponent.d.ts +7 -0
  33. package/dist/lythreeframe/Object/Components/Mesh/InstanceMesh/MultiInstanceMeshComponent.d.ts +13 -0
  34. package/dist/lythreeframe/Object/Components/Mesh/MeshComponent.d.ts +22 -0
  35. package/dist/lythreeframe/Object/Components/Mesh/Shape/BoxComponent.d.ts +5 -0
  36. package/dist/lythreeframe/Object/Components/Mesh/Shape/PlaneComponent.d.ts +5 -0
  37. package/dist/lythreeframe/Object/Components/Mesh/Shape/SphereComponent.d.ts +5 -0
  38. package/dist/lythreeframe/Object/Components/Mesh/Sprite/SpriteComponent.d.ts +8 -0
  39. package/dist/lythreeframe/Object/Components/SceneComponent.d.ts +66 -0
  40. package/dist/lythreeframe/Object/PawnV2/FirstPerson.d.ts +5 -0
  41. package/dist/lythreeframe/Object/PawnV2/Oribital.d.ts +12 -0
  42. package/dist/lythreeframe/Object/PawnV2/Pawn.d.ts +14 -0
  43. package/dist/lythreeframe/Object/PawnV2/TransformControl.d.ts +46 -0
  44. package/dist/lythreeframe/PostProcess/Param/Bloom.d.ts +6 -0
  45. package/dist/lythreeframe/PostProcess/Param/DOF.d.ts +6 -0
  46. package/dist/lythreeframe/PostProcess/Param/Denoise.d.ts +7 -0
  47. package/dist/lythreeframe/PostProcess/Param/GTAO.d.ts +11 -0
  48. package/dist/lythreeframe/PostProcess/Param/LensFlare.d.ts +6 -0
  49. package/dist/lythreeframe/PostProcess/Param/MotionBlur.d.ts +4 -0
  50. package/dist/lythreeframe/PostProcess/Param/Outline.d.ts +17 -0
  51. package/dist/lythreeframe/PostProcess/Param/SSR.d.ts +6 -0
  52. package/dist/lythreeframe/PostProcess/Param/ToneMapping.d.ts +9 -0
  53. package/dist/lythreeframe/PostProcess/PostProcessParam.d.ts +16 -0
  54. package/dist/lythreeframe/PostProcess/WebGPUPostProcessFactory.d.ts +43 -0
  55. package/dist/lythreeframe/Shader/Postprocess/ColorShader.d.ts +29 -0
  56. package/dist/lythreeframe/ThreeJsApp.d.ts +35 -0
  57. package/package.json +26 -14
  58. package/dist/index.ts +0 -80
  59. package/rollup.config.js +0 -31
  60. package/src/draco/README.md +0 -32
  61. package/src/draco/draco_decoder.js +0 -34
  62. package/src/draco/draco_decoder.wasm +0 -0
  63. package/src/draco/draco_encoder.js +0 -33
  64. package/src/draco/draco_wasm_wrapper.js +0 -117
  65. package/src/draco/gltf/draco_decoder.js +0 -33
  66. package/src/draco/gltf/draco_decoder.wasm +0 -0
  67. package/src/draco/gltf/draco_encoder.js +0 -33
  68. package/src/draco/gltf/draco_wasm_wrapper.js +0 -116
  69. package/src/index.ts +0 -44
  70. package/src/lythreeframe/AssetManagement/AssetDefines.ts +0 -8
  71. package/src/lythreeframe/AssetManagement/AssetManager.ts +0 -288
  72. package/src/lythreeframe/AssetManagement/AssetPointer/AssetPointer.ts +0 -41
  73. package/src/lythreeframe/AssetManagement/Task/Task.ts +0 -24
  74. package/src/lythreeframe/Container/SmartPointer.ts +0 -54
  75. package/src/lythreeframe/Defines.ts +0 -11
  76. package/src/lythreeframe/Delegate.ts +0 -37
  77. package/src/lythreeframe/Factory/CameraFactory.ts +0 -81
  78. package/src/lythreeframe/Factory/RendererFactory.ts +0 -7
  79. package/src/lythreeframe/Frame/Controller.ts +0 -261
  80. package/src/lythreeframe/Frame/Viewport.ts +0 -516
  81. package/src/lythreeframe/Frame/World.ts +0 -59
  82. package/src/lythreeframe/Frame.ts +0 -511
  83. package/src/lythreeframe/Geometry/PlaneGeometry.ts +0 -53
  84. package/src/lythreeframe/Geometry/TriangleGeometry.ts +0 -50
  85. package/src/lythreeframe/Library/ContainerLibrary.ts +0 -21
  86. package/src/lythreeframe/Library/MaterialLibrary.ts +0 -292
  87. package/src/lythreeframe/Library/Math.ts +0 -154
  88. package/src/lythreeframe/Library/ResourceLibrary.ts +0 -21
  89. package/src/lythreeframe/Object/Actor.ts +0 -571
  90. package/src/lythreeframe/Object/Actors/Camera/CameraActor.ts +0 -11
  91. package/src/lythreeframe/Object/Actors/Light/DirectionalLightActor.ts +0 -18
  92. package/src/lythreeframe/Object/Actors/Shape/BoxActor.ts +0 -20
  93. package/src/lythreeframe/Object/Actors/Shape/CurveActor.ts +0 -11
  94. package/src/lythreeframe/Object/Actors/Shape/PlaneActor.ts +0 -27
  95. package/src/lythreeframe/Object/Actors/Shape/TubeActor.ts +0 -37
  96. package/src/lythreeframe/Object/BaseObject.ts +0 -45
  97. package/src/lythreeframe/Object/Components/2D/2DComponent.ts +0 -64
  98. package/src/lythreeframe/Object/Components/Camera/CameraComponent.ts +0 -113
  99. package/src/lythreeframe/Object/Components/Component.ts +0 -67
  100. package/src/lythreeframe/Object/Components/Light/DirectionalLight/DirectionalLightComponent.ts +0 -78
  101. package/src/lythreeframe/Object/Components/Light/LightComponent.ts +0 -54
  102. package/src/lythreeframe/Object/Components/Mesh/InstanceMesh/InstanceMeshComponent.ts +0 -39
  103. package/src/lythreeframe/Object/Components/Mesh/InstanceMesh/MultiInstanceMeshComponent.ts +0 -115
  104. package/src/lythreeframe/Object/Components/Mesh/Line/CurveComponent.ts +0 -221
  105. package/src/lythreeframe/Object/Components/Mesh/MeshComponent.ts +0 -162
  106. package/src/lythreeframe/Object/Components/Mesh/Shape/BoxComponent.ts +0 -17
  107. package/src/lythreeframe/Object/Components/Mesh/Shape/PlaneComponent.ts +0 -10
  108. package/src/lythreeframe/Object/Components/Mesh/Shape/SphereComponent.ts +0 -10
  109. package/src/lythreeframe/Object/Components/Mesh/Sprite/SpriteComponent.ts +0 -32
  110. package/src/lythreeframe/Object/Components/SceneComponent.ts +0 -811
  111. package/src/lythreeframe/Object/Controller/Controller.ts +0 -764
  112. package/src/lythreeframe/Object/Pawn/CameraStatus.ts +0 -262
  113. package/src/lythreeframe/Object/Pawn/FirstPerson.ts +0 -230
  114. package/src/lythreeframe/Object/Pawn/Oribital.ts +0 -276
  115. package/src/lythreeframe/Object/Pawn/PawnBase.ts +0 -189
  116. package/src/lythreeframe/Object/Pawn/TopView.ts +0 -205
  117. package/src/lythreeframe/Object/Pawn/TransformControl.ts +0 -215
  118. package/src/lythreeframe/Object/Pawn/staticCamera.ts +0 -80
  119. package/src/lythreeframe/Object/PawnV2/FirstPerson.ts +0 -12
  120. package/src/lythreeframe/Object/PawnV2/Oribital.ts +0 -45
  121. package/src/lythreeframe/Object/PawnV2/Pawn.ts +0 -50
  122. package/src/lythreeframe/Object/PawnV2/TransformControl.ts +0 -202
  123. package/src/lythreeframe/PostProcess/Param/Bloom.ts +0 -12
  124. package/src/lythreeframe/PostProcess/Param/DOF.ts +0 -13
  125. package/src/lythreeframe/PostProcess/Param/Denoise.ts +0 -14
  126. package/src/lythreeframe/PostProcess/Param/GTAO.ts +0 -21
  127. package/src/lythreeframe/PostProcess/Param/LensFlare.ts +0 -11
  128. package/src/lythreeframe/PostProcess/Param/MotionBlur.ts +0 -8
  129. package/src/lythreeframe/PostProcess/Param/Outline.ts +0 -20
  130. package/src/lythreeframe/PostProcess/Param/SSR.ts +0 -11
  131. package/src/lythreeframe/PostProcess/Param/ToneMapping.ts +0 -31
  132. package/src/lythreeframe/PostProcess/PostProcessParam.ts +0 -26
  133. package/src/lythreeframe/PostProcess/WebGPUPostProcessFactory.ts +0 -217
  134. package/src/lythreeframe/Shader/Postprocess/ColorShader.ts +0 -49
  135. package/src/lythreeframe/ThreeJsApp.ts +0 -124
  136. package/tsconfig.json +0 -105
@@ -1,54 +0,0 @@
1
- 
2
- export class TSmartPointer<T>
3
- {
4
- protected referenceCount:number = 1;
5
- protected value:T | null = null;
6
-
7
- constructor(value:T, referenceCount:number = 1)
8
- {
9
- this.value = value;
10
- this.referenceCount = referenceCount;
11
- }
12
-
13
- getRefCount():number
14
- {
15
- return this.referenceCount;
16
- }
17
-
18
- addRef(count:number = 1):void
19
- {
20
- if (this.value !== null)
21
- {
22
- this.referenceCount+=count;
23
- }
24
- }
25
-
26
- release():void
27
- {
28
- if (this.value !== null)
29
- {
30
- this.referenceCount--;
31
- console.log(`Reference count decreased to: ${this.referenceCount}`);
32
-
33
- if (this.referenceCount === 0)
34
- {
35
- console.log("No more references. Deleting object.");
36
- this.value = null;
37
- }
38
- }
39
- }
40
-
41
- forceRelease()
42
- {
43
- if (this.value !== null)
44
- {
45
- this.value = null
46
- this.referenceCount = 0
47
- }
48
- }
49
-
50
- getValue():T | null
51
- {
52
- return this.value;
53
- }
54
- }
@@ -1,11 +0,0 @@
1
- // export const LYAttachmentRules =
2
- // {
3
- // KeepWorld: 1,
4
- // KeepRelative: 2,
5
- // }
6
-
7
- export enum AttachmentRules
8
- {
9
- KeepWorld = 1,
10
- KeepRelative = 2,
11
- }
@@ -1,37 +0,0 @@
1
- export class Delegate<T extends any[]>
2
- {
3
- private functions:Array<(...args:T) => void>;
4
-
5
- constructor()
6
- {
7
- this.functions = [];
8
- }
9
-
10
- broadcast(...args:T):void
11
- {
12
- this.functions.forEach((func) => func(...args));
13
- }
14
-
15
- add(func:(...args:T) => void):void
16
- {
17
- this.functions.push(func);
18
- }
19
-
20
- remove(func:(...args:T) => void):void
21
- {
22
- const index = this.functions.indexOf(func);
23
- if (index >= 0)
24
- {
25
- this.functions.splice(index, 1);
26
- }
27
- else
28
- {
29
- console.warn("function not found");
30
- }
31
- }
32
-
33
- clear():void
34
- {
35
- this.functions = [];
36
- }
37
- }
@@ -1,81 +0,0 @@
1
- import {OrthographicCamera, PerspectiveCamera} from "three";
2
-
3
- export interface CameraParam
4
- {
5
- near:number,
6
- far:number,
7
- param:PerspectiveCameraParam | OrthographicCameraParam
8
- }
9
-
10
- export interface PerspectiveCameraParam
11
- {
12
- fov:number,
13
- aspect:number,
14
- }
15
-
16
- export interface OrthographicCameraParam
17
- {
18
- left:number,
19
- right:number,
20
- top:number,
21
- bottom:number
22
- }
23
-
24
- export class CameraFactory
25
- {
26
- static createCamera(param:CameraParam)
27
- {
28
- let cam:PerspectiveCamera | OrthographicCamera | null = null;
29
- if ("fov" in param.param && "aspect" in param.param)
30
- {
31
- cam = new PerspectiveCamera(param.param.fov, param.param.aspect, param.near, param.far);
32
- }
33
- if ("left" in param.param && "right" in param.param && "top" in param.param && "bottom" in param.param)
34
- {
35
- cam = new OrthographicCamera(param.param.left, param.param.right, param.param.top, param.param.bottom, param.near, param.far);
36
- }
37
- if (!cam)
38
- {
39
- console.error("create camera failed");
40
- debugger
41
- throw Error("create camera failed");
42
- }
43
- return cam
44
- }
45
-
46
- static updataCamera(param:CameraParam, camera:PerspectiveCamera | OrthographicCamera)
47
- {
48
- if ("fov" in param.param && "aspect" in param.param)
49
- {
50
- if (camera instanceof PerspectiveCamera)
51
- {
52
- camera.near = param.near;
53
- camera.far = param.far;
54
- camera.fov = param.param.fov;
55
- camera.aspect = param.param.aspect;
56
- return camera
57
- }
58
- else
59
- {
60
- return new PerspectiveCamera(param.param.fov, param.param.aspect, param.near, param.far);
61
- }
62
- }
63
- if ("left" in param.param && "right" in param.param && "top" in param.param && "bottom" in param.param)
64
- {
65
- if (camera instanceof OrthographicCamera)
66
- {
67
- camera.near = param.near;
68
- camera.far = param.far;
69
- camera.left = param.param.left;
70
- camera.right = param.param.right;
71
- camera.top = param.param.top;
72
- camera.bottom = param.param.bottom;
73
- return camera
74
- }
75
- else
76
- {
77
- return new OrthographicCamera(param.param.left, param.param.right, param.param.top, param.param.bottom, param.near, param.far);
78
- }
79
- }
80
- }
81
- }
@@ -1,7 +0,0 @@
1
- import { CSS2DRenderer } from "three/examples/jsm/renderers/CSS2DRenderer.js";
2
-
3
-
4
- export class RendererFactory
5
- {
6
-
7
- }
@@ -1,261 +0,0 @@
1
- import { ThreeJsApp } from "../ThreeJsApp";
2
- import { Intersection, OrthographicCamera, PerspectiveCamera, Raycaster, Vector2 } from "three";
3
- import { World } from "./World";
4
- import { Viewport } from "./Viewport";
5
- import { Pawn } from "../Object/PawnV2/Pawn";
6
- import { Orbital } from "../Object/PawnV2/Oribital";
7
- import { SceneComponent } from "../Object/Components/SceneComponent";
8
- import { Delegate } from "../Delegate";
9
-
10
-
11
- export class Controller
12
- {
13
- private prepareClickComponent: SceneComponent|null = null;
14
- get camera(): PerspectiveCamera | OrthographicCamera
15
- {
16
- return this.app.camera;
17
- }
18
- get world(): World
19
- {
20
- return this.app.world
21
- }
22
- get viewPort(): Viewport
23
- {
24
- return this.app.viewport
25
- }
26
-
27
- get pawn(): Pawn
28
- {
29
- if (!this._pawn)
30
- {
31
- throw Error("pawn is null")
32
- }
33
- return this._pawn
34
- }
35
-
36
- private app : ThreeJsApp
37
- private _pawn : Pawn | null = null
38
- private raycaster: Raycaster;
39
-
40
- private onPointerMove: ((event: MouseEvent) => void) = (event: MouseEvent) => { this.onPointerMoveEvent(event) }
41
- private onPointerEnter: ((event: MouseEvent) => void) = (event: MouseEvent) => { this.onPointerEnterEvent(event) }
42
- private onPointerLeave: ((event: MouseEvent) => void) = (event: MouseEvent) => { this.onPointerLeaveEvent(event) }
43
- private onPointerUp: ((event: MouseEvent) => void) = (event: MouseEvent) => { this.onPointerUpEvent(event) }
44
- private onPointerDown: ((event: MouseEvent) => void) = (event: MouseEvent) => { this.onPointerDownEvent(event) }
45
-
46
- private pointerPosition: Vector2 = new Vector2()
47
-
48
- private readonly doubleClickDelay: number = 250; // 双击判定时间间隔(毫秒)
49
- private leftClickTimer: number | null = null;
50
- private pointerLeftDownPosition: Vector2 = new Vector2();
51
-
52
- private hoveringComponent: SceneComponent | null = null;
53
- private _pointButtonIsDown:Set<number> = new Set()
54
- get onClickNothingDelegate(): Delegate<[void]>
55
- {
56
- return this._onClickNothingDelegate
57
- }
58
- private _onClickNothingDelegate: Delegate<[void]> = new Delegate()
59
- constructor(app: ThreeJsApp)
60
- {
61
- this.app = app
62
- this._pawn = new Orbital(this)
63
- this.pawn.possess()
64
- this.raycaster = new Raycaster()
65
- if (!this.viewPort.canvas)
66
- {
67
- throw Error("canvas is null")
68
- }
69
- this.viewPort.canvas.addEventListener("pointermove", this.onPointerMove)
70
- this.viewPort.canvas.addEventListener("pointerenter", this.onPointerEnter)
71
- this.viewPort.canvas.addEventListener("pointerleave", this.onPointerLeave)
72
- this.viewPort.canvas.addEventListener("pointerup", this.onPointerUp)
73
- this.viewPort.canvas.addEventListener("pointerdown", this.onPointerDown)
74
- }
75
-
76
- init()
77
- {
78
-
79
- }
80
-
81
- tick(deltaTime: number)
82
- {
83
- this.pawn.tick(deltaTime);
84
- }
85
-
86
- destroy()
87
- {
88
- if (this.leftClickTimer)
89
- {
90
- clearTimeout(this.leftClickTimer);
91
- this.leftClickTimer = null;
92
- }
93
- if (this.viewPort.canvas)
94
- {
95
- this.viewPort.canvas.removeEventListener("pointermove", this.onPointerMove);
96
- this.viewPort.canvas.removeEventListener("pointerenter", this.onPointerEnter);
97
- this.viewPort.canvas.removeEventListener("pointerleave", this.onPointerLeave);
98
- this.viewPort.canvas.removeEventListener("pointerup", this.onPointerUp)
99
- this.viewPort.canvas.removeEventListener("pointerdown", this.onPointerDown)
100
- }
101
-
102
- this.pawn.unpossess()
103
- this.pawn.destroy()
104
- this._pawn = null
105
- }
106
-
107
- onPointerMoveEvent(event: MouseEvent)
108
- {
109
- if (!this.viewPort.canvas)
110
- {
111
- throw Error("canvas is null")
112
- }
113
- const canvasRect = this.viewPort.canvas.getBoundingClientRect();
114
- const offsetX = canvasRect.left;
115
- const offsetY = canvasRect.top;
116
- const pointer = new Vector2(((event.clientX - offsetX) / this.viewPort.canvas.clientWidth) * 2 - 1, 1 - ((event.clientY - offsetY) / this.viewPort.canvas.clientHeight) * 2)
117
-
118
- this.pointerPosition = pointer
119
-
120
- if (this._pointButtonIsDown.size > 0)
121
- {
122
- return
123
- }
124
-
125
- const hits = this.getHitResultUnderCursor()
126
-
127
- if (hits)
128
- {
129
- let component = hits.object.userData["LYObject"]
130
- if (component != this.hoveringComponent)
131
- {
132
- this.hoveringComponent?.onHorveringEnd();
133
- this.hoveringComponent = null;
134
- if (component instanceof SceneComponent && component.isHoverEnabled)
135
- {
136
- component.onHorveringBegin();
137
- this.hoveringComponent = component;
138
- }
139
- }
140
- }
141
- else
142
- {
143
- this.hoveringComponent?.onHorveringEnd();
144
- this.hoveringComponent = null;
145
- }
146
- }
147
-
148
- onPointerUpEvent(event: MouseEvent)
149
- {
150
- this._pointButtonIsDown.delete(event.button)
151
-
152
- if(event.button === 0)
153
- {
154
- const pointerOffset = new Vector2().subVectors(this.pointerLeftDownPosition, this.pointerPosition).length()
155
- if (pointerOffset > 0.005)
156
- {
157
- if (this.leftClickTimer)
158
- {
159
- window.clearTimeout(this.leftClickTimer);
160
- this.leftClickTimer = null;
161
- }
162
-
163
- return;
164
- }
165
- if(!this.leftClickTimer)
166
- {
167
- const hit = this.getHitResultUnderCursor();
168
- let component = hit?hit.object.userData["LYObject"]:null;
169
- if(component && component instanceof SceneComponent && component.isClickEnabled)
170
- {
171
- this.prepareClickComponent = component
172
- this.leftClickTimer = window.setTimeout(()=>{
173
- this.leftClickTimer = null;
174
-
175
- if(this.prepareClickComponent)
176
- {
177
- this.prepareClickComponent.onClicked();
178
- this.prepareClickComponent = null;
179
- }
180
- }, this.doubleClickDelay)
181
- }
182
- else
183
- {
184
- this._onClickNothingDelegate.broadcast()
185
- }
186
- }
187
- else
188
- {
189
- console.log("up 2, ", this.prepareClickComponent)
190
-
191
- window. clearTimeout(this.leftClickTimer);
192
- this.leftClickTimer = null;
193
- if (this.prepareClickComponent)
194
- {
195
- this.prepareClickComponent.onDoubleClicked();
196
- }
197
- else
198
- {
199
- this._onClickNothingDelegate.broadcast()
200
- }
201
- this.prepareClickComponent = null;
202
- }
203
-
204
- }
205
-
206
- }
207
-
208
- onPointerDownEvent(event: MouseEvent)
209
- {
210
- this._pointButtonIsDown.add(event.button)
211
- if(event.button === 0)
212
- {
213
- this.pointerLeftDownPosition = this.pointerPosition.clone();
214
-
215
- }
216
-
217
-
218
- }
219
-
220
- onPointerEnterEvent(event: MouseEvent)
221
- {
222
- if (!this.viewPort.canvas)
223
- {
224
- throw Error("canvas is null")
225
- }
226
- this.viewPort.canvas.addEventListener("pointermove", this.onPointerMove)
227
- this.viewPort.canvas.addEventListener("pointerup", this.onPointerUp)
228
- this.viewPort.canvas.addEventListener("pointerdown", this.onPointerDown)
229
- }
230
-
231
- onPointerLeaveEvent(event: MouseEvent)
232
- {
233
- if (!this.viewPort.canvas)
234
- {
235
- throw Error("canvas is null")
236
- }
237
- this.viewPort.canvas.removeEventListener("pointermove", this.onPointerMove)
238
- this.viewPort.canvas.removeEventListener("pointerup", this.onPointerUp)
239
- this.viewPort.canvas.removeEventListener("pointerdown", this.onPointerDown)
240
- }
241
-
242
- getHitResultUnderCursor(): Intersection | null
243
- {
244
- return this.getHitResultFromScreenPoint(this.pointerPosition.x, this.pointerPosition.y)
245
- }
246
-
247
- getHitResultFromScreenPoint(x: number, y: number): Intersection | null
248
- {
249
- this.raycaster.setFromCamera(new Vector2(x, y), this.camera);
250
- let out = this.raycaster.intersectObjects(this.world.scene.children, true)
251
- for (let i = 0; i < out.length; i++)
252
- {
253
- if (out[i].object.userData["rayIgnored"])
254
- {
255
- continue
256
- }
257
- return out[i]
258
- }
259
- return null
260
- }
261
- }