@realsee/five 6.8.0-alpha.16 → 6.8.0-alpha.18

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 (164) hide show
  1. package/docs/assets/hierarchy.js +1 -1
  2. package/docs/assets/search.js +1 -1
  3. package/docs/classes/five.AdaptiveLuminancePass.html +1 -1
  4. package/docs/classes/five.BoundingMesh.html +1 -1
  5. package/docs/classes/five.EyeDomeLightingPass.html +1 -1
  6. package/docs/classes/five.Five.html +1 -1
  7. package/docs/classes/five.FivePass.html +1 -1
  8. package/docs/classes/five.Histogram.html +4 -1
  9. package/docs/classes/five.Model.html +1 -1
  10. package/docs/classes/five.ModelScene.html +1 -1
  11. package/docs/classes/five.NetworkSubscribe.html +1 -1
  12. package/docs/classes/five.PBMContainer.html +1 -1
  13. package/docs/classes/five.PBMCustomShader.html +1 -1
  14. package/docs/classes/five.PBMGSObject.html +1 -1
  15. package/docs/classes/five.PBMGroup.html +1 -1
  16. package/docs/classes/five.PBMMesh.html +1 -1
  17. package/docs/classes/five.PBMMeshMaterial.html +6 -6
  18. package/docs/classes/five.PBMPanoFilter.html +8 -8
  19. package/docs/classes/five.PBMPointCloud.html +1 -1
  20. package/docs/classes/five.PBMPointCloudMaterial.html +1 -1
  21. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  22. package/docs/classes/five.PBMUpdateable.html +1 -1
  23. package/docs/classes/five.PanoCircleMesh.html +1 -1
  24. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  25. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  26. package/docs/classes/five.Parameter.html +1 -1
  27. package/docs/classes/five.Subscribe.html +1 -1
  28. package/docs/classes/five.Tile3D.html +1 -1
  29. package/docs/classes/five.TileNode.html +1 -1
  30. package/docs/classes/five.TrajectoryNode.html +1 -1
  31. package/docs/classes/five.WorkResolvedObserver.html +1 -1
  32. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  33. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  34. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  35. package/docs/classes/gltf-loader.THREEGLTFLoader.html +1 -1
  36. package/docs/classes/line.LineGeometry.html +1 -1
  37. package/docs/classes/line.LineMaterial.html +1 -1
  38. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  39. package/docs/classes/line.THREE_Line2.html +1 -1
  40. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  41. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  42. package/docs/classes/vfx.Airflow.html +1 -1
  43. package/docs/classes/vfx.Flame.html +1 -1
  44. package/docs/classes/vfx.Particle.html +1 -1
  45. package/docs/classes/vfx.ParticleGPU.html +1 -1
  46. package/docs/classes/vfx.SpotLight.html +1 -1
  47. package/docs/documents/api.html +15 -15
  48. package/docs/documents/features_flowing-light-2d-pass.html +6 -6
  49. package/docs/documents/features_flowing-light-3d-pass.html +6 -6
  50. package/docs/documents/features_gaussian-blur-pass.html +5 -5
  51. package/docs/hierarchy.html +1 -1
  52. package/docs/interfaces/five.AddableObject.html +1 -1
  53. package/docs/interfaces/five.AjaxOptions.html +1 -1
  54. package/docs/interfaces/five.BaseEvent.html +1 -1
  55. package/docs/interfaces/five.EventCallback.html +1 -1
  56. package/docs/interfaces/five.GestureEvent.html +1 -1
  57. package/docs/interfaces/five.ImageOptions.html +1 -1
  58. package/docs/interfaces/five.IntersectEvent.html +1 -1
  59. package/docs/interfaces/five.IntersectMesh.html +1 -1
  60. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  61. package/docs/interfaces/five.Intersection.html +1 -1
  62. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +1 -1
  63. package/docs/interfaces/five.ModeChangeEvent.html +1 -1
  64. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  65. package/docs/interfaces/five.ModelEvent.html +1 -1
  66. package/docs/interfaces/five.ModelSceneEvent.html +1 -1
  67. package/docs/interfaces/five.ModelTileEvent.html +1 -1
  68. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  69. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  70. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  71. package/docs/interfaces/five.NetworkOptions.html +1 -1
  72. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  73. package/docs/interfaces/five.NetworkResourceEvent.html +1 -1
  74. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  75. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  76. package/docs/interfaces/five.ObjectEvent.html +1 -1
  77. package/docs/interfaces/five.PBMClipperParameter.html +2 -2
  78. package/docs/interfaces/five.PBMMaterial.html +1 -1
  79. package/docs/interfaces/five.PBMMeshMaterialParameters.html +2 -2
  80. package/docs/interfaces/five.PBMPanoDepth.html +5 -5
  81. package/docs/interfaces/five.PBMPanoFilterValue.html +6 -5
  82. package/docs/interfaces/five.PBMPanoPicture.html +7 -7
  83. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +1 -1
  84. package/docs/interfaces/five.PBMRefinedScreen.html +2 -2
  85. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  86. package/docs/interfaces/five.PanoEvent.html +1 -1
  87. package/docs/interfaces/five.PanoTextureEvent.html +1 -1
  88. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  89. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  90. package/docs/interfaces/five.ParameterMaterialValue.html +1 -1
  91. package/docs/interfaces/five.ParameterTilesetValue.html +1 -1
  92. package/docs/interfaces/five.ParameterValue.html +1 -1
  93. package/docs/interfaces/five.Pose.html +1 -1
  94. package/docs/interfaces/five.RenderEvent.html +1 -1
  95. package/docs/interfaces/five.ResolvedParameterValue.html +1 -1
  96. package/docs/interfaces/five.State.html +1 -1
  97. package/docs/interfaces/five.StateEvent.html +1 -1
  98. package/docs/interfaces/five.TextureOptions.html +1 -1
  99. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  100. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  101. package/docs/interfaces/five.ViewLayer.html +1 -1
  102. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  103. package/docs/interfaces/five.WorkImage.html +1 -1
  104. package/docs/interfaces/five.WorkObserver.html +1 -1
  105. package/docs/interfaces/five.WorkTile.html +1 -1
  106. package/docs/interfaces/five.WorksEvent.html +1 -1
  107. package/docs/interfaces/five.XRControllerEvent.html +1 -1
  108. package/docs/interfaces/five.XRGestureEvent.html +1 -1
  109. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
  110. package/docs/interfaces/five.XRSessionEvent.html +1 -1
  111. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  112. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  113. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +1 -1
  114. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
  115. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
  116. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  117. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  118. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +1 -1
  119. package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
  120. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  121. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  122. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  123. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  124. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  125. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  126. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  127. package/docs/interfaces/plugins.TrajectoryController.html +1 -1
  128. package/docs/interfaces/react.FiveInjectionTypes.html +1 -1
  129. package/docs/types/five.ParseOptions.html +1 -1
  130. package/five/index.js +144 -665
  131. package/five/index.mjs +26212 -32279
  132. package/five/model/materials/pbmMaterial.d.ts +7 -16
  133. package/five/texture/histogram.d.ts +7 -0
  134. package/five/thirdparty/hammer.d.ts +371 -255
  135. package/five/thirdparty/jsrsasign.d.ts +5 -20
  136. package/gltf-loader/index.js +9 -9
  137. package/gltf-loader/index.mjs +1351 -1451
  138. package/line/index.js +4 -4
  139. package/line/index.mjs +334 -513
  140. package/package.json +2 -2
  141. package/plugins/index.js +17 -21
  142. package/plugins/index.mjs +3342 -4245
  143. package/react/index.js +3 -3
  144. package/react/index.mjs +572 -783
  145. package/shader-lib/index.js +13 -14
  146. package/shader-lib/index.mjs +424 -824
  147. package/sticker/index.js +3 -3
  148. package/sticker/index.mjs +102 -142
  149. package/umd/five-gltf-loader.js +9 -9
  150. package/umd/five-line.js +4 -4
  151. package/umd/five-plugins.js +17 -21
  152. package/umd/five-react.js +3 -3
  153. package/umd/five-shader-lib.js +13 -14
  154. package/umd/five-sticker.js +3 -3
  155. package/umd/five-vfx.js +21 -21
  156. package/umd/five-vue.js +3 -3
  157. package/umd/five.js +139 -660
  158. package/vfx/index.js +21 -21
  159. package/vfx/index.mjs +454 -910
  160. package/vue/index.js +3 -3
  161. package/vue/index.mjs +309 -301
  162. package/work-downloader/index.js +3 -3
  163. package/work-downloader/index.mjs +317 -556
  164. /package/five/assets/{realsee-pmg-data-url.d.ts → realsee-png-data-url.d.ts} +0 -0
package/line/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 3/12/2026
5
- * Version: 6.8.0-alpha.16
4
+ * Generated: 3/17/2026
5
+ * Version: 6.8.0-alpha.18
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -252,522 +252,343 @@
252
252
  * No amendment to or modification of this Agreement will be binding unless in
253
253
  * writing and signed by Realsee. You and Realsee hereto confirm that this
254
254
  * Agreement and all related documents shall be drafted in English.
255
- */import * as i from "three";
256
- var E = function(a, o) {
257
- return E = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, n) {
258
- t.__proto__ = n;
259
- } || function(t, n) {
260
- for (var e in n) Object.prototype.hasOwnProperty.call(n, e) && (t[e] = n[e]);
261
- }, E(a, o);
255
+ */import * as e from "three";
256
+ //#region build/line/utils/LineSegmentsGeometry.js
257
+ var t = class extends e.InstancedBufferGeometry {
258
+ constructor() {
259
+ super(), this.type = "LineSegmentsGeometry", this.setIndex([
260
+ 0,
261
+ 2,
262
+ 1,
263
+ 2,
264
+ 3,
265
+ 1,
266
+ 2,
267
+ 4,
268
+ 3,
269
+ 4,
270
+ 5,
271
+ 3,
272
+ 4,
273
+ 6,
274
+ 5,
275
+ 6,
276
+ 7,
277
+ 5
278
+ ]), this.setAttribute("position", new e.Float32BufferAttribute([
279
+ -1,
280
+ 2,
281
+ 0,
282
+ 1,
283
+ 2,
284
+ 0,
285
+ -1,
286
+ 1,
287
+ 0,
288
+ 1,
289
+ 1,
290
+ 0,
291
+ -1,
292
+ 0,
293
+ 0,
294
+ 1,
295
+ 0,
296
+ 0,
297
+ -1,
298
+ -1,
299
+ 0,
300
+ 1,
301
+ -1,
302
+ 0
303
+ ], 3)), this.setAttribute("uv", new e.Float32BufferAttribute([
304
+ -1,
305
+ 2,
306
+ 1,
307
+ 2,
308
+ -1,
309
+ 1,
310
+ 1,
311
+ 1,
312
+ -1,
313
+ -1,
314
+ 1,
315
+ -1,
316
+ -1,
317
+ -2,
318
+ 1,
319
+ -2
320
+ ], 2));
321
+ }
322
+ applyMatrix4(e) {
323
+ let t = this.attributes.instanceStart, n = this.attributes.instanceEnd;
324
+ return t !== void 0 && (t.applyMatrix4(e), n.applyMatrix4(e), t.needsUpdate = !0), this.boundingBox !== null && this.computeBoundingBox(), this.boundingSphere !== null && this.computeBoundingSphere(), this;
325
+ }
326
+ setPositions(t) {
327
+ let n;
328
+ n = t instanceof Float32Array ? t : Array.isArray(t) ? new Float32Array(t) : new Float32Array();
329
+ let r = new e.InstancedInterleavedBuffer(n, 6, 1);
330
+ return this.setAttribute("instanceStart", new e.InterleavedBufferAttribute(r, 3, 0)), this.setAttribute("instanceEnd", new e.InterleavedBufferAttribute(r, 3, 3)), this.computeBoundingBox(), this.computeBoundingSphere(), this;
331
+ }
332
+ setColors(t) {
333
+ let n;
334
+ n = t instanceof Float32Array ? t : Array.isArray(t) ? new Float32Array(t) : new Float32Array();
335
+ let r = new e.InstancedInterleavedBuffer(n, 6, 1);
336
+ return this.setAttribute("instanceColorStart", new e.InterleavedBufferAttribute(r, 3, 0)), this.setAttribute("instanceColorEnd", new e.InterleavedBufferAttribute(r, 3, 3)), this;
337
+ }
338
+ fromWireframeGeometry(e) {
339
+ return this.setPositions(e.attributes.position.array), this;
340
+ }
341
+ fromEdgesGeometry(e) {
342
+ return this.setPositions(e.attributes.position.array), this;
343
+ }
344
+ fromMesh(t) {
345
+ return this.fromWireframeGeometry(new e.WireframeGeometry(t.geometry)), this;
346
+ }
347
+ fromLineSegments(t) {
348
+ var n = t.geometry;
349
+ if (n instanceof e.Geometry) {
350
+ let t = new e.BufferGeometry().fromGeometry(n);
351
+ this.setPositions(t.attributes.position.array);
352
+ } else n instanceof e.BufferGeometry && this.setPositions(n.attributes.position.array);
353
+ return this;
354
+ }
355
+ computeBoundingBox() {
356
+ this.boundingBox === null && (this.boundingBox = new e.Box3());
357
+ let t = this.attributes.instanceStart, n = this.attributes.instanceEnd;
358
+ if (t !== void 0 && n !== void 0) {
359
+ let r = new e.Box3();
360
+ this.boundingBox.setFromBufferAttribute(t), r.setFromBufferAttribute(n), this.boundingBox.union(r);
361
+ }
362
+ }
363
+ computeBoundingSphere() {
364
+ this.boundingSphere === null && (this.boundingSphere = new e.Sphere()), this.boundingBox === null && this.computeBoundingBox();
365
+ let t = this.attributes.instanceStart, n = this.attributes.instanceEnd;
366
+ if (t !== void 0 && n !== void 0) {
367
+ let r = this.boundingSphere.center;
368
+ this.boundingBox.getCenter(r);
369
+ let i = 0, a = new e.Vector3();
370
+ for (let e = 0, o = t.count; e < o; e++) a.fromBufferAttribute(t, e), i = Math.max(i, r.distanceToSquared(a)), a.fromBufferAttribute(n, e), i = Math.max(i, r.distanceToSquared(a));
371
+ this.boundingSphere.radius = Math.sqrt(i), isNaN(this.boundingSphere.radius) && console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.", this);
372
+ }
373
+ }
374
+ toJSON() {}
262
375
  };
263
- function A(a, o) {
264
- if (typeof o != "function" && o !== null)
265
- throw new TypeError("Class extends value " + String(o) + " is not a constructor or null");
266
- E(a, o);
267
- function t() {
268
- this.constructor = a;
269
- }
270
- a.prototype = o === null ? Object.create(o) : (t.prototype = o.prototype, new t());
271
- }
272
- var B = (
273
- /** @class */
274
- (function(a) {
275
- A(o, a);
276
- function o() {
277
- var t = a.call(this) || this;
278
- t.type = "LineSegmentsGeometry";
279
- var n = [-1, 2, 0, 1, 2, 0, -1, 1, 0, 1, 1, 0, -1, 0, 0, 1, 0, 0, -1, -1, 0, 1, -1, 0], e = [-1, 2, 1, 2, -1, 1, 1, 1, -1, -1, 1, -1, -1, -2, 1, -2], r = [0, 2, 1, 2, 3, 1, 2, 4, 3, 4, 5, 3, 4, 6, 5, 6, 7, 5];
280
- return t.setIndex(r), t.setAttribute("position", new i.Float32BufferAttribute(n, 3)), t.setAttribute("uv", new i.Float32BufferAttribute(e, 2)), t;
281
- }
282
- return o.prototype.applyMatrix4 = function(t) {
283
- var n = this.attributes.instanceStart, e = this.attributes.instanceEnd;
284
- return n !== void 0 && (n.applyMatrix4(t), e.applyMatrix4(t), n.needsUpdate = !0), this.boundingBox !== null && this.computeBoundingBox(), this.boundingSphere !== null && this.computeBoundingSphere(), this;
285
- }, o.prototype.setPositions = function(t) {
286
- var n;
287
- t instanceof Float32Array ? n = t : Array.isArray(t) ? n = new Float32Array(t) : n = new Float32Array();
288
- var e = new i.InstancedInterleavedBuffer(n, 6, 1);
289
- return this.setAttribute("instanceStart", new i.InterleavedBufferAttribute(e, 3, 0)), this.setAttribute("instanceEnd", new i.InterleavedBufferAttribute(e, 3, 3)), this.computeBoundingBox(), this.computeBoundingSphere(), this;
290
- }, o.prototype.setColors = function(t) {
291
- var n;
292
- t instanceof Float32Array ? n = t : Array.isArray(t) ? n = new Float32Array(t) : n = new Float32Array();
293
- var e = new i.InstancedInterleavedBuffer(n, 6, 1);
294
- return this.setAttribute("instanceColorStart", new i.InterleavedBufferAttribute(e, 3, 0)), this.setAttribute("instanceColorEnd", new i.InterleavedBufferAttribute(e, 3, 3)), this;
295
- }, o.prototype.fromWireframeGeometry = function(t) {
296
- return this.setPositions(t.attributes.position.array), this;
297
- }, o.prototype.fromEdgesGeometry = function(t) {
298
- return this.setPositions(t.attributes.position.array), this;
299
- }, o.prototype.fromMesh = function(t) {
300
- return this.fromWireframeGeometry(new i.WireframeGeometry(t.geometry)), this;
301
- }, o.prototype.fromLineSegments = function(t) {
302
- var n = t.geometry;
303
- if (n instanceof i.Geometry) {
304
- var e = new i.BufferGeometry().fromGeometry(n);
305
- this.setPositions(e.attributes.position.array);
306
- } else n instanceof i.BufferGeometry && this.setPositions(n.attributes.position.array);
307
- return this;
308
- }, o.prototype.computeBoundingBox = function() {
309
- this.boundingBox === null && (this.boundingBox = new i.Box3());
310
- var t = this.attributes.instanceStart, n = this.attributes.instanceEnd;
311
- if (t !== void 0 && n !== void 0) {
312
- var e = new i.Box3();
313
- this.boundingBox.setFromBufferAttribute(t), e.setFromBufferAttribute(n), this.boundingBox.union(e);
314
- }
315
- }, o.prototype.computeBoundingSphere = function() {
316
- this.boundingSphere === null && (this.boundingSphere = new i.Sphere()), this.boundingBox === null && this.computeBoundingBox();
317
- var t = this.attributes.instanceStart, n = this.attributes.instanceEnd;
318
- if (t !== void 0 && n !== void 0) {
319
- var e = this.boundingSphere.center;
320
- this.boundingBox.getCenter(e);
321
- for (var r = 0, s = new i.Vector3(), c = 0, p = t.count; c < p; c++)
322
- s.fromBufferAttribute(t, c), r = Math.max(r, e.distanceToSquared(s)), s.fromBufferAttribute(n, c), r = Math.max(r, e.distanceToSquared(s));
323
- this.boundingSphere.radius = Math.sqrt(r), isNaN(this.boundingSphere.radius) && console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.", this);
324
- }
325
- }, o.prototype.toJSON = function() {
326
- }, o;
327
- })(i.InstancedBufferGeometry)
328
- );
329
- Object.assign(B.prototype, { isLineSegmentsGeometry: !0 });
330
- var x = {
331
- uniforms: i.UniformsUtils.merge([
332
- i.UniformsLib.common,
333
- i.UniformsLib.fog,
334
- {
335
- linewidth: { value: 1 },
336
- resolution: { value: new i.Vector2(1, 1) },
337
- dashScale: { value: 1 },
338
- dashSize: { value: 1 },
339
- gapSize: { value: 1 },
340
- // todo FIX - maybe change to totalSize
341
- opacity: { value: 1 }
342
- }
343
- ]),
344
- vertexShader: `
345
- #include <common>
346
- #include <color_pars_vertex>
347
- #include <fog_pars_vertex>
348
- #include <logdepthbuf_pars_vertex>
349
- #include <clipping_planes_pars_vertex>
350
-
351
- uniform float linewidth;
352
- uniform vec2 resolution;
353
-
354
- attribute vec3 instanceStart;
355
- attribute vec3 instanceEnd;
356
-
357
- attribute vec3 instanceColorStart;
358
- attribute vec3 instanceColorEnd;
359
-
360
- varying vec2 vUv;
361
-
362
- #ifdef USE_DASH
363
-
364
- uniform float dashScale;
365
- attribute float instanceDistanceStart;
366
- attribute float instanceDistanceEnd;
367
- varying float vLineDistance;
368
-
369
- #endif
370
-
371
- void trimSegment( const in vec4 start, inout vec4 end ) {
372
-
373
- // trim end segment so it terminates between the camera plane and the near plane
374
-
375
- // conservative estimate of the near plane
376
- float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column
377
- float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column
378
- float nearEstimate = - 0.5 * b / a;
379
-
380
- float alpha = ( nearEstimate - start.z ) / ( end.z - start.z );
381
-
382
- end.xyz = mix( start.xyz, end.xyz, alpha );
383
-
376
+ Object.assign(t.prototype, { isLineSegmentsGeometry: !0 });
377
+ //#endregion
378
+ //#region build/line/utils/LineMaterial.js
379
+ var n = {
380
+ uniforms: e.UniformsUtils.merge([
381
+ e.UniformsLib.common,
382
+ e.UniformsLib.fog,
383
+ {
384
+ linewidth: { value: 1 },
385
+ resolution: { value: new e.Vector2(1, 1) },
386
+ dashScale: { value: 1 },
387
+ dashSize: { value: 1 },
388
+ gapSize: { value: 1 },
389
+ opacity: { value: 1 }
384
390
  }
385
-
386
- void main() {
387
-
388
- #ifdef USE_COLOR
389
-
390
- vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;
391
-
392
- #endif
393
-
394
- #ifdef USE_DASH
395
-
396
- vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;
397
-
398
- #endif
399
-
400
- float aspect = resolution.x / resolution.y;
401
-
402
- vUv = uv;
403
-
404
- // camera space
405
- vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );
406
- vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );
407
-
408
- // special case for perspective projection, and segments that terminate either in, or behind, the camera plane
409
- // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space
410
- // but we need to perform ndc-space calculations in the shader, so we must address this issue directly
411
- // perhaps there is a more elegant solution -- WestLangley
412
-
413
- bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column
414
-
415
- if ( perspective ) {
416
-
417
- if ( start.z < 0.0 && end.z >= 0.0 ) {
418
-
419
- trimSegment( start, end );
420
-
421
- } else if ( end.z < 0.0 && start.z >= 0.0 ) {
422
-
423
- trimSegment( end, start );
424
-
391
+ ]),
392
+ vertexShader: "\n #include <common>\n #include <color_pars_vertex>\n #include <fog_pars_vertex>\n #include <logdepthbuf_pars_vertex>\n #include <clipping_planes_pars_vertex>\n\n uniform float linewidth;\n uniform vec2 resolution;\n\n attribute vec3 instanceStart;\n attribute vec3 instanceEnd;\n\n attribute vec3 instanceColorStart;\n attribute vec3 instanceColorEnd;\n\n varying vec2 vUv;\n\n #ifdef USE_DASH\n\n uniform float dashScale;\n attribute float instanceDistanceStart;\n attribute float instanceDistanceEnd;\n varying float vLineDistance;\n\n #endif\n\n void trimSegment( const in vec4 start, inout vec4 end ) {\n\n // trim end segment so it terminates between the camera plane and the near plane\n\n // conservative estimate of the near plane\n float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n float nearEstimate = - 0.5 * b / a;\n\n float alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n end.xyz = mix( start.xyz, end.xyz, alpha );\n\n }\n\n void main() {\n\n #ifdef USE_COLOR\n\n vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n #endif\n\n #ifdef USE_DASH\n\n vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\n #endif\n\n float aspect = resolution.x / resolution.y;\n\n vUv = uv;\n\n // camera space\n vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n // special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n // but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n // perhaps there is a more elegant solution -- WestLangley\n\n bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n if ( perspective ) {\n\n if ( start.z < 0.0 && end.z >= 0.0 ) {\n\n trimSegment( start, end );\n\n } else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n trimSegment( end, start );\n\n }\n\n }\n\n // clip space\n vec4 clipStart = projectionMatrix * start;\n vec4 clipEnd = projectionMatrix * end;\n\n // ndc space\n vec2 ndcStart = clipStart.xy / clipStart.w;\n vec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n // direction\n vec2 dir = ndcEnd - ndcStart;\n\n // account for clip-space aspect ratio\n dir.x *= aspect;\n dir = normalize( dir );\n\n // perpendicular to dir\n vec2 offset = vec2( dir.y, - dir.x );\n\n // undo aspect ratio adjustment\n dir.x /= aspect;\n offset.x /= aspect;\n\n // sign flip\n if ( position.x < 0.0 ) offset *= - 1.0;\n\n // endcaps\n if ( position.y < 0.0 ) {\n\n offset += - dir;\n\n } else if ( position.y > 1.0 ) {\n\n offset += dir;\n\n }\n\n // adjust for linewidth\n offset *= linewidth;\n\n // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n offset /= resolution.y;\n\n // select end\n vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n // back to clip space\n offset *= clip.w;\n\n clip.xy += offset;\n\n gl_Position = clip;\n\n vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n #include <fog_vertex>\n\n }\n ",
393
+ fragmentShader: "\n uniform vec3 diffuse;\n uniform float opacity;\n\n #ifdef USE_DASH\n\n uniform float dashSize;\n uniform float gapSize;\n\n #endif\n\n varying float vLineDistance;\n\n #include <common>\n #include <color_pars_fragment>\n #include <fog_pars_fragment>\n #include <logdepthbuf_pars_fragment>\n #include <clipping_planes_pars_fragment>\n\n varying vec2 vUv;\n\n void main() {\n\n #include <clipping_planes_fragment>\n\n #ifdef USE_DASH\n\n if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n #endif\n\n if ( abs( vUv.y ) > 1.0 ) {\n\n float a = vUv.x;\n float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n float len2 = a * a + b * b;\n\n if ( len2 > 1.0 ) discard;\n\n }\n\n vec4 diffuseColor = vec4( diffuse, opacity );\n\n #include <logdepthbuf_fragment>\n #include <color_fragment>\n\n gl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );\n\n #include <tonemapping_fragment>\n #include <fog_fragment>\n #include <premultiplied_alpha_fragment>\n\n }\n "
394
+ }, r = class extends e.ShaderMaterial {
395
+ constructor(t) {
396
+ super({
397
+ uniforms: e.UniformsUtils.clone(n.uniforms),
398
+ vertexShader: n.vertexShader,
399
+ fragmentShader: n.fragmentShader,
400
+ clipping: !0
401
+ }), this.type = "LineMaterial", this.dashed = !1, Object.defineProperties(this, {
402
+ color: {
403
+ enumerable: !0,
404
+ get() {
405
+ return this.uniforms.diffuse.value;
406
+ },
407
+ set(e) {
408
+ this.uniforms.diffuse.value = e;
409
+ }
410
+ },
411
+ linewidth: {
412
+ enumerable: !0,
413
+ get() {
414
+ return this.uniforms.linewidth.value;
415
+ },
416
+ set(e) {
417
+ this.uniforms.linewidth.value = e;
418
+ }
419
+ },
420
+ dashScale: {
421
+ enumerable: !0,
422
+ get() {
423
+ return this.uniforms.dashScale.value;
424
+ },
425
+ set(e) {
426
+ this.uniforms.dashScale.value = e;
427
+ }
428
+ },
429
+ dashSize: {
430
+ enumerable: !0,
431
+ get() {
432
+ return this.uniforms.dashSize.value;
433
+ },
434
+ set(e) {
435
+ this.uniforms.dashSize.value = e;
436
+ }
437
+ },
438
+ gapSize: {
439
+ enumerable: !0,
440
+ get() {
441
+ return this.uniforms.gapSize.value;
442
+ },
443
+ set(e) {
444
+ this.uniforms.gapSize.value = e;
445
+ }
446
+ },
447
+ opacity: {
448
+ enumerable: !0,
449
+ get() {
450
+ return this.uniforms.opacity.value;
451
+ },
452
+ set(e) {
453
+ this.uniforms.opacity.value = e;
454
+ }
455
+ },
456
+ resolution: {
457
+ enumerable: !0,
458
+ get() {
459
+ return this.uniforms.resolution.value;
460
+ },
461
+ set(e) {
462
+ this.uniforms.resolution.value.copy(e);
425
463
  }
426
-
427
464
  }
428
-
429
- // clip space
430
- vec4 clipStart = projectionMatrix * start;
431
- vec4 clipEnd = projectionMatrix * end;
432
-
433
- // ndc space
434
- vec2 ndcStart = clipStart.xy / clipStart.w;
435
- vec2 ndcEnd = clipEnd.xy / clipEnd.w;
436
-
437
- // direction
438
- vec2 dir = ndcEnd - ndcStart;
439
-
440
- // account for clip-space aspect ratio
441
- dir.x *= aspect;
442
- dir = normalize( dir );
443
-
444
- // perpendicular to dir
445
- vec2 offset = vec2( dir.y, - dir.x );
446
-
447
- // undo aspect ratio adjustment
448
- dir.x /= aspect;
449
- offset.x /= aspect;
450
-
451
- // sign flip
452
- if ( position.x < 0.0 ) offset *= - 1.0;
453
-
454
- // endcaps
455
- if ( position.y < 0.0 ) {
456
-
457
- offset += - dir;
458
-
459
- } else if ( position.y > 1.0 ) {
460
-
461
- offset += dir;
462
-
465
+ }), this.setValues(t);
466
+ }
467
+ };
468
+ Object.assign(r.prototype, { isLineMaterial: !0 });
469
+ //#endregion
470
+ //#region build/line/utils/LineSegments2.js
471
+ var i = class extends e.Mesh {
472
+ constructor(e, n) {
473
+ super(), this.type = "LineSegments2", this.geometry = e === void 0 ? new t() : e, this.material = n === void 0 ? new r({ color: Math.random() * 16777215 }) : n;
474
+ }
475
+ computeLineDistances() {
476
+ let t = this.geometry, n = t.attributes.instanceStart, r = t.attributes.instanceEnd, i = new Float32Array(2 * n.count), a = new e.Vector3(), o = new e.Vector3();
477
+ for (var s = 0, c = 0, l = n.count; s < l; s++, c += 2) a.fromBufferAttribute(n, s), o.fromBufferAttribute(r, s), i[c] = c === 0 ? 0 : i[c - 1], i[c + 1] = i[c] + a.distanceTo(o);
478
+ let u = new e.InstancedInterleavedBuffer(i, 2, 1);
479
+ return t.setAttribute("instanceDistanceStart", new e.InterleavedBufferAttribute(u, 1, 0)), t.setAttribute("instanceDistanceEnd", new e.InterleavedBufferAttribute(u, 1, 1)), this;
480
+ }
481
+ raycast(t, n) {
482
+ t.camera === null && console.error("LineSegments2: \"Raycaster.camera\" needs to be set in order to raycast against LineSegments2.");
483
+ let r = t.ray, i = t.camera, a = i.projectionMatrix, o = this.geometry, s = this.material, c = s.resolution, l = s.linewidth, u = o.attributes.instanceStart, d = o.attributes.instanceEnd, f = new e.Vector4(), p = new e.Vector4(), m = new e.Vector4(), h = new e.Vector3(), g = new e.Matrix4(), _ = new e.Line3(), v = new e.Vector3();
484
+ r.at(1, m), m.w = 1, m.applyMatrix4(i.matrixWorldInverse), m.applyMatrix4(a), m.multiplyScalar(1 / m.w), m.x *= c.x / 2, m.y *= c.y / 2, m.z = 0, h.copy(m);
485
+ let y = this.matrixWorld;
486
+ g.multiplyMatrices(i.matrixWorldInverse, y);
487
+ for (var b = 0, x = u.count; b < x; b++) {
488
+ f.fromBufferAttribute(u, b), p.fromBufferAttribute(d, b), f.w = 1, p.w = 1, f.applyMatrix4(g), p.applyMatrix4(g), f.applyMatrix4(a), p.applyMatrix4(a), f.multiplyScalar(1 / f.w), p.multiplyScalar(1 / p.w);
489
+ var S = f.z < -1 && p.z < -1, C = f.z > 1 && p.z > 1;
490
+ if (S || C) continue;
491
+ f.x *= c.x / 2, f.y *= c.y / 2, p.x *= c.x / 2, p.y *= c.y / 2, _.start.copy(f), _.start.z = 0, _.end.copy(p), _.end.z = 0;
492
+ let t = _.closestPointToPointParameter(h, !0);
493
+ _.at(t, v);
494
+ let i = e.MathUtils.lerp(f.z, p.z, t), o = i >= -1 && i <= 1;
495
+ var w = h.distanceTo(v) < l * .5;
496
+ if (o && w) {
497
+ _.start.fromBufferAttribute(u, b), _.end.fromBufferAttribute(d, b), _.start.applyMatrix4(y), _.end.applyMatrix4(y);
498
+ var T = new e.Vector3(), E = new e.Vector3();
499
+ r.distanceSqToSegment(_.start, _.end, E, T), n.push({
500
+ point: E,
501
+ pointOnLine: T,
502
+ distance: r.origin.distanceTo(E),
503
+ object: this,
504
+ faceIndex: b
505
+ });
463
506
  }
464
-
465
- // adjust for linewidth
466
- offset *= linewidth;
467
-
468
- // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...
469
- offset /= resolution.y;
470
-
471
- // select end
472
- vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;
473
-
474
- // back to clip space
475
- offset *= clip.w;
476
-
477
- clip.xy += offset;
478
-
479
- gl_Position = clip;
480
-
481
- vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation
482
-
483
- #include <logdepthbuf_vertex>
484
- #include <clipping_planes_vertex>
485
- #include <fog_vertex>
486
-
487
507
  }
488
- `,
489
- fragmentShader: `
490
- uniform vec3 diffuse;
491
- uniform float opacity;
492
-
493
- #ifdef USE_DASH
494
-
495
- uniform float dashSize;
496
- uniform float gapSize;
497
-
498
- #endif
499
-
500
- varying float vLineDistance;
501
-
502
- #include <common>
503
- #include <color_pars_fragment>
504
- #include <fog_pars_fragment>
505
- #include <logdepthbuf_pars_fragment>
506
- #include <clipping_planes_pars_fragment>
507
-
508
- varying vec2 vUv;
509
-
510
- void main() {
511
-
512
- #include <clipping_planes_fragment>
513
-
514
- #ifdef USE_DASH
515
-
516
- if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps
517
-
518
- if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
519
-
520
- #endif
521
-
522
- if ( abs( vUv.y ) > 1.0 ) {
523
-
524
- float a = vUv.x;
525
- float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;
526
- float len2 = a * a + b * b;
527
-
528
- if ( len2 > 1.0 ) discard;
529
-
530
- }
531
-
532
- vec4 diffuseColor = vec4( diffuse, opacity );
533
-
534
- #include <logdepthbuf_fragment>
535
- #include <color_fragment>
536
-
537
- gl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );
538
-
539
- #include <tonemapping_fragment>
540
- #include <fog_fragment>
541
- #include <premultiplied_alpha_fragment>
542
-
508
+ }
509
+ };
510
+ Object.assign(i.prototype, { isLineSegments2: !0 });
511
+ //#endregion
512
+ //#region build/line/utils/Line2.js
513
+ var a = class extends i {
514
+ constructor(e, t) {
515
+ super(e, t), this.type = "Line2";
516
+ }
517
+ };
518
+ Object.assign(a.prototype, { isLine2: !0 });
519
+ //#endregion
520
+ //#region build/line/utils/LineGeometry.js
521
+ var o = class extends t {
522
+ constructor() {
523
+ super(), this.type = "LineGeometry";
524
+ }
525
+ setPositions(e) {
526
+ let t = e.length - 3, n = new Float32Array(2 * t);
527
+ for (let r = 0; r < t; r += 3) n[2 * r] = e[r], n[2 * r + 1] = e[r + 1], n[2 * r + 2] = e[r + 2], n[2 * r + 3] = e[r + 3], n[2 * r + 4] = e[r + 4], n[2 * r + 5] = e[r + 5];
528
+ return super.setPositions(n), this;
529
+ }
530
+ setColors(e) {
531
+ let t = e.length - 3, n = new Float32Array(2 * t);
532
+ for (let r = 0; r < t; r += 3) n[2 * r] = e[r], n[2 * r + 1] = e[r + 1], n[2 * r + 2] = e[r + 2], n[2 * r + 3] = e[r + 3], n[2 * r + 4] = e[r + 4], n[2 * r + 5] = e[r + 5];
533
+ return super.setColors(n), this;
534
+ }
535
+ fromLine(t) {
536
+ let n = t.geometry;
537
+ if (n instanceof e.Geometry) {
538
+ let t = new e.BufferGeometry().fromGeometry(n);
539
+ this.setPositions(t.attributes.position.array);
540
+ } else n instanceof e.BufferGeometry && this.setPositions(n.attributes.position.array);
541
+ return this;
542
+ }
543
+ copy() {
544
+ return this;
545
+ }
546
+ };
547
+ Object.assign(o.prototype, { isLineGeometry: !0 });
548
+ //#endregion
549
+ //#region build/line/index.js
550
+ var s = 14467195, c = 8, l = 2, u = 20, d = null, f = class extends e.Object3D {
551
+ static get version() {
552
+ return "6.8.0-alpha.18";
553
+ }
554
+ constructor(t = new e.Vector3(), n = new e.Vector3()) {
555
+ super(), this.type = "FiveLine", this.needsRender = !0, this.line = new a(new o(), new r({
556
+ color: s,
557
+ linewidth: l,
558
+ dashScale: u,
559
+ dashed: !1
560
+ }));
561
+ let i = new e.BufferGeometry(), f = new e.PointsMaterial({
562
+ color: s,
563
+ size: c,
564
+ map: d || (d = new e.TextureLoader().load("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==")),
565
+ sizeAttenuation: !1,
566
+ transparent: !0
567
+ });
568
+ this.points = new e.Points(i, f), this.points.renderOrder = 11, this.points.frustumCulled = !1, this.setPoints(t, n), this.add(this.line, this.points);
569
+ }
570
+ setPoints(t, n) {
571
+ let r = [].concat(t.toArray(), n.toArray());
572
+ this.points.geometry.setAttribute("position", new e.BufferAttribute(new Float32Array(r), 3)), this.line.geometry.setPositions(r), this.line.computeLineDistances(), this.needsRender = !0;
573
+ }
574
+ getPoints() {
575
+ let t = this.points.geometry.attributes.position.array;
576
+ return [new e.Vector3(t[0], t[1], t[2]), new e.Vector3(t[3], t[4], t[5])];
577
+ }
578
+ setMaterial(e) {
579
+ let t = this.line.material;
580
+ for (let n in e) {
581
+ if (!e.hasOwnProperty(n)) continue;
582
+ let r = e[n];
583
+ n === "dashed" ? (t.dashed = r, r ? t.defines.USE_DASH = "" : delete t.defines.USE_DASH, t.needsUpdate = !0) : t[n] = e[n];
543
584
  }
544
- `
545
- }, L = (
546
- /** @class */
547
- (function(a) {
548
- A(o, a);
549
- function o(t) {
550
- var n = a.call(this, {
551
- uniforms: i.UniformsUtils.clone(x.uniforms),
552
- vertexShader: x.vertexShader,
553
- fragmentShader: x.fragmentShader,
554
- clipping: !0
555
- // required for clipping support
556
- }) || this;
557
- return n.type = "LineMaterial", n.dashed = !1, Object.defineProperties(n, {
558
- color: {
559
- enumerable: !0,
560
- get: function() {
561
- return this.uniforms.diffuse.value;
562
- },
563
- set: function(e) {
564
- this.uniforms.diffuse.value = e;
565
- }
566
- },
567
- linewidth: {
568
- enumerable: !0,
569
- get: function() {
570
- return this.uniforms.linewidth.value;
571
- },
572
- set: function(e) {
573
- this.uniforms.linewidth.value = e;
574
- }
575
- },
576
- dashScale: {
577
- enumerable: !0,
578
- get: function() {
579
- return this.uniforms.dashScale.value;
580
- },
581
- set: function(e) {
582
- this.uniforms.dashScale.value = e;
583
- }
584
- },
585
- dashSize: {
586
- enumerable: !0,
587
- get: function() {
588
- return this.uniforms.dashSize.value;
589
- },
590
- set: function(e) {
591
- this.uniforms.dashSize.value = e;
592
- }
593
- },
594
- gapSize: {
595
- enumerable: !0,
596
- get: function() {
597
- return this.uniforms.gapSize.value;
598
- },
599
- set: function(e) {
600
- this.uniforms.gapSize.value = e;
601
- }
602
- },
603
- opacity: {
604
- enumerable: !0,
605
- get: function() {
606
- return this.uniforms.opacity.value;
607
- },
608
- set: function(e) {
609
- this.uniforms.opacity.value = e;
610
- }
611
- },
612
- resolution: {
613
- enumerable: !0,
614
- get: function() {
615
- return this.uniforms.resolution.value;
616
- },
617
- set: function(e) {
618
- this.uniforms.resolution.value.copy(e);
619
- }
620
- }
621
- }), n.setValues(t), n;
622
- }
623
- return o;
624
- })(i.ShaderMaterial)
625
- );
626
- Object.assign(L.prototype, { isLineMaterial: !0 });
627
- var F = (
628
- /** @class */
629
- (function(a) {
630
- A(o, a);
631
- function o(t, n) {
632
- var e = a.call(this) || this;
633
- return e.type = "LineSegments2", e.geometry = t !== void 0 ? t : new B(), e.material = n !== void 0 ? n : new L({ color: Math.random() * 16777215 }), e;
634
- }
635
- return o.prototype.computeLineDistances = function() {
636
- for (var t = this.geometry, n = t.attributes.instanceStart, e = t.attributes.instanceEnd, r = new Float32Array(2 * n.count), s = new i.Vector3(), c = new i.Vector3(), p = 0, u = 0, y = n.count; p < y; p++, u += 2)
637
- s.fromBufferAttribute(n, p), c.fromBufferAttribute(e, p), r[u] = u === 0 ? 0 : r[u - 1], r[u + 1] = r[u] + s.distanceTo(c);
638
- var m = new i.InstancedInterleavedBuffer(r, 2, 1);
639
- return t.setAttribute("instanceDistanceStart", new i.InterleavedBufferAttribute(m, 1, 0)), t.setAttribute("instanceDistanceEnd", new i.InterleavedBufferAttribute(m, 1, 1)), this;
640
- }, o.prototype.raycast = function(t, n) {
641
- t.camera === null && console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');
642
- var e = t.ray, r = t.camera, s = r.projectionMatrix, c = this.geometry, p = this.material, u = p.resolution, y = p.linewidth, m = c.attributes.instanceStart, M = c.attributes.instanceEnd, l = new i.Vector4(), f = new i.Vector4(), v = new i.Vector4(), g = new i.Vector3(), S = new i.Matrix4(), d = new i.Line3(), C = new i.Vector3();
643
- e.at(1, v), v.w = 1, v.applyMatrix4(r.matrixWorldInverse), v.applyMatrix4(s), v.multiplyScalar(1 / v.w), v.x *= u.x / 2, v.y *= u.y / 2, v.z = 0, g.copy(v);
644
- var w = this.matrixWorld;
645
- S.multiplyMatrices(r.matrixWorldInverse, w);
646
- for (var h = 0, N = m.count; h < N; h++) {
647
- l.fromBufferAttribute(m, h), f.fromBufferAttribute(M, h), l.w = 1, f.w = 1, l.applyMatrix4(S), f.applyMatrix4(S), l.applyMatrix4(s), f.applyMatrix4(s), l.multiplyScalar(1 / l.w), f.multiplyScalar(1 / f.w);
648
- var _ = l.z < -1 && f.z < -1, G = l.z > 1 && f.z > 1;
649
- if (!(_ || G)) {
650
- l.x *= u.x / 2, l.y *= u.y / 2, f.x *= u.x / 2, f.y *= u.y / 2, d.start.copy(l), d.start.z = 0, d.end.copy(f), d.end.z = 0;
651
- var U = d.closestPointToPointParameter(g, !0);
652
- d.at(U, C);
653
- var z = i.MathUtils.lerp(l.z, f.z, U), W = z >= -1 && z <= 1, j = g.distanceTo(C) < y * 0.5;
654
- if (W && j) {
655
- d.start.fromBufferAttribute(m, h), d.end.fromBufferAttribute(M, h), d.start.applyMatrix4(w), d.end.applyMatrix4(w);
656
- var P = new i.Vector3(), b = new i.Vector3();
657
- e.distanceSqToSegment(d.start, d.end, b, P), n.push({
658
- point: b,
659
- pointOnLine: P,
660
- distance: e.origin.distanceTo(b),
661
- object: this,
662
- faceIndex: h
663
- });
664
- }
665
- }
666
- }
667
- }, o;
668
- })(i.Mesh)
669
- );
670
- Object.assign(F.prototype, { isLineSegments2: !0 });
671
- var I = (
672
- /** @class */
673
- (function(a) {
674
- A(o, a);
675
- function o(t, n) {
676
- var e = a.call(this, t, n) || this;
677
- return e.type = "Line2", e;
678
- }
679
- return o;
680
- })(F)
681
- );
682
- Object.assign(I.prototype, { isLine2: !0 });
683
- var O = (
684
- /** @class */
685
- (function(a) {
686
- A(o, a);
687
- function o() {
688
- var t = a.call(this) || this;
689
- return t.type = "LineGeometry", t;
690
- }
691
- return o.prototype.setPositions = function(t) {
692
- for (var n = t.length - 3, e = new Float32Array(2 * n), r = 0; r < n; r += 3)
693
- e[2 * r] = t[r], e[2 * r + 1] = t[r + 1], e[2 * r + 2] = t[r + 2], e[2 * r + 3] = t[r + 3], e[2 * r + 4] = t[r + 4], e[2 * r + 5] = t[r + 5];
694
- return a.prototype.setPositions.call(this, e), this;
695
- }, o.prototype.setColors = function(t) {
696
- for (var n = t.length - 3, e = new Float32Array(2 * n), r = 0; r < n; r += 3)
697
- e[2 * r] = t[r], e[2 * r + 1] = t[r + 1], e[2 * r + 2] = t[r + 2], e[2 * r + 3] = t[r + 3], e[2 * r + 4] = t[r + 4], e[2 * r + 5] = t[r + 5];
698
- return a.prototype.setColors.call(this, e), this;
699
- }, o.prototype.fromLine = function(t) {
700
- var n = t.geometry;
701
- if (n instanceof i.Geometry) {
702
- var e = new i.BufferGeometry().fromGeometry(n);
703
- this.setPositions(e.attributes.position.array);
704
- } else n instanceof i.BufferGeometry && this.setPositions(n.attributes.position.array);
705
- return this;
706
- }, o.prototype.copy = function() {
707
- return this;
708
- }, o;
709
- })(B)
710
- );
711
- Object.assign(O.prototype, { isLineGeometry: !0 });
712
- var T = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==", V = 14467195, H = 8, R = 2, k = 20, D = null, Q = (
713
- /** @class */
714
- (function(a) {
715
- A(o, a);
716
- function o(t, n) {
717
- t === void 0 && (t = new i.Vector3()), n === void 0 && (n = new i.Vector3());
718
- var e = a.call(this) || this;
719
- e.type = "FiveLine", e.needsRender = !0;
720
- var r = new O(), s = new L({
721
- color: V,
722
- linewidth: R,
723
- dashScale: k,
724
- dashed: !1
725
- });
726
- e.line = new I(r, s);
727
- var c = new i.BufferGeometry(), p = new i.PointsMaterial({
728
- color: V,
729
- size: H,
730
- map: D || (D = new i.TextureLoader().load(T)),
731
- sizeAttenuation: !1,
732
- transparent: !0
733
- });
734
- return e.points = new i.Points(c, p), e.points.renderOrder = 11, e.points.frustumCulled = !1, e.setPoints(t, n), e.add(e.line, e.points), e;
735
- }
736
- return Object.defineProperty(o, "version", {
737
- get: function() {
738
- return "6.8.0-alpha.16";
739
- },
740
- enumerable: !1,
741
- configurable: !0
742
- }), o.prototype.setPoints = function(t, n) {
743
- var e = [].concat(t.toArray(), n.toArray());
744
- this.points.geometry.setAttribute("position", new i.BufferAttribute(new Float32Array(e), 3)), this.line.geometry.setPositions(e), this.line.computeLineDistances(), this.needsRender = !0;
745
- }, o.prototype.getPoints = function() {
746
- var t = this.points.geometry.attributes.position.array;
747
- return [
748
- new i.Vector3(t[0], t[1], t[2]),
749
- new i.Vector3(t[3], t[4], t[5])
750
- ];
751
- }, o.prototype.setMaterial = function(t) {
752
- var n = this.line.material;
753
- for (var e in t)
754
- if (t.hasOwnProperty(e)) {
755
- var r = t[e];
756
- e === "dashed" ? (n.dashed = r, r ? n.defines.USE_DASH = "" : delete n.defines.USE_DASH, n.needsUpdate = !0) : n[e] = t[e];
757
- }
758
- this.needsRender = !0;
759
- }, o.prototype.setResolution = function(t, n) {
760
- var e = this.line.material.resolution;
761
- (e.x !== t || e.y !== n) && (e.set(t, n), this.needsRender = !0);
762
- }, o;
763
- })(i.Object3D)
764
- );
765
- Object.assign(Q.prototype, { isFiveLine: !0 });
766
- export {
767
- Q as Line,
768
- O as LineGeometry,
769
- L as LineMaterial,
770
- B as LineSegmentsGeometry,
771
- I as THREE_Line2,
772
- F as THREE_LineSegments2
585
+ this.needsRender = !0;
586
+ }
587
+ setResolution(e, t) {
588
+ let n = this.line.material.resolution;
589
+ (n.x !== e || n.y !== t) && (n.set(e, t), this.needsRender = !0);
590
+ }
773
591
  };
592
+ Object.assign(f.prototype, { isFiveLine: !0 });
593
+ //#endregion
594
+ export { f as Line, o as LineGeometry, r as LineMaterial, t as LineSegmentsGeometry, a as THREE_Line2, i as THREE_LineSegments2 };