bplinejs 0.0.101-beta.10 → 0.0.102

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 (143) hide show
  1. package/lib/Camera/index.d.ts +324 -24
  2. package/lib/Camera/index.js +303 -57
  3. package/lib/Camera/index.js.map +1 -1
  4. package/lib/Color/index.d.ts +71 -5
  5. package/lib/Color/index.js +123 -16
  6. package/lib/Color/index.js.map +1 -1
  7. package/lib/Control/CameraControl/index.d.ts +288 -0
  8. package/lib/Control/CameraControl/index.js +602 -0
  9. package/lib/Control/CameraControl/index.js.map +1 -0
  10. package/lib/Control/index.d.ts +2 -0
  11. package/lib/Control/index.js +2 -0
  12. package/lib/Geometry/Geo.d.ts +112 -9
  13. package/lib/Geometry/Geo.js +139 -58
  14. package/lib/Geometry/Geo.js.map +1 -1
  15. package/lib/Geometry/NGon2D.d.ts +158 -0
  16. package/lib/Geometry/NGon2D.js +259 -0
  17. package/lib/Geometry/NGon2D.js.map +1 -0
  18. package/lib/Geometry/Poly2D.d.ts +49 -7
  19. package/lib/Geometry/Poly2D.js +78 -21
  20. package/lib/Geometry/Poly2D.js.map +1 -1
  21. package/lib/Geometry/{Rect2d.d.ts → Rect2D.d.ts} +28 -6
  22. package/lib/Geometry/Rect2D.js +163 -0
  23. package/lib/Geometry/Rect2D.js.map +1 -0
  24. package/lib/Geometry/index.d.ts +4 -2
  25. package/lib/Geometry/index.js +3 -2
  26. package/lib/Group/index.d.ts +48 -0
  27. package/lib/Group/index.js +44 -27
  28. package/lib/Group/index.js.map +1 -1
  29. package/lib/ID.d.ts +2 -0
  30. package/lib/ID.js +2 -0
  31. package/lib/ID.js.map +1 -1
  32. package/lib/IMesh/index.d.ts +131 -17
  33. package/lib/IMesh/index.js +197 -60
  34. package/lib/IMesh/index.js.map +1 -1
  35. package/lib/Material/Material.d.ts +243 -22
  36. package/lib/Material/Material.js +269 -60
  37. package/lib/Material/Material.js.map +1 -1
  38. package/lib/Material/baseMaterial.d.ts +8 -2
  39. package/lib/Material/baseMaterial.js +16 -6
  40. package/lib/Material/baseMaterial.js.map +1 -1
  41. package/lib/Material/index.d.ts +1 -1
  42. package/lib/Material/wgsls/base/ngon/fragment.js +6 -0
  43. package/lib/Material/wgsls/base/ngon/vertex.js +6 -0
  44. package/lib/Material/{shaders → wgsls}/base/poly/fragment.js +1 -1
  45. package/lib/Material/{shaders → wgsls}/base/poly/vertex.js +1 -1
  46. package/lib/Material/{shaders → wgsls}/base/rect/fragment.js +1 -1
  47. package/lib/Material/{shaders → wgsls}/base/rect/vertex.js +1 -1
  48. package/lib/Material/{shaders → wgsls}/line/fragment.js +1 -1
  49. package/lib/Material/wgsls/line/fragment.js.map +1 -0
  50. package/lib/Material/{shaders → wgsls}/line/vertex.js +1 -1
  51. package/lib/Material/wgsls/line/vertex.js.map +1 -0
  52. package/lib/Mesh/index.d.ts +126 -12
  53. package/lib/Mesh/index.js +138 -40
  54. package/lib/Mesh/index.js.map +1 -1
  55. package/lib/Object/index.d.ts +180 -22
  56. package/lib/Object/index.js +197 -67
  57. package/lib/Object/index.js.map +1 -1
  58. package/lib/Raws/index.d.ts +158 -22
  59. package/lib/Raws/index.js +192 -54
  60. package/lib/Raws/index.js.map +1 -1
  61. package/lib/Render/BufferManager.d.ts +33 -0
  62. package/lib/Render/BufferManager.js +146 -94
  63. package/lib/Render/BufferManager.js.map +1 -1
  64. package/lib/Render/DepthManager.d.ts +12 -1
  65. package/lib/Render/DepthManager.js +77 -62
  66. package/lib/Render/DepthManager.js.map +1 -1
  67. package/lib/Render/DestroyManager.d.ts +61 -0
  68. package/lib/Render/DestroyManager.js +48 -13
  69. package/lib/Render/DestroyManager.js.map +1 -1
  70. package/lib/Render/DevelopmentValidator.d.ts +42 -0
  71. package/lib/Render/DevelopmentValidator.js +67 -35
  72. package/lib/Render/DevelopmentValidator.js.map +1 -1
  73. package/lib/Render/DrawCallManager.d.ts +29 -0
  74. package/lib/Render/DrawCallManager.js +221 -189
  75. package/lib/Render/DrawCallManager.js.map +1 -1
  76. package/lib/Render/PipelineManager.d.ts +23 -0
  77. package/lib/Render/PipelineManager.js +119 -80
  78. package/lib/Render/PipelineManager.js.map +1 -1
  79. package/lib/Render/SamplerManager.d.ts +13 -0
  80. package/lib/Render/SamplerManager.js +20 -12
  81. package/lib/Render/SamplerManager.js.map +1 -1
  82. package/lib/Render/SceneUpdate.d.ts +21 -3
  83. package/lib/Render/SceneUpdate.js +21 -3
  84. package/lib/Render/SceneUpdate.js.map +1 -1
  85. package/lib/Render/TextureManager.d.ts +40 -3
  86. package/lib/Render/TextureManager.js +91 -51
  87. package/lib/Render/TextureManager.js.map +1 -1
  88. package/lib/Render/index.d.ts +51 -0
  89. package/lib/Render/index.js +127 -59
  90. package/lib/Render/index.js.map +1 -1
  91. package/lib/Render/types.d.ts +120 -0
  92. package/lib/Scene/index.d.ts +92 -1
  93. package/lib/Scene/index.js +168 -36
  94. package/lib/Scene/index.js.map +1 -1
  95. package/lib/Style/EdgeStyle.d.ts +58 -9
  96. package/lib/Style/EdgeStyle.js +74 -21
  97. package/lib/Style/EdgeStyle.js.map +1 -1
  98. package/lib/Style/JoinStyle.d.ts +53 -8
  99. package/lib/Style/JoinStyle.js +61 -14
  100. package/lib/Style/JoinStyle.js.map +1 -1
  101. package/lib/Style/PartStyle.d.ts +74 -10
  102. package/lib/Style/PartStyle.js +90 -23
  103. package/lib/Style/PartStyle.js.map +1 -1
  104. package/lib/Style/PointsStyle.d.ts +97 -15
  105. package/lib/Style/PointsStyle.js +125 -36
  106. package/lib/Style/PointsStyle.js.map +1 -1
  107. package/lib/Style/SolidStyle.d.ts +67 -10
  108. package/lib/Style/SolidStyle.js +87 -26
  109. package/lib/Style/SolidStyle.js.map +1 -1
  110. package/lib/Style/TexturedStyle.d.ts +48 -7
  111. package/lib/Style/TexturedStyle.js +62 -18
  112. package/lib/Style/TexturedStyle.js.map +1 -1
  113. package/lib/Style/WireframeStyle.d.ts +6 -1
  114. package/lib/Style/WireframeStyle.js +6 -1
  115. package/lib/Style/WireframeStyle.js.map +1 -1
  116. package/lib/Style/WriteStyleData.d.ts +3 -0
  117. package/lib/Style/WriteStyleData.js +10 -1
  118. package/lib/Style/WriteStyleData.js.map +1 -1
  119. package/lib/Style/index.d.ts +63 -10
  120. package/lib/Style/index.js +62 -9
  121. package/lib/Style/index.js.map +1 -1
  122. package/lib/Style/types.d.ts +15 -0
  123. package/lib/Texture/Layers.d.ts +28 -4
  124. package/lib/Texture/Layers.js +43 -9
  125. package/lib/Texture/Layers.js.map +1 -1
  126. package/lib/Texture/index.d.ts +119 -12
  127. package/lib/Texture/index.js +146 -31
  128. package/lib/Texture/index.js.map +1 -1
  129. package/lib/global-types.d.ts +3 -2
  130. package/lib/index.d.ts +9 -5
  131. package/lib/index.js +4 -2
  132. package/package.json +15 -5
  133. package/releases/0.0.102.md +36 -0
  134. package/README.md +0 -215
  135. package/docs/API.md +0 -471
  136. package/lib/Geometry/Rect2d.js +0 -128
  137. package/lib/Geometry/Rect2d.js.map +0 -1
  138. /package/lib/Material/{shaders/base/poly → wgsls/base/ngon}/fragment.js.map +0 -0
  139. /package/lib/Material/{shaders/base/poly → wgsls/base/ngon}/vertex.js.map +0 -0
  140. /package/lib/Material/{shaders/base/rect → wgsls/base/poly}/fragment.js.map +0 -0
  141. /package/lib/Material/{shaders/base/rect → wgsls/base/poly}/vertex.js.map +0 -0
  142. /package/lib/Material/{shaders/line → wgsls/base/rect}/fragment.js.map +0 -0
  143. /package/lib/Material/{shaders/line → wgsls/base/rect}/vertex.js.map +0 -0
@@ -1,7 +1,8 @@
1
1
  import ObjectNode from "../Object";
2
2
  import type { ObjectNodeLike } from "../Object";
3
3
  import { Mat3 } from "bpmatrixjs/Math/Mat3";
4
- import type { VersionedMath } from "bpmatrixjs/Math";
4
+ import { Vec2, type VersionedMath } from "bpmatrixjs/Math";
5
+ import type { RenderLike } from "../Render";
5
6
  interface CameraBuffersLike {
6
7
  uniform?: number;
7
8
  }
@@ -16,11 +17,113 @@ interface CameraLike extends ObjectNodeLike {
16
17
  readonly left: number;
17
18
  readonly bottom: number;
18
19
  readonly right: number;
20
+ /**
21
+ * 同时更新相机视口宽高,通知投影矩阵在下一次使用前更新。
22
+ * @param width 新视口宽度
23
+ * @param height 新视口高度
24
+ * @example
25
+ * camera.setViewport(width, height);
26
+ * @returns 无返回值。
27
+ */
19
28
  setViewport(width: number, height: number): void;
29
+ /**
30
+ * 在渲染前更新版本落后的矩阵;支持相机挂在 Group/Mesh 内以及独立相机。
31
+ * @example
32
+ * camera.ensureCameraMatrix();
33
+ * @returns 无返回值。
34
+ */
20
35
  ensureCameraMatrix(): void;
36
+ /**
37
+ * 强制计算投影矩阵,保持 Y 正方向向上。
38
+ * @example
39
+ * camera.updateOrthogonalMatrix();
40
+ * @returns 计算得到的 Mat3 结果。
41
+ */
21
42
  updateOrthogonalMatrix(): Mat3;
43
+ /**
44
+ * 先确保父级与自身世界矩阵有效,再计算逆矩阵。
45
+ * @example
46
+ * camera.updateViewMatrix();
47
+ * @returns 计算得到的 Mat3 结果。
48
+ */
22
49
  updateViewMatrix(): Mat3;
50
+ /**
51
+ * 强制更新投影矩阵和视图矩阵。
52
+ * @example
53
+ * camera.updateCameraMatrix();
54
+ * @returns 无返回值。
55
+ */
23
56
  updateCameraMatrix(): void;
57
+ /**
58
+ * 世界坐标转归一化NDC坐标。
59
+ * @param position 世界坐标。
60
+ * @example
61
+ * camera.worldToNdc(position);
62
+ * @returns 归一化NDC坐标。
63
+ */
64
+ worldToNdc(position: Vec2): Vec2;
65
+ /**
66
+ * 归一化ndc坐标转世界坐标
67
+ * @param position 归一化NDC坐标。
68
+ * @example
69
+ * camera.ndcToWorld(position);
70
+ * @returns 世界坐标。
71
+ */
72
+ ndcToWorld(position: Vec2): Vec2;
73
+ /**
74
+ * 归一化NDC坐标转画布坐标。
75
+ * @param position 归一化NDC坐标。
76
+ * @param render 可选渲染器,按画布实际 CSS 尺寸换算;省略时使用相机宽高 / DPR
77
+ * @example
78
+ * camera.ndcToScreen(position, render);
79
+ * @returns 相对画布左上角的 CSS 像素坐标。
80
+ */
81
+ ndcToScreen(position: Vec2, render?: RenderLike): Vec2;
82
+ /**
83
+ * 画布坐标转归一化NDC坐标。
84
+ * @param position 相对画布左上角的 CSS 像素坐标
85
+ * @param render 可选渲染器,省略时使用相机宽高 / DPR
86
+ * @example
87
+ * camera.screenToNdc(position, render);
88
+ * @returns 归一化NDC坐标。
89
+ */
90
+ screenToNdc(position: Vec2, render?: RenderLike): Vec2;
91
+ /**
92
+ * 世界坐标转画布坐标。
93
+ * @param position 世界坐标。
94
+ * @param render 可选渲染器,支持 resize 延迟期间的 CSS 拉伸
95
+ * @example
96
+ * camera.worldToScreen(position, render);
97
+ * @returns 相对画布左上角的 CSS 像素坐标。
98
+ */
99
+ worldToScreen(position: Vec2, render?: RenderLike): Vec2;
100
+ /**
101
+ * 画布坐标转世界坐标
102
+ * @param position 相对画布左上角的 CSS 像素坐标
103
+ * @param render 可选渲染器,按画布实际 CSS 尺寸换算
104
+ * @example
105
+ * camera.screenToWorld(position, render);
106
+ * @returns 世界坐标。
107
+ */
108
+ screenToWorld(position: Vec2, render?: RenderLike): Vec2;
109
+ /**
110
+ * 世界坐标转浏览器视口坐标,适用于 DOM 定位;支持 CSS 平移/轴向缩放,不含旋转/倾斜。
111
+ * @param position 世界坐标。
112
+ * @param render 提供实际画布位置和尺寸的渲染器
113
+ * @example
114
+ * camera.worldToWindow(position, render);
115
+ * @returns clientX/clientY 坐标,不含页面滚动偏移。
116
+ */
117
+ worldToWindow(position: Vec2, render: RenderLike): Vec2;
118
+ /**
119
+ * 浏览器视口坐标转世界坐标。
120
+ * @param position MouseEvent.clientX/clientY,不是 pageX/pageY
121
+ * @param render 提供实际画布位置和尺寸的渲染器
122
+ * @example
123
+ * camera.windowToWorld(position, render);
124
+ * @returns 世界坐标。
125
+ */
126
+ windowToWorld(position: Vec2, render: RenderLike): Vec2;
24
127
  }
25
128
  /** 正交相机:输入沿用节点单一版本,矩阵与每个 Render 独立保存处理快照。 */
26
129
  declare class Camera extends ObjectNode implements CameraLike {
@@ -37,52 +140,249 @@ declare class Camera extends ObjectNode implements CameraLike {
37
140
  private _writingCamera;
38
141
  /** 保留的缓冲描述;实际 GPUBuffer 仍由 Render 持有。 */
39
142
  buffers: CameraBuffersLike;
40
- /** @param width 视口宽度 @param height 视口高度 @param zoom 缩放值 */
143
+ /**
144
+ * 创建对象并建立初始状态及依赖关联。
145
+ * @param width 视口宽度
146
+ * @param height 视口高度
147
+ * @param zoom 缩放值
148
+ * @example
149
+ * const camera = new Camera(width, height, zoom);
150
+ * @returns 创建的 Camera 对象。
151
+ */
41
152
  constructor(width?: number, height?: number, zoom?: number);
42
- /** 视口宽度。 */
153
+ /**
154
+ * 视口宽度。
155
+ * @example
156
+ * const value = camera.width;
157
+ * @returns 视口宽度。
158
+ */
43
159
  get width(): number;
44
- /** @param value 新宽度 */
160
+ /**
161
+ * 视口宽度。
162
+ * @param value 新宽度
163
+ * @example
164
+ * camera.width = value;
165
+ * @returns 无返回值。
166
+ */
45
167
  set width(value: number);
46
- /** 视口高度。 */
168
+ /**
169
+ * 视口高度。
170
+ * @example
171
+ * const value = camera.height;
172
+ * @returns 视口高度。
173
+ */
47
174
  get height(): number;
48
- /** @param value 新高度 */
175
+ /**
176
+ * 视口高度。
177
+ * @param value 新高度
178
+ * @example
179
+ * camera.height = value;
180
+ * @returns 无返回值。
181
+ */
49
182
  set height(value: number);
50
- /** 相机缩放。 */
183
+ /**
184
+ * 相机缩放。
185
+ * @example
186
+ * const value = camera.zoom;
187
+ * @returns 相机缩放。
188
+ */
51
189
  get zoom(): number;
52
- /** @param value 新缩放 */
190
+ /**
191
+ * 相机缩放。
192
+ * @param value 新缩放
193
+ * @example
194
+ * camera.zoom = value;
195
+ * @returns 无返回值。
196
+ */
53
197
  set zoom(value: number);
54
- /** 正交视口上边界。 */
198
+ /**
199
+ * 正交视口上边界。
200
+ * @example
201
+ * const value = camera.top;
202
+ * @returns 正交视口上边界。
203
+ */
55
204
  get top(): number;
56
- /** 正交视口下边界。 */
205
+ /**
206
+ * 正交视口下边界。
207
+ * @example
208
+ * const value = camera.bottom;
209
+ * @returns 正交视口下边界。
210
+ */
57
211
  get bottom(): number;
58
- /** 正交视口左边界。 */
212
+ /**
213
+ * 正交视口左边界。
214
+ * @example
215
+ * const value = camera.left;
216
+ * @returns 正交视口左边界。
217
+ */
59
218
  get left(): number;
60
- /** 正交视口右边界。 */
219
+ /**
220
+ * 正交视口右边界。
221
+ * @example
222
+ * const value = camera.right;
223
+ * @returns 正交视口右边界。
224
+ */
61
225
  get right(): number;
62
- /** 投影矩阵,GPU 上传比较矩阵版本。 */
226
+ /**
227
+ * 投影矩阵,GPU 上传比较矩阵版本。
228
+ * @example
229
+ * const value = camera.orthogonalMatrix;
230
+ * @returns 投影矩阵,GPU 上传比较矩阵版本。
231
+ */
63
232
  get orthogonalMatrix(): Mat3;
64
- /** @param value 新投影矩阵,替换引用也使 Render 缓存失效 */
233
+ /**
234
+ * 投影矩阵,GPU 上传比较矩阵版本。
235
+ * @param value 新投影矩阵,替换引用也使 Render 缓存失效
236
+ * @example
237
+ * camera.orthogonalMatrix = value;
238
+ * @returns 无返回值。
239
+ */
65
240
  set orthogonalMatrix(value: Mat3);
66
- /** 视图矩阵,通常为世界矩阵的逆。 */
241
+ /**
242
+ * 视图矩阵,通常为世界矩阵的逆。
243
+ * @example
244
+ * const value = camera.viewMatrix;
245
+ * @returns 视图矩阵,通常为世界矩阵的逆。
246
+ */
67
247
  get viewMatrix(): Mat3;
68
- /** @param value 新视图矩阵 */
248
+ /**
249
+ * 视图矩阵,通常为世界矩阵的逆。
250
+ * @param value 新视图矩阵
251
+ * @example
252
+ * camera.viewMatrix = value;
253
+ * @returns 无返回值。
254
+ */
69
255
  set viewMatrix(value: Mat3);
70
- /** @param source 数学对象 @param field 关联字段 */
256
+ /**
257
+ * 接收数学对象的变化通知,更新对应字段的消费者版本。
258
+ * @param source 数学对象
259
+ * @param field 关联字段
260
+ * @example
261
+ * camera.onMathChange(source, field);
262
+ * @returns 无返回值。
263
+ */
71
264
  onMathChange(source: VersionedMath, field: string): void;
72
- /** @param width 新视口宽度 @param height 新视口高度 */
265
+ /**
266
+ * 同时更新相机视口宽高,通知投影矩阵在下一次使用前更新。
267
+ * @param width 新视口宽度
268
+ * @param height 新视口高度
269
+ * @example
270
+ * camera.setViewport(width, height);
271
+ * @returns 无返回值。
272
+ */
73
273
  setViewport(width?: number, height?: number): void;
74
- /** 相机不提供子节点容器。 */
274
+ /**
275
+ * 相机不提供子节点容器。
276
+ * @example
277
+ * camera.add();
278
+ * @returns 无返回值。
279
+ */
75
280
  add(): void;
76
- /** 在渲染前更新版本落后的矩阵;支持相机挂在 Group/Mesh 内以及独立相机。 */
281
+ /**
282
+ * 在渲染前更新版本落后的矩阵;支持相机挂在 Group/Mesh 内以及独立相机。
283
+ * @example
284
+ * camera.ensureCameraMatrix();
285
+ * @returns 无返回值。
286
+ */
77
287
  ensureCameraMatrix(): void;
78
- /** 强制计算投影矩阵,保持 Y 正方向向上。 */
288
+ /**
289
+ * 强制计算投影矩阵,保持 Y 正方向向上。
290
+ * @example
291
+ * camera.updateOrthogonalMatrix();
292
+ * @returns 计算得到的 Mat3 结果。
293
+ */
79
294
  updateOrthogonalMatrix(): Mat3;
80
- /** 先确保父级与自身世界矩阵有效,再计算逆矩阵。 */
295
+ /**
296
+ * 先确保父级与自身世界矩阵有效,再计算逆矩阵。
297
+ * @example
298
+ * camera.updateViewMatrix();
299
+ * @returns 计算得到的 Mat3 结果。
300
+ */
81
301
  updateViewMatrix(): Mat3;
82
- /** 强制更新投影矩阵和视图矩阵。 */
302
+ /**
303
+ * 强制更新投影矩阵和视图矩阵。
304
+ * @example
305
+ * camera.updateCameraMatrix();
306
+ * @returns 无返回值。
307
+ */
83
308
  updateCameraMatrix(): void;
84
- /** 最终释放相机对所有数学对象的订阅,不销毁共享矩阵。 */
309
+ /**
310
+ * 最终释放相机对所有数学对象的订阅,不销毁共享矩阵。
311
+ * @example
312
+ * camera.dispose();
313
+ * @returns 无返回值。
314
+ */
85
315
  dispose(): void;
316
+ /**
317
+ * 世界坐标转归一化NDC坐标。
318
+ * @param position 世界坐标。
319
+ * @example
320
+ * camera.worldToNdc(position);
321
+ * @returns 归一化NDC坐标。
322
+ */
323
+ worldToNdc(position: Vec2): Vec2;
324
+ /**
325
+ * 归一化NDC坐标转画布坐标。
326
+ * @param position 归一化NDC坐标。
327
+ * @param render 可选渲染器,按画布实际 CSS 尺寸换算;省略时使用相机宽高 / DPR
328
+ * @example
329
+ * camera.ndcToScreen(position, render);
330
+ * @returns 相对画布左上角的 CSS 像素坐标。
331
+ */
332
+ ndcToScreen(position: Vec2, render?: RenderLike): Vec2;
333
+ /**
334
+ * 世界坐标转画布坐标。
335
+ * @param position 世界坐标。
336
+ * @param render 可选渲染器,支持 resize 延迟期间的 CSS 拉伸
337
+ * @example
338
+ * camera.worldToScreen(position, render);
339
+ * @returns 相对画布左上角的 CSS 像素坐标。
340
+ */
341
+ worldToScreen(position: Vec2, render?: RenderLike): Vec2;
342
+ /**
343
+ * 画布坐标转归一化NDC坐标。
344
+ * @param position 相对画布左上角的 CSS 像素坐标
345
+ * @param render 可选渲染器,省略时使用相机宽高 / DPR
346
+ * @example
347
+ * camera.screenToNdc(position, render);
348
+ * @returns 归一化NDC坐标。
349
+ */
350
+ screenToNdc(position: Vec2, render?: RenderLike): Vec2;
351
+ /**
352
+ * 归一化ndc坐标转世界坐标
353
+ * @param position 归一化NDC坐标。
354
+ * @example
355
+ * camera.ndcToWorld(position);
356
+ * @returns 世界坐标。
357
+ */
358
+ ndcToWorld(position: Vec2): Vec2;
359
+ /**
360
+ * 画布坐标转世界坐标
361
+ * @param position 相对画布左上角的 CSS 像素坐标
362
+ * @param render 可选渲染器,按画布实际 CSS 尺寸换算
363
+ * @example
364
+ * camera.screenToWorld(position, render);
365
+ * @returns 世界坐标。
366
+ */
367
+ screenToWorld(position: Vec2, render?: RenderLike): Vec2;
368
+ /**
369
+ * 世界坐标转浏览器视口坐标,适用于 DOM 定位;支持 CSS 平移/轴向缩放,不含旋转/倾斜。
370
+ * @param position 世界坐标。
371
+ * @param render 提供实际画布位置和尺寸的渲染器
372
+ * @example
373
+ * camera.worldToWindow(position, render);
374
+ * @returns clientX/clientY 坐标,不含页面滚动偏移。
375
+ */
376
+ worldToWindow(position: Vec2, render: RenderLike): Vec2;
377
+ /**
378
+ * 浏览器视口坐标转世界坐标。
379
+ * @param position MouseEvent.clientX/clientY,不是 pageX/pageY
380
+ * @param render 提供实际画布位置和尺寸的渲染器
381
+ * @example
382
+ * camera.windowToWorld(position, render);
383
+ * @returns 世界坐标。
384
+ */
385
+ windowToWorld(position: Vec2, render: RenderLike): Vec2;
86
386
  }
87
387
  export default Camera;
88
388
  export type { CameraBuffersLike, CameraLike };