@realsee/dnalogel 3.43.0 → 3.44.1

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 (158) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/CSS3DRenderPlugin/utils/three/CSS3DObject.d.ts +4 -2
  3. package/dist/CSS3DRenderPlugin/utils/three/CSS3DRenderer.d.ts +2 -1
  4. package/dist/CSS3DRenderPlugin/utils/three/CSS3DSprite.d.ts +4 -0
  5. package/dist/PanoMeasurePlugin/Controller/BaseController.d.ts +6 -1
  6. package/dist/PanoMeasurePlugin/Controller/EditController.d.ts +1 -1
  7. package/dist/PanoMeasurePlugin/Controller/index.d.ts +2 -0
  8. package/dist/Sculpt/Meshes/Line.d.ts +19 -1
  9. package/dist/Sculpt/utils/color.d.ts +1 -1
  10. package/dist/index.cjs.js +102 -68
  11. package/dist/index.js +7127 -6867
  12. package/dist/index.umd.js +106 -72
  13. package/dist/shared-utils/five/getPosition.d.ts +12 -4
  14. package/dist/shared-utils/five/initialCSS3DRender.d.ts +2 -0
  15. package/dist/shared-utils/math/deg2Rad.d.ts +1 -1
  16. package/dist/shared-utils/math/rad2Deg.d.ts +1 -1
  17. package/dist/shared-utils/positionToVector3.d.ts +6 -6
  18. package/{libs/shared-utils/three/PointSelector.d.ts → dist/shared-utils/three/PointSelector/index.d.ts} +23 -7
  19. package/dist/shared-utils/three/{PointHelper.d.ts → PointSelector/utils/PointHelper.d.ts} +11 -3
  20. package/dist/shared-utils/three/PointSelector/utils/PointHelper2.d.ts +30 -0
  21. package/dist/shared-utils/three/{PointSelectorHelper.d.ts → PointSelector/utils/PointSelectorHelper.d.ts} +9 -10
  22. package/dist/shared-utils/three/PointSelector/utils/typing.d.ts +8 -0
  23. package/dist/shared-utils/three/index.d.ts +2 -3
  24. package/libs/AreaMakerPlugin/Controller.js +5 -18
  25. package/libs/AreaMakerPlugin/index.js +4 -17
  26. package/libs/AreaMakerPlugin/utils/Item.js +13 -26
  27. package/libs/CSS3DRenderPlugin/Controller.js +9 -6
  28. package/libs/CSS3DRenderPlugin/index.js +12 -9
  29. package/libs/CSS3DRenderPlugin/utils/getAllCSS3DObject.js +6 -6
  30. package/libs/CSS3DRenderPlugin/utils/three/CSS3DObject.d.ts +4 -2
  31. package/libs/CSS3DRenderPlugin/utils/three/CSS3DObject.js +73 -56
  32. package/libs/CSS3DRenderPlugin/utils/three/CSS3DRender.js +11 -4
  33. package/libs/CSS3DRenderPlugin/utils/three/CSS3DRenderer.d.ts +2 -1
  34. package/libs/CSS3DRenderPlugin/utils/three/CSS3DRenderer.js +14 -14
  35. package/libs/CSS3DRenderPlugin/utils/three/CSS3DSprite.d.ts +4 -0
  36. package/libs/CSS3DRenderPlugin/utils/three/CSS3DSprite.js +13 -0
  37. package/libs/CSS3DRenderPlugin/utils/three/THREEJS_CSS3DRenderer.js +85 -0
  38. package/libs/CruisePlugin/BaseController.js +20 -33
  39. package/libs/CruisePlugin/Move.js +25 -23
  40. package/libs/CruisePlugin/Work.js +10 -8
  41. package/libs/CruisePlugin/index.js +23 -21
  42. package/libs/CurrentPanoImagePlugin/Controller.js +30 -43
  43. package/libs/CurrentPanoImagePlugin/index.js +5 -18
  44. package/libs/GuideLinePlugin/Controller.js +15 -13
  45. package/libs/GuideLinePlugin/GuideLineItem.js +19 -17
  46. package/libs/GuideLinePlugin/GuideLineModeItem/index.js +4 -5
  47. package/libs/GuideLinePlugin/GuideLineModeItem.js +21 -19
  48. package/libs/GuideLinePlugin/index.js +23 -21
  49. package/libs/ModelMakerPlugin/Controller.js +19 -30
  50. package/libs/ModelMakerPlugin/index.js +11 -22
  51. package/libs/ModelTVVideoPlugin/Plugin.js +13 -10
  52. package/libs/ModelTVVideoPlugin/index.js +12 -9
  53. package/libs/Object3DHelperPlugin/Controller.js +7 -5
  54. package/libs/Object3DHelperPlugin/index.js +23 -21
  55. package/libs/PanoCompassPlugin/Controller.js +18 -15
  56. package/libs/PanoCompassPlugin/index.js +21 -18
  57. package/libs/PanoDoorLabelPlugin/BaseController.js +24 -37
  58. package/libs/PanoDoorLabelPlugin/Controller.js +56 -69
  59. package/libs/PanoDoorLabelPlugin/index.js +5 -18
  60. package/libs/PanoMeasurePlugin/Components/Controller0.js +40 -47
  61. package/libs/PanoMeasurePlugin/Components/Controller1.js +72 -79
  62. package/libs/PanoMeasurePlugin/Controller/BaseController.d.ts +6 -1
  63. package/libs/PanoMeasurePlugin/Controller/BaseController.js +53 -39
  64. package/libs/PanoMeasurePlugin/Controller/EditController.d.ts +1 -1
  65. package/libs/PanoMeasurePlugin/Controller/EditController.js +177 -153
  66. package/libs/PanoMeasurePlugin/Controller/MixedController.js +1 -1
  67. package/libs/PanoMeasurePlugin/Controller/WatchController.js +60 -74
  68. package/libs/PanoMeasurePlugin/Controller/index.d.ts +2 -0
  69. package/libs/PanoMeasurePlugin/Controller/index.js +59 -60
  70. package/libs/PanoMeasurePlugin/Model/area.js +30 -44
  71. package/libs/PanoMeasurePlugin/Modules/Magnifier.js +3 -16
  72. package/libs/PanoMeasurePlugin/Modules/UIController/index.js +42 -49
  73. package/libs/PanoMeasurePlugin/Modules/rangePiece/index.js +1 -1
  74. package/libs/PanoMeasurePlugin/index.js +35 -40
  75. package/libs/PanoMeasurePlugin/utils/dom/areaDom.js +23 -36
  76. package/libs/PanoSpatialTagPlugin/Plugin.js +41 -38
  77. package/libs/PanoSpatialTagPlugin/index.js +10 -7
  78. package/libs/PanoTagPlugin/Components/Common/TagPoint.js +29 -43
  79. package/libs/PanoTagPlugin/Components/Tag/MarketingTag.js +55 -69
  80. package/libs/PanoTagPlugin/Components/Tag/index.js +9 -19
  81. package/libs/PanoTagPlugin/Components/TagContainer.js +42 -52
  82. package/libs/PanoTagPlugin/Components/TagItem.js +9 -19
  83. package/libs/PanoTagPlugin/controller/Tag/BaseTag.js +56 -64
  84. package/libs/PanoTagPlugin/controller/Tag/ModelTag.js +29 -39
  85. package/libs/PanoTagPlugin/controller/Tag/PlaneTag.js +11 -21
  86. package/libs/PanoTagPlugin/controller/Tag/PointTag.js +18 -28
  87. package/libs/PanoTagPlugin/controller/TagRender.js +18 -16
  88. package/libs/PanoTagPlugin/controller/TagUtil.js +12 -9
  89. package/libs/PanoTagPlugin/controller/index.js +27 -25
  90. package/libs/PanoTagPlugin/index.js +28 -26
  91. package/libs/PanoTagPlugin/utils/tag/calculateTagConfig.js +43 -57
  92. package/libs/PanoVideoPlugin/Controller.js +52 -65
  93. package/libs/PanoVideoPlugin/VideoMeshController.js +11 -25
  94. package/libs/PanoVideoPlugin/index.js +8 -21
  95. package/libs/PipelinePlugin/Controller.js +44 -57
  96. package/libs/PipelinePlugin/index.js +5 -18
  97. package/libs/PipelinePlugin/utils/Objects/FlowPipe.js +20 -34
  98. package/libs/PipelinePlugin/utils/Objects/HighlightPipe.js +16 -30
  99. package/libs/PipelinePlugin/utils/Objects/Pipe.js +39 -53
  100. package/libs/Sculpt/Meshes/Box.js +3 -3
  101. package/libs/Sculpt/Meshes/Cylinder.js +14 -14
  102. package/libs/Sculpt/Meshes/Line.d.ts +19 -1
  103. package/libs/Sculpt/Meshes/Line.js +40 -41
  104. package/libs/Sculpt/Meshes/LineWithDots.js +5 -6
  105. package/libs/Sculpt/Meshes/Point.js +3 -3
  106. package/libs/Sculpt/Meshes/Polyline.js +3 -3
  107. package/libs/Sculpt/Meshes/Prism.js +11 -12
  108. package/libs/Sculpt/Meshes/Rectangle.js +3 -3
  109. package/libs/Sculpt/Objects/Point/Editor.js +10 -10
  110. package/libs/Sculpt/Objects/Polygon/Editor.js +6 -6
  111. package/libs/Sculpt/Objects/Polyline/Editor.js +4 -4
  112. package/libs/Sculpt/index.js +3 -3
  113. package/libs/Sculpt/utils/Modules/Global.js +1 -1
  114. package/libs/Sculpt/utils/color.d.ts +1 -1
  115. package/libs/Sculpt/utils/three/ColoredMesh.js +3 -3
  116. package/libs/base/BasePlugin.js +4 -4
  117. package/libs/floorplan/Components/Compass.js +29 -31
  118. package/libs/floorplan/MapviewFloorplanPlugin/Controller.js +9 -22
  119. package/libs/floorplan/MapviewFloorplanPlugin/index.js +6 -19
  120. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +5 -18
  121. package/libs/floorplan/ModelFloorplanPlugin/index.js +5 -18
  122. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +48 -61
  123. package/libs/floorplan/PanoFloorplanRadarPlugin/index.js +5 -18
  124. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +28 -41
  125. package/libs/floorplan/TopviewFloorplanPlugin/index.js +5 -18
  126. package/libs/floorplan/index.js +3 -3
  127. package/libs/index.js +140 -137
  128. package/libs/shared-utils/five/getPosition.d.ts +12 -4
  129. package/libs/shared-utils/five/getPosition.js +23 -23
  130. package/libs/shared-utils/five/index.js +2 -2
  131. package/libs/shared-utils/five/initialCSS3DRender.d.ts +2 -0
  132. package/libs/shared-utils/five/initialCSS3DRender.js +17 -0
  133. package/libs/shared-utils/five/lookObject.js +3 -3
  134. package/libs/shared-utils/index.js +38 -40
  135. package/libs/shared-utils/logger.js +1 -1
  136. package/libs/shared-utils/math/deg2Rad.d.ts +1 -1
  137. package/libs/shared-utils/math/rad2Deg.d.ts +1 -1
  138. package/libs/shared-utils/positionToVector3.d.ts +6 -6
  139. package/{dist/shared-utils/three/PointSelector.d.ts → libs/shared-utils/three/PointSelector/index.d.ts} +23 -7
  140. package/libs/shared-utils/three/{PointSelector.js → PointSelector/index.js} +54 -45
  141. package/libs/shared-utils/three/{PointHelper.d.ts → PointSelector/utils/PointHelper.d.ts} +11 -3
  142. package/libs/shared-utils/three/PointSelector/utils/PointHelper.js +95 -0
  143. package/libs/shared-utils/three/PointSelector/utils/PointHelper2.d.ts +30 -0
  144. package/libs/shared-utils/three/PointSelector/utils/PointHelper2.js +153 -0
  145. package/libs/shared-utils/three/{PointSelectorHelper.d.ts → PointSelector/utils/PointSelectorHelper.d.ts} +9 -10
  146. package/libs/shared-utils/three/PointSelector/utils/PointSelectorHelper.js +60 -0
  147. package/libs/{PanoMeasurePlugin/Modules/rangePiece → shared-utils/three/PointSelector/utils}/html.js +3 -4
  148. package/libs/shared-utils/three/PointSelector/utils/typing.d.ts +8 -0
  149. package/libs/shared-utils/three/index.d.ts +2 -3
  150. package/libs/shared-utils/three/index.js +3 -3
  151. package/package.json +3 -3
  152. package/dist/shared-utils/three/PointDomHelper.d.ts +0 -18
  153. package/libs/shared-utils/three/PointDomHelper.d.ts +0 -18
  154. package/libs/shared-utils/three/PointDomHelper.js +0 -62
  155. package/libs/shared-utils/three/PointHelper.js +0 -73
  156. package/libs/shared-utils/three/PointSelectorHelper.js +0 -52
  157. /package/dist/{PanoMeasurePlugin/Modules/rangePiece → shared-utils/three/PointSelector/utils}/html.d.ts +0 -0
  158. /package/libs/{PanoMeasurePlugin/Modules/rangePiece → shared-utils/three/PointSelector/utils}/html.d.ts +0 -0
@@ -1,46 +1,46 @@
1
1
  var u = Object.defineProperty, d = Object.defineProperties;
2
2
  var m = Object.getOwnPropertyDescriptors;
3
- var i = Object.getOwnPropertySymbols;
4
- var y = Object.prototype.hasOwnProperty, f = Object.prototype.propertyIsEnumerable;
3
+ var c = Object.getOwnPropertySymbols;
4
+ var y = Object.prototype.hasOwnProperty, p = Object.prototype.propertyIsEnumerable;
5
5
  var s = (t, e, n) => e in t ? u(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, a = (t, e) => {
6
6
  for (var n in e || (e = {}))
7
7
  y.call(e, n) && s(t, n, e[n]);
8
- if (i)
9
- for (var n of i(e))
10
- f.call(e, n) && s(t, n, e[n]);
8
+ if (c)
9
+ for (var n of c(e))
10
+ p.call(e, n) && s(t, n, e[n]);
11
11
  return t;
12
12
  }, l = (t, e) => d(t, m(e));
13
- import * as o from "three";
14
- import { getRaycasterByNdcPosition as g } from "./getRaycasterByNdcPosition.js";
15
- import { getFiveModel as p } from "./getFiveModel.js";
16
- function j(t, e) {
17
- const n = g(t, e);
18
- return R(t, n);
13
+ import * as i from "three";
14
+ import { getRaycasterByNdcPosition as R } from "./getRaycasterByNdcPosition.js";
15
+ import { getFiveModel as f } from "./getFiveModel.js";
16
+ function P(t, e, n) {
17
+ const r = R(t, e);
18
+ return B(t, r, n);
19
19
  }
20
- function R(t, e) {
21
- var n;
22
- return (n = B(t, e)) != null ? n : I(e);
20
+ function B(t, e, n) {
21
+ const r = V(t, e);
22
+ return n != null && n.virtualPoint ? r != null ? r : I(e) : r;
23
23
  }
24
24
  function I(t) {
25
- const n = new o.Vector3().addVectors(
25
+ const n = new i.Vector3().addVectors(
26
26
  t.ray.origin,
27
27
  t.ray.direction.clone().normalize().multiplyScalar(3)
28
28
  ), r = t.ray.direction.clone().negate();
29
29
  return {
30
30
  distance: 3,
31
31
  point: n,
32
- object: new o.Object3D(),
33
- face: new o.Face3(0, 0, 0, r),
32
+ object: new i.Object3D(),
33
+ face: new i.Face3(0, 0, 0, r),
34
34
  raycaster: t,
35
35
  isVirtual: !0
36
36
  };
37
37
  }
38
- function B(t, e) {
39
- const c = p(t).intersectRaycaster(e)[0];
40
- if (c)
41
- return l(a({}, c), { raycaster: e, isVirtual: !1 });
38
+ function V(t, e) {
39
+ const o = f(t).intersectRaycaster(e)[0];
40
+ if (o)
41
+ return l(a({}, o), { raycaster: e, isVirtual: !1 });
42
42
  }
43
43
  export {
44
- j as getIntersectByNdcPosition,
45
- R as getIntersectByRaycaster
44
+ P as getIntersectByNdcPosition,
45
+ B as getIntersectByRaycaster
46
46
  };
@@ -1,8 +1,8 @@
1
1
  import "three";
2
2
  import "hammerjs";
3
+ import "three/examples/jsm/renderers/CSS3DRenderer";
3
4
  import "../../vendor/@tweenjs/tween/dist/tween.esm.js.js";
4
- import "../../CSS3DRenderPlugin/utils/three/CSS3DRender.js";
5
- import "../../CSS3DRenderPlugin/utils/generateBehindFiveElement.js";
5
+ import "@realsee/five/line";
6
6
  import "../three/THREESphere.js";
7
7
  import "animejs";
8
8
  function d(e) {
@@ -0,0 +1,2 @@
1
+ import { Five } from '@realsee/five';
2
+ export declare function initialCSS3DRender(five: Five): void;
@@ -0,0 +1,17 @@
1
+ import m from "../../CSS3DRenderPlugin/utils/three/CSS3DRenderer.js";
2
+ const d = "CSS3DRenderer-dshauidwahdslkadnmsla";
3
+ function a(n) {
4
+ var t;
5
+ const r = (t = n.getElement()) == null ? void 0 : t.parentElement;
6
+ if (!r) {
7
+ console.error("initialCSS3DRender: five element is not exist");
8
+ return;
9
+ }
10
+ if (document.getElementById(d))
11
+ return;
12
+ const e = new m();
13
+ e.domElementWrapper.id = d, e.domElementWrapper.style.zIndex = "1", e.appendToElement(r), e.renderEveryFrame(n.scene, n.camera);
14
+ }
15
+ export {
16
+ a as initialCSS3DRender
17
+ };
@@ -27,12 +27,12 @@ var g = (e, o, t) => new Promise((r, m) => {
27
27
  });
28
28
  import * as n from "three";
29
29
  import "hammerjs";
30
- import "../../vendor/@tweenjs/tween/dist/tween.esm.js.js";
30
+ import "three/examples/jsm/renderers/CSS3DRenderer";
31
31
  import { vectorToCoordinates as N } from "../vectorToCoordinate.js";
32
32
  import { FiveUtil as O } from "../Utils/FiveUtil.js";
33
33
  import { notNil as Y } from "../isNil.js";
34
- import "../../CSS3DRenderPlugin/utils/three/CSS3DRender.js";
35
- import "../../CSS3DRenderPlugin/utils/generateBehindFiveElement.js";
34
+ import "../../vendor/@tweenjs/tween/dist/tween.esm.js.js";
35
+ import "@realsee/five/line";
36
36
  import { worldBoundingSphere as j } from "../three/boundingBox.js";
37
37
  import "animejs";
38
38
  function $(e, o, t) {
@@ -7,42 +7,40 @@ import { Magnifier as m } from "./three/Magnifier.js";
7
7
  import { getCoordsFromClient as n, getCoordsFromElement as p } from "./three/getCoords.js";
8
8
  import { getRaycasterFromFivePointer as l } from "./three/getRaycaster.js";
9
9
  import { getIntersectFromRelativePosition as f } from "./three/getIntersect.js";
10
- import { PointHelper as a } from "./three/PointHelper.js";
11
- import { PointDomHelper as d } from "./three/PointDomHelper.js";
12
- import { PointSelectorHelper as g } from "./three/PointSelectorHelper.js";
13
- import { Object3D as s } from "./three/core/Object3D.js";
14
- import { LineSegments as u } from "./three/objects/LineSegments.js";
15
- import { bounding as b, boundingBox as c, boundingSphere as x, boxVertex as F, boxVertexes as P, worldBounding as k, worldBoundingBox as v, worldBoundingSphere as w } from "./three/boundingBox.js";
16
- import { animeMap as B, blink as S, reblink as L } from "./three/blink.js";
17
- import { isNil as M, notNil as j } from "./isNil.js";
18
- import { uuid as y } from "./uuid.js";
19
- import { absoluteUrl as H, isAbsoluteURL as I } from "./url/absoluteUrl.js";
10
+ import { PointHelper as a } from "./three/PointSelector/utils/PointHelper.js";
11
+ import { PointSelectorHelper as d } from "./three/PointSelector/utils/PointSelectorHelper.js";
12
+ import { Object3D as g } from "./three/core/Object3D.js";
13
+ import { LineSegments as s } from "./three/objects/LineSegments.js";
14
+ import { bounding as u, boundingBox as b, boundingSphere as c, boxVertex as x, boxVertexes as F, worldBounding as P, worldBoundingBox as k, worldBoundingSphere as v } from "./three/boundingBox.js";
15
+ import { animeMap as w, blink as B, reblink as S } from "./three/blink.js";
16
+ import { isNil as L, notNil as M } from "./isNil.js";
17
+ import { uuid as j } from "./uuid.js";
18
+ import { absoluteUrl as y, isAbsoluteURL as I } from "./url/absoluteUrl.js";
20
19
  import { awaitNextFrame as O, getFrameTime as R, nextFrame as _, requestAnimationFrameInterval as h } from "./animationFrame/index.js";
21
20
  import { equal as C } from "./equal.js";
22
- import { isModelLike as N, isPanoramaLike as T } from "./five/mode.js";
23
- import { lookObject as q } from "./five/lookObject.js";
24
- import { lookPoint as A } from "./five/lookPoint.js";
25
- import { BetterTween as D, tweenProgress as U } from "./animationFrame/BetterTween.js";
26
- const uo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
21
+ import { isModelLike as H, isPanoramaLike as N } from "./five/mode.js";
22
+ import { lookObject as T } from "./five/lookObject.js";
23
+ import { lookPoint as q } from "./five/lookPoint.js";
24
+ import { BetterTween as A, tweenProgress as U } from "./animationFrame/BetterTween.js";
25
+ const go = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
27
26
  __proto__: null,
28
- BetterTween: D,
27
+ BetterTween: A,
29
28
  Interval: r,
30
- LineSegments: u,
29
+ LineSegments: s,
31
30
  Magnifier: m,
32
- Object3D: s,
33
- PointDomHelper: d,
31
+ Object3D: g,
34
32
  PointHelper: a,
35
- PointSelectorHelper: g,
33
+ PointSelectorHelper: d,
36
34
  Rectangle: e,
37
- absoluteUrl: H,
38
- animeMap: B,
35
+ absoluteUrl: y,
36
+ animeMap: w,
39
37
  awaitNextFrame: O,
40
- blink: S,
41
- bounding: b,
42
- boundingBox: c,
43
- boundingSphere: x,
44
- boxVertex: F,
45
- boxVertexes: P,
38
+ blink: B,
39
+ bounding: u,
40
+ boundingBox: b,
41
+ boundingSphere: c,
42
+ boxVertex: x,
43
+ boxVertexes: F,
46
44
  checkFiveModelLoaded: i,
47
45
  convexHull: t,
48
46
  equal: C,
@@ -53,22 +51,22 @@ const uo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
53
51
  getRaycasterFromFivePointer: l,
54
52
  inside: o,
55
53
  isAbsoluteURL: I,
56
- isModelLike: N,
57
- isNil: M,
58
- isPanoramaLike: T,
59
- lookObject: q,
60
- lookPoint: A,
54
+ isModelLike: H,
55
+ isNil: L,
56
+ isPanoramaLike: N,
57
+ lookObject: T,
58
+ lookPoint: q,
61
59
  nextFrame: _,
62
- notNil: j,
60
+ notNil: M,
63
61
  pointInPolygon: o,
64
- reblink: L,
62
+ reblink: S,
65
63
  requestAnimationFrameInterval: h,
66
64
  tweenProgress: U,
67
- uuid: y,
68
- worldBounding: k,
69
- worldBoundingBox: v,
70
- worldBoundingSphere: w
65
+ uuid: j,
66
+ worldBounding: P,
67
+ worldBoundingBox: k,
68
+ worldBoundingSphere: v
71
69
  }, Symbol.toStringTag, { value: "Module" }));
72
70
  export {
73
- uo as index
71
+ go as index
74
72
  };
@@ -1,6 +1,6 @@
1
1
  function A() {
2
2
  console.debug(
3
- "%c %c@realsee/dnalogel %cv3.43.0",
3
+ "%c %c@realsee/dnalogel %cv3.44.1",
4
4
  [
5
5
  "background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMCAMAAACHgmeRAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABLFBMVEUAAAAapPoap/oaqvkbrfkbr/gZnfwZoPsaqfnD4v/E4/8Ylv0clPm93/+/4P/B4f8Yj/683/8Wif+33P8Uhv+x2f8ShP+s1v8Pgf+n0/8Nf/+h0f8Lff8Lff8Nf/9dl/+czv8KfP8KfP+Lxf+Uyv+Xy/+Hwv+Jw/+Mxf+Oxv+RyP8aovsapfoap/oZmfwZm/wZnvsYnPsYkf4YlP0NePsDYfgYcfi43f+63v8Xiv8Xjf4EWfwCV/sWZ/qz2v+02/8Vh/8WiP8EUf8CTf4WXv2u1/+v2P8Thf8Thv8ETf8CR/8VV/+o1f+q1f8Qgv8Rg/8DSv8BRf8UVP+j0v+k0v8OgP8Pgf8DR/8DQv9Nhf+dzv+fz/+Kv/+Vyv+Xy/+azf+Oxv+Qx/+SyP////8MUhLdAAAAK3RSTlMACEWQ2bd98uQECPXxqO7c+Pb49vj2+Pb49vj23Oul8fMHA+TwerXXjEIG2P+bHgAAAAFiS0dEY1y+LaoAAAB+SURBVAjXY2BgZGJmYWVgYGBgY9fW0eVg4ORi4NbTNzDk4eXjZxAwMjYxNTO3EGQQsrSytrG1sxdmEHFwdHJ2cXUTZRBz9/D08vbxFWeQ8PMPCAwKDpFkkAoNC4+IjIqWZpCRlZOPiY2LV2BQVGJQTkhMUlEFWaOmrqGpxQAAyg0S9Dq+VPYAAAAASUVORK5CYII=')",
6
6
  "background-repeat: no-repeat",
@@ -1 +1 @@
1
- export default function deg2Rad(deg: number): number;
1
+ export declare function deg2Rad(deg: number): number;
@@ -1 +1 @@
1
- export default function rad2Deg(rad: number): number;
1
+ export declare function rad2Deg(rad: number): number;
@@ -1,14 +1,14 @@
1
1
  import { Vector3 } from 'three';
2
2
  export type AnyPosition = Vector3 | number[] | {
3
- x: number;
4
- y: number;
5
- z: number;
3
+ x?: number;
4
+ y?: number;
5
+ z?: number;
6
6
  };
7
7
  export type AnyPositions = Array<AnyPosition>;
8
8
  export declare const positionToVector3: ({ x, y, z }: {
9
- x: number;
10
- y: number;
11
- z: number;
9
+ x?: number;
10
+ y?: number;
11
+ z?: number;
12
12
  }) => Vector3;
13
13
  export declare const arrayPositionToVector3: (arrayPosition: number[]) => Vector3;
14
14
  export declare const anyPositionToVector3: (position: AnyPosition) => Vector3;
@@ -1,15 +1,27 @@
1
- import type { Five } from '@realsee/five';
2
- import { PointSelectorHelper, type PointIntersection } from './PointSelectorHelper';
1
+ import type { Five, Mode as FiveMode } from '@realsee/five';
2
+ import { PointSelectorHelper, type PointIntersection, type PointSelectorHelperConfig } from './utils/PointSelectorHelper';
3
3
  import type { Vector3 } from 'three';
4
- import { Subscribe } from '../Subscribe';
4
+ import { Subscribe } from '../../Subscribe';
5
+ export type { PointIntersection };
5
6
  interface Config {
6
7
  /**
7
8
  * @description: 选点的两种模式, 'fixed' 为固定选点为屏幕中心点,拖动five画布来更新点,'cursor' 为跟随鼠标移动来更新点, 'auto' 则根据设备类型自动选择
8
9
  * @default: 'auto'
9
10
  */
10
11
  mode: 'fixed' | 'cursor' | 'auto';
11
- pointSelectorHelperParams: ConstructorParameters<typeof PointSelectorHelper>[1];
12
+ /**
13
+ * @description 当鼠标位置没有模型时,是否生成一个虚拟点
14
+ * ```markdown
15
+ * true: 生成虚拟点
16
+ * false: 不生成虚拟点
17
+ * FiveMode[]: 指定的five mode下才生成虚拟点,推荐 ['Panorama']
18
+ * ```
19
+ * @default: true
20
+ */
21
+ virtualPoint: boolean | FiveMode[];
22
+ helper: PointSelectorHelperConfig;
12
23
  }
24
+ export type PointSelectorConfig = Partial<Config>;
13
25
  type EventMap = {
14
26
  /**
15
27
  * @description: 与模型交点更新时触发,移出监听范围时为null
@@ -57,12 +69,17 @@ export declare class PointSelector extends Subscribe<EventMap> {
57
69
  private adherePointsRadius;
58
70
  private lastFiveHelperVisible?;
59
71
  private mousePosition;
72
+ private config;
60
73
  private get mouseNdcPosition();
61
- constructor(five: Five, config?: Partial<Config>);
74
+ private get virtualPoint();
75
+ constructor(five: Five, config?: PointSelectorConfig);
62
76
  enable(): void;
63
77
  disable(): void;
64
78
  dispose(): void;
65
- setAdherePoints(points: Vector3[] | ((intersection: PointIntersection) => Vector3[]) | null, radius?: number): void;
79
+ setAdherePoints(points: Vector3[] | ((params: {
80
+ intersection: PointIntersection;
81
+ pointSelectorInstance: PointSelector;
82
+ }) => Vector3[]) | null, radius?: number): void;
66
83
  /**
67
84
  * @description: 主动触发一次选点
68
85
  * @return: select 是否成功
@@ -104,4 +121,3 @@ export declare class PointSelector extends Subscribe<EventMap> {
104
121
  private renderScreenCenter;
105
122
  private emitIntersectionUpdate;
106
123
  }
107
- export {};
@@ -1,25 +1,25 @@
1
- var v = Object.defineProperty, S = Object.defineProperties;
2
- var H = Object.getOwnPropertyDescriptors;
3
- var c = Object.getOwnPropertySymbols;
4
- var b = Object.prototype.hasOwnProperty, w = Object.prototype.propertyIsEnumerable;
5
- var f = (o, s, e) => s in o ? v(o, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[s] = e, d = (o, s) => {
1
+ var P = Object.defineProperty, E = Object.defineProperties;
2
+ var S = Object.getOwnPropertyDescriptors;
3
+ var p = Object.getOwnPropertySymbols;
4
+ var w = Object.prototype.hasOwnProperty, C = Object.prototype.propertyIsEnumerable;
5
+ var f = (n, s, e) => s in n ? P(n, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[s] = e, l = (n, s) => {
6
6
  for (var e in s || (s = {}))
7
- b.call(s, e) && f(o, e, s[e]);
8
- if (c)
9
- for (var e of c(s))
10
- w.call(s, e) && f(o, e, s[e]);
11
- return o;
12
- }, u = (o, s) => S(o, H(s));
13
- var i = (o, s, e) => (f(o, typeof s != "symbol" ? s + "" : s, e), e);
14
- import { PointSelectorHelper as E } from "./PointSelectorHelper.js";
15
- import { isTouchDevice as y } from "../isTouchDevice.js";
16
- import N from "hammerjs";
17
- import { Subscribe as F } from "../Subscribe.js";
18
- import { getIntersectByNdcPosition as p } from "../five/getPosition.js";
19
- const a = () => !1;
20
- class U extends F {
7
+ w.call(s, e) && f(n, e, s[e]);
8
+ if (p)
9
+ for (var e of p(s))
10
+ C.call(s, e) && f(n, e, s[e]);
11
+ return n;
12
+ }, c = (n, s) => E(n, S(s));
13
+ var i = (n, s, e) => (f(n, typeof s != "symbol" ? s + "" : s, e), e);
14
+ import { PointSelectorHelper as b } from "./utils/PointSelectorHelper.js";
15
+ import { isTouchDevice as y } from "../../isTouchDevice.js";
16
+ import H from "hammerjs";
17
+ import { Subscribe as F } from "../../Subscribe.js";
18
+ import { getIntersectByNdcPosition as d } from "../../five/getPosition.js";
19
+ const h = () => !1;
20
+ class B extends F {
21
21
  constructor(e, t) {
22
- var r, l;
22
+ var a, u;
23
23
  super();
24
24
  /**
25
25
  * @description: 不在 five canvas 上时为 true
@@ -40,6 +40,7 @@ class U extends F {
40
40
  i(this, "adherePointsRadius", 0.1);
41
41
  i(this, "lastFiveHelperVisible");
42
42
  i(this, "mousePosition");
43
+ i(this, "config");
43
44
  /**
44
45
  * @description: 主动触发一次选点
45
46
  * @return: select 是否成功
@@ -67,7 +68,7 @@ class U extends F {
67
68
  clientY: e.center.y
68
69
  }), !this.mouseNdcPosition)
69
70
  return;
70
- const t = p(this.five, this.mouseNdcPosition);
71
+ const t = d(this.five, this.mouseNdcPosition, { virtualPoint: this.virtualPoint });
71
72
  t != null && t.face && this.select(t);
72
73
  });
73
74
  /**
@@ -80,7 +81,7 @@ class U extends F {
80
81
  clientY: e.center.y
81
82
  }), !this.mouseNdcPosition))
82
83
  return;
83
- const t = p(this.five, this.mouseNdcPosition);
84
+ const t = d(this.five, this.mouseNdcPosition, { virtualPoint: this.virtualPoint });
84
85
  t != null && t.face && this.updatePointSelectorHelperIntersect(t);
85
86
  });
86
87
  /**
@@ -92,7 +93,7 @@ class U extends F {
92
93
  clientY: e.center.y
93
94
  }), !this.mouseNdcPosition)
94
95
  return;
95
- const t = p(this.five, this.mouseNdcPosition);
96
+ const t = d(this.five, this.mouseNdcPosition, { virtualPoint: this.virtualPoint });
96
97
  t != null && t.face && (this.pressDown = !0, this.updatePointSelectorHelperIntersect(t));
97
98
  });
98
99
  /**
@@ -108,34 +109,37 @@ class U extends F {
108
109
  * @description: 根据鼠标位置更新helper位置
109
110
  */
110
111
  i(this, "updateByNdcPosition", (e) => {
111
- const t = p(this.five, e);
112
+ const t = d(this.five, e, { virtualPoint: this.virtualPoint });
112
113
  this.updatePointSelectorHelperIntersect(t);
113
114
  });
114
115
  /**
115
116
  * @description: 更新 pointSelectorHelper 的焦点位置
116
117
  */
117
118
  i(this, "updatePointSelectorHelperIntersect", (e) => {
118
- var h;
119
- this.pointSelectorHelper.show();
120
- const t = d({}, e);
121
- let n = !1;
122
- if (((h = this.adherePoints) == null ? void 0 : h.length) > 0 && typeof this.adherePointsRadius == "number") {
123
- for (const r of this.adherePoints(e))
119
+ if (!e) {
120
+ this.onLeave(), this.five.getElement().style.cursor = `url("data:image/svg+xml,%3Csvg width='12px' height='12px' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cpath d='M6,12 C9.3137085,12 12,9.3137085 12,6 C12,2.6862915 9.3137085,0 6,0 C2.6862915,0 0,2.6862915 0,6 C0,9.3137085 2.6862915,12 6,12 Z' fill='%23FF5959'%3E%3C/path%3E%3Cg transform='translate(2, 2)' stroke='%23FFFFFF'%3E%3Ccircle cx='4' cy='4' r='4'%3E%3C/circle%3E%3Cline x1='1.07141075' y1='1.23997894' x2='6.64700843' y2='6.81557662'%3E%3C/line%3E%3C/g%3E%3C/g%3E%3C/svg%3E"), auto`;
121
+ return;
122
+ }
123
+ this.onEnter(), this.five.getElement().style.cursor = "";
124
+ const t = l({}, e);
125
+ let o = !1;
126
+ if (typeof this.adherePoints == "function" && typeof this.adherePointsRadius == "number") {
127
+ for (const r of this.adherePoints({ intersection: e, pointSelectorInstance: this }))
124
128
  if (r.distanceTo(e.point) < this.adherePointsRadius) {
125
- t.point = r.clone(), n = !0;
129
+ t.point = r.clone(), o = !0;
126
130
  break;
127
131
  }
128
132
  }
129
- this.pointSelectorHelper.updateWithIntersect(t, { emitEvent: !1 }), this.emit("intersectionUpdate", t, n);
133
+ this.pointSelectorHelper.updateWithIntersect(t, { emitEvent: !1 }), this.emit("intersectionUpdate", t, o);
130
134
  });
131
135
  i(this, "mousePositionToNdcPosition", (e) => {
132
136
  const t = this.five.getElement();
133
137
  if (!t)
134
138
  return null;
135
- const { top: n, left: h, width: r, height: l } = t.getBoundingClientRect(), { clientX: m, clientY: P } = e;
139
+ const { top: o, left: r, width: a, height: u } = t.getBoundingClientRect(), { clientX: m, clientY: v } = e;
136
140
  return {
137
- x: (m - h) / r,
138
- y: 1 - (P - n) / l
141
+ x: (m - r) / a,
142
+ y: 1 - (v - o) / u
139
143
  };
140
144
  });
141
145
  i(this, "onFiveWantsPanGesture", () => {
@@ -148,15 +152,15 @@ class U extends F {
148
152
  i(this, "emitIntersectionUpdate", (e) => {
149
153
  this.emit("intersectionUpdate", e);
150
154
  });
151
- this.five = e;
152
- const n = (r = t == null ? void 0 : t.mode) != null ? r : "auto";
153
- n === "auto" ? this.mode = y ? "fixed" : "cursor" : this.mode = n;
154
- const h = {
155
+ this.five = e, this.config = t != null ? t : {};
156
+ const o = (a = t == null ? void 0 : t.mode) != null ? a : "auto";
157
+ o === "auto" ? this.mode = y ? "fixed" : "cursor" : this.mode = o;
158
+ const r = {
155
159
  autoFixPCPosition: this.mode === "cursor",
156
160
  initialPosition: this.mode === "fixed" ? { left: "35%", top: "20%" } : void 0
157
161
  };
158
- this.pointSelectorHelper = new E(e, u(d({}, t == null ? void 0 : t.pointSelectorHelperParams), {
159
- magnifierParams: d(d({}, h), (l = t == null ? void 0 : t.pointSelectorHelperParams) == null ? void 0 : l.magnifierParams)
162
+ this.pointSelectorHelper = new b(e, c(l({}, t == null ? void 0 : t.helper), {
163
+ magnifierParams: l(l({}, r), (u = t == null ? void 0 : t.helper) == null ? void 0 : u.magnifierParams)
160
164
  })), this.pointSelectorHelper.hide();
161
165
  }
162
166
  get position() {
@@ -165,6 +169,11 @@ class U extends F {
165
169
  get mouseNdcPosition() {
166
170
  return this.mousePosition ? this.mousePositionToNdcPosition(this.mousePosition) : null;
167
171
  }
172
+ get virtualPoint() {
173
+ var t;
174
+ const e = (t = this.config.virtualPoint) != null ? t : !0;
175
+ return typeof e == "boolean" ? e : Array.isArray(e) ? e.includes(this.five.state.mode) : !0;
176
+ }
168
177
  enable() {
169
178
  if (this.enabled)
170
179
  return;
@@ -172,14 +181,14 @@ class U extends F {
172
181
  const e = this.five.getElement();
173
182
  if (!e)
174
183
  throw new Error("five element not found");
175
- this.hammer || (this.hammer = new N(e)), this.mode === "cursor" ? (this.five.on("wantsPanGesture", this.onFiveWantsPanGesture), this.five.on("wantsMoveToPano", a), this.five.on("wantsChangeMode", a), this.five.on("wantsTapGesture", a), e.addEventListener("mousemove", this.updateByMousePosition), e.addEventListener("mouseenter", this.onEnter), e.addEventListener("mouseout", this.onLeave), this.hammer.on("tap", this.onTap), this.hammer.on("pan", this.onPan), this.hammer.on("press", this.onPress), this.hammer.on("panend", this.onPanEnd)) : this.mode === "fixed" && (this.five.on("panoArrived", this.renderScreenCenter), this.five.on("panGesture", this.renderScreenCenter), this.five.on("interiaPan", this.renderScreenCenter), this.renderScreenCenter(), this.pointSelectorHelper.show()), this.pointSelectorHelper.hooks.on("intersectionUpdate", this.emitIntersectionUpdate), this.lastFiveHelperVisible = this.five.helperVisible, this.five.helperVisible = !1, this.emit("enable");
184
+ this.hammer || (this.hammer = new H(e)), this.mode === "cursor" ? (this.five.on("wantsPanGesture", this.onFiveWantsPanGesture), this.five.on("wantsMoveToPano", h), this.five.on("wantsChangeMode", h), this.five.on("wantsTapGesture", h), e.addEventListener("mousemove", this.updateByMousePosition), e.addEventListener("wheel", this.updateByMousePosition), e.addEventListener("mouseenter", this.onEnter), e.addEventListener("mouseout", this.onLeave), this.hammer.on("tap", this.onTap), this.hammer.on("pan", this.onPan), this.hammer.on("press", this.onPress), this.hammer.on("panend", this.onPanEnd)) : this.mode === "fixed" && (this.five.on("panoArrived", this.renderScreenCenter), this.five.on("panGesture", this.renderScreenCenter), this.five.on("interiaPan", this.renderScreenCenter), this.renderScreenCenter(), this.pointSelectorHelper.show()), this.pointSelectorHelper.hooks.on("intersectionUpdate", this.emitIntersectionUpdate), this.lastFiveHelperVisible = this.five.helperVisible, this.five.helperVisible = !1, this.emit("enable");
176
185
  }
177
186
  disable() {
178
187
  if (!this.enabled)
179
188
  return;
180
- this.enabled = !1, this.pointSelectorHelper.disable();
189
+ this.enabled = !1, this.pointSelectorHelper.disable(), this.five.getElement().style.cursor = "";
181
190
  const e = this.five.getElement();
182
- this.five.off("wantsPanGesture", this.onFiveWantsPanGesture), this.five.off("wantsMoveToPano", a), this.five.off("wantsChangeMode", a), this.five.off("wantsTapGesture", a), this.five.helperVisible = this.lastFiveHelperVisible, e == null || e.removeEventListener("mousemove", this.updateByMousePosition), e == null || e.removeEventListener("mouseenter", this.onEnter), e == null || e.removeEventListener("mouseout", this.onLeave), this.hammer.off("tap", this.onTap), this.hammer.off("pan", this.onPan), this.hammer.off("press", this.onPress), this.hammer.off("panend", this.onPanEnd), this.five.off("panoArrived", this.renderScreenCenter), this.five.off("panGesture", this.renderScreenCenter), this.five.off("interiaPan", this.renderScreenCenter), this.pointSelectorHelper.hooks.off("intersectionUpdate", this.emitIntersectionUpdate), this.emit("disable");
191
+ this.five.off("wantsPanGesture", this.onFiveWantsPanGesture), this.five.off("wantsMoveToPano", h), this.five.off("wantsChangeMode", h), this.five.off("wantsTapGesture", h), this.five.helperVisible = this.lastFiveHelperVisible, e == null || e.removeEventListener("mousemove", this.updateByMousePosition), e == null || e.removeEventListener("mouseenter", this.onEnter), e == null || e.removeEventListener("mouseout", this.onLeave), this.hammer.off("tap", this.onTap), this.hammer.off("pan", this.onPan), this.hammer.off("press", this.onPress), this.hammer.off("panend", this.onPanEnd), this.five.off("panoArrived", this.renderScreenCenter), this.five.off("panGesture", this.renderScreenCenter), this.five.off("interiaPan", this.renderScreenCenter), this.pointSelectorHelper.hooks.off("intersectionUpdate", this.emitIntersectionUpdate), this.emit("disable");
183
192
  }
184
193
  dispose() {
185
194
  this.disable(), this.pointSelectorHelper.dispose();
@@ -189,5 +198,5 @@ class U extends F {
189
198
  }
190
199
  }
191
200
  export {
192
- U as PointSelector
201
+ B as PointSelector
193
202
  };
@@ -1,5 +1,8 @@
1
1
  import * as THREE from 'three';
2
- import type { Intersection } from '../../typings/typings';
2
+ import type { Intersection } from '../../../../typings/typings';
3
+ import type { PointHelperAbstract } from './typing';
4
+ import { CSS3DObjectPlus } from '../../../../CSS3DRenderPlugin/utils/three/CSS3DObject';
5
+ import type { Five } from '@realsee/five';
3
6
  export interface MouseGroupParameter {
4
7
  isMobile?: boolean;
5
8
  useNormalVector?: boolean;
@@ -8,15 +11,20 @@ export interface MouseGroupParameter {
8
11
  declare function createPlaneMesh(): THREE.Mesh<THREE.PlaneGeometry, THREE.MeshBasicMaterial>;
9
12
  declare function createLineMesh(): THREE.Mesh<THREE.TubeGeometry, THREE.ShaderMaterial>;
10
13
  declare function createBallMesh(): THREE.Mesh<THREE.SphereGeometry, THREE.MeshBasicMaterial>;
14
+ declare function createBorderMesh(): CSS3DObjectPlus<HTMLElement>;
11
15
  type PlanMesh = ReturnType<typeof createPlaneMesh>;
12
16
  type LineMesh = ReturnType<typeof createLineMesh>;
13
17
  type BallMesh = ReturnType<typeof createBallMesh>;
14
- export declare class PointHelper extends THREE.Object3D {
18
+ type BorderMesh = ReturnType<typeof createBorderMesh>;
19
+ export declare class PointHelper extends THREE.Object3D implements PointHelperAbstract {
15
20
  planeMesh: PlanMesh;
16
21
  lineMesh: LineMesh;
17
22
  ballMesh: BallMesh;
18
- constructor();
23
+ borderMesh: BorderMesh;
24
+ constructor(five: Five);
19
25
  updateWithIntersect(intersect: Intersection): void;
26
+ show(): void;
27
+ hide(): void;
20
28
  dispose(): void;
21
29
  }
22
30
  export {};
@@ -0,0 +1,95 @@
1
+ var a = Object.defineProperty;
2
+ var i = (r, n, e) => n in r ? a(r, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[n] = e;
3
+ var s = (r, n, e) => (i(r, typeof n != "symbol" ? n + "" : n, e), e);
4
+ import * as t from "three";
5
+ import { POINT_HELPER_TEXTURE_URL as l } from "../../Assets/index.js";
6
+ import { CSS3DObjectPlus as c } from "../../../../CSS3DRenderPlugin/utils/three/CSS3DObject.js";
7
+ import { rangePieceImg as h } from "./html.js";
8
+ import { initialCSS3DRender as d } from "../../../five/initialCSS3DRender.js";
9
+ const p = `
10
+ varying vec2 vUv;
11
+ void main() {
12
+ vUv = uv;
13
+ vec4 mvPosition = modelViewMatrix * vec4(position, 1);
14
+ gl_Position = projectionMatrix * mvPosition;
15
+ }
16
+ `, u = `
17
+ varying vec2 vUv;
18
+ void main() {
19
+ vec2 uv = vec2(vUv.x, vUv.y);
20
+ float a = 1.0;
21
+ float match = 1.0 - uv.x;
22
+ gl_FragColor = vec4(1.0,1.0,1.0,match);
23
+ }
24
+ `;
25
+ function M() {
26
+ const r = new t.PlaneGeometry(0.4, 0.4), n = l, e = new t.TextureLoader().load(n);
27
+ e.encoding = t.sRGBEncoding, e.minFilter = t.LinearFilter;
28
+ const o = new t.MeshBasicMaterial({
29
+ map: e,
30
+ transparent: !0,
31
+ depthTest: !1
32
+ });
33
+ return new t.Mesh(r, o);
34
+ }
35
+ function m() {
36
+ const r = new t.CurvePath();
37
+ r.add(new t.LineCurve3(new t.Vector3(0, 0, 0), new t.Vector3(0, 0, 0.1)));
38
+ const n = new t.TubeGeometry(r, 8, 3e-3), e = new t.ShaderMaterial({
39
+ vertexShader: p,
40
+ fragmentShader: u,
41
+ depthTest: !1,
42
+ transparent: !0
43
+ });
44
+ return new t.Mesh(n, e);
45
+ }
46
+ function v() {
47
+ const r = new t.SphereGeometry(0.01, 20, 20), n = new t.MeshBasicMaterial({
48
+ color: 10349931,
49
+ depthTest: !1,
50
+ transparent: !0,
51
+ side: t.DoubleSide
52
+ }), e = new t.Mesh(r, n);
53
+ return e.position.set(0, 0, 0.1), e;
54
+ }
55
+ function w() {
56
+ const n = new c({
57
+ pointerEvents: "none",
58
+ cornerPoints: [
59
+ new t.Vector3(-0.2, 0.2, 0),
60
+ new t.Vector3(-0.2, -0.2, 0),
61
+ new t.Vector3(0.2, -0.2, 0),
62
+ new t.Vector3(0.2, 0.2, 0)
63
+ ]
64
+ }), e = document.createElement("div");
65
+ return e.style.width = "100%", e.style.height = "100%", e.style.backgroundImage = `url(${h})`, e.style.backgroundSize = "100%", e.style.backgroundRepeat = "no-repeat", n.container.appendChild(e), n;
66
+ }
67
+ class x extends t.Object3D {
68
+ constructor(e) {
69
+ super();
70
+ s(this, "planeMesh");
71
+ s(this, "lineMesh");
72
+ s(this, "ballMesh");
73
+ s(this, "borderMesh");
74
+ this.planeMesh = M(), this.lineMesh = m(), this.ballMesh = v(), this.borderMesh = w(), this.add(this.planeMesh, this.lineMesh, this.ballMesh, this.borderMesh), d(e);
75
+ }
76
+ updateWithIntersect(e) {
77
+ if (!e.face)
78
+ return;
79
+ const o = new t.Vector3().addVectors(e.point, e.face.normal);
80
+ this.position.copy(e.point), this.lookAt(o);
81
+ }
82
+ show() {
83
+ this.visible = !0;
84
+ }
85
+ hide() {
86
+ this.visible = !1;
87
+ }
88
+ dispose() {
89
+ var e;
90
+ (e = this.planeMesh.material.map) == null || e.dispose();
91
+ }
92
+ }
93
+ export {
94
+ x as PointHelper
95
+ };