@shapediver/viewer.features.drawing-tools 3.1.0

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 (209) hide show
  1. package/LICENSE +73 -0
  2. package/README.md +161 -0
  3. package/dist/api/implementation/DrawingToolsApi.d.ts +31 -0
  4. package/dist/api/implementation/DrawingToolsApi.d.ts.map +1 -0
  5. package/dist/api/implementation/DrawingToolsApi.js +111 -0
  6. package/dist/api/implementation/DrawingToolsApi.js.map +1 -0
  7. package/dist/api/implementation/restrictions/AbstractRestrictionApi.d.ts +10 -0
  8. package/dist/api/implementation/restrictions/AbstractRestrictionApi.d.ts.map +1 -0
  9. package/dist/api/implementation/restrictions/AbstractRestrictionApi.js +38 -0
  10. package/dist/api/implementation/restrictions/AbstractRestrictionApi.js.map +1 -0
  11. package/dist/api/implementation/restrictions/AbstractSnapRestrictionApi.d.ts +11 -0
  12. package/dist/api/implementation/restrictions/AbstractSnapRestrictionApi.d.ts.map +1 -0
  13. package/dist/api/implementation/restrictions/AbstractSnapRestrictionApi.js +40 -0
  14. package/dist/api/implementation/restrictions/AbstractSnapRestrictionApi.js.map +1 -0
  15. package/dist/api/implementation/restrictions/axis/AxisRestrictionApi.d.ts +7 -0
  16. package/dist/api/implementation/restrictions/axis/AxisRestrictionApi.d.ts.map +1 -0
  17. package/dist/api/implementation/restrictions/axis/AxisRestrictionApi.js +24 -0
  18. package/dist/api/implementation/restrictions/axis/AxisRestrictionApi.js.map +1 -0
  19. package/dist/api/implementation/restrictions/geometry/GeometryRestrictionApi.d.ts +15 -0
  20. package/dist/api/implementation/restrictions/geometry/GeometryRestrictionApi.d.ts.map +1 -0
  21. package/dist/api/implementation/restrictions/geometry/GeometryRestrictionApi.js +54 -0
  22. package/dist/api/implementation/restrictions/geometry/GeometryRestrictionApi.js.map +1 -0
  23. package/dist/api/implementation/restrictions/plane/PlaneRestrictionApi.d.ts +18 -0
  24. package/dist/api/implementation/restrictions/plane/PlaneRestrictionApi.d.ts.map +1 -0
  25. package/dist/api/implementation/restrictions/plane/PlaneRestrictionApi.js +61 -0
  26. package/dist/api/implementation/restrictions/plane/PlaneRestrictionApi.js.map +1 -0
  27. package/dist/api/implementation/restrictions/plane/snap/AngularRestrictionApi.d.ts +10 -0
  28. package/dist/api/implementation/restrictions/plane/snap/AngularRestrictionApi.d.ts.map +1 -0
  29. package/dist/api/implementation/restrictions/plane/snap/AngularRestrictionApi.js +40 -0
  30. package/dist/api/implementation/restrictions/plane/snap/AngularRestrictionApi.js.map +1 -0
  31. package/dist/api/implementation/restrictions/plane/snap/GridRestrictionApi.d.ts +10 -0
  32. package/dist/api/implementation/restrictions/plane/snap/GridRestrictionApi.d.ts.map +1 -0
  33. package/dist/api/implementation/restrictions/plane/snap/GridRestrictionApi.js +40 -0
  34. package/dist/api/implementation/restrictions/plane/snap/GridRestrictionApi.js.map +1 -0
  35. package/dist/api/interfaces/IDrawingToolsApi.d.ts +89 -0
  36. package/dist/api/interfaces/IDrawingToolsApi.d.ts.map +1 -0
  37. package/dist/api/interfaces/IDrawingToolsApi.js +3 -0
  38. package/dist/api/interfaces/IDrawingToolsApi.js.map +1 -0
  39. package/dist/api/interfaces/IRestrictionApi.d.ts +11 -0
  40. package/dist/api/interfaces/IRestrictionApi.d.ts.map +1 -0
  41. package/dist/api/interfaces/IRestrictionApi.js +3 -0
  42. package/dist/api/interfaces/IRestrictionApi.js.map +1 -0
  43. package/dist/api/interfaces/ISnapRestrictionApi.d.ts +13 -0
  44. package/dist/api/interfaces/ISnapRestrictionApi.d.ts.map +1 -0
  45. package/dist/api/interfaces/ISnapRestrictionApi.js +3 -0
  46. package/dist/api/interfaces/ISnapRestrictionApi.js.map +1 -0
  47. package/dist/business/implementation/DrawingToolsManager.d.ts +95 -0
  48. package/dist/business/implementation/DrawingToolsManager.d.ts.map +1 -0
  49. package/dist/business/implementation/DrawingToolsManager.js +544 -0
  50. package/dist/business/implementation/DrawingToolsManager.js.map +1 -0
  51. package/dist/business/implementation/managers/HistoryManager.d.ts +19 -0
  52. package/dist/business/implementation/managers/HistoryManager.d.ts.map +1 -0
  53. package/dist/business/implementation/managers/HistoryManager.js +89 -0
  54. package/dist/business/implementation/managers/HistoryManager.js.map +1 -0
  55. package/dist/business/implementation/managers/TextVisualizationManager.d.ts +14 -0
  56. package/dist/business/implementation/managers/TextVisualizationManager.d.ts.map +1 -0
  57. package/dist/business/implementation/managers/TextVisualizationManager.js +228 -0
  58. package/dist/business/implementation/managers/TextVisualizationManager.js.map +1 -0
  59. package/dist/business/implementation/managers/geometry/GeometryManager.d.ts +23 -0
  60. package/dist/business/implementation/managers/geometry/GeometryManager.d.ts.map +1 -0
  61. package/dist/business/implementation/managers/geometry/GeometryManager.js +82 -0
  62. package/dist/business/implementation/managers/geometry/GeometryManager.js.map +1 -0
  63. package/dist/business/implementation/managers/geometry/GeometryMathManager.d.ts +73 -0
  64. package/dist/business/implementation/managers/geometry/GeometryMathManager.d.ts.map +1 -0
  65. package/dist/business/implementation/managers/geometry/GeometryMathManager.js +230 -0
  66. package/dist/business/implementation/managers/geometry/GeometryMathManager.js.map +1 -0
  67. package/dist/business/implementation/managers/geometry/GeometryState.d.ts +46 -0
  68. package/dist/business/implementation/managers/geometry/GeometryState.d.ts.map +1 -0
  69. package/dist/business/implementation/managers/geometry/GeometryState.js +323 -0
  70. package/dist/business/implementation/managers/geometry/GeometryState.js.map +1 -0
  71. package/dist/business/implementation/managers/geometry/helpers/GeometryManagerHelper.d.ts +16 -0
  72. package/dist/business/implementation/managers/geometry/helpers/GeometryManagerHelper.d.ts.map +1 -0
  73. package/dist/business/implementation/managers/geometry/helpers/GeometryManagerHelper.js +157 -0
  74. package/dist/business/implementation/managers/geometry/helpers/GeometryManagerHelper.js.map +1 -0
  75. package/dist/business/implementation/managers/interaction/EventManager.d.ts +26 -0
  76. package/dist/business/implementation/managers/interaction/EventManager.d.ts.map +1 -0
  77. package/dist/business/implementation/managers/interaction/EventManager.js +63 -0
  78. package/dist/business/implementation/managers/interaction/EventManager.js.map +1 -0
  79. package/dist/business/implementation/managers/interaction/InteractionManager.d.ts +39 -0
  80. package/dist/business/implementation/managers/interaction/InteractionManager.d.ts.map +1 -0
  81. package/dist/business/implementation/managers/interaction/InteractionManager.js +237 -0
  82. package/dist/business/implementation/managers/interaction/InteractionManager.js.map +1 -0
  83. package/dist/business/implementation/managers/interaction/RestrictionManager.d.ts +19 -0
  84. package/dist/business/implementation/managers/interaction/RestrictionManager.d.ts.map +1 -0
  85. package/dist/business/implementation/managers/interaction/RestrictionManager.js +117 -0
  86. package/dist/business/implementation/managers/interaction/RestrictionManager.js.map +1 -0
  87. package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.d.ts +10 -0
  88. package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.d.ts.map +1 -0
  89. package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.js +52 -0
  90. package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.js.map +1 -0
  91. package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.d.ts +14 -0
  92. package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.d.ts.map +1 -0
  93. package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.js +135 -0
  94. package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.js.map +1 -0
  95. package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.d.ts +16 -0
  96. package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.d.ts.map +1 -0
  97. package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.js +113 -0
  98. package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.js.map +1 -0
  99. package/dist/business/implementation/managers/interaction/helpers/InteractionManagerHelper.d.ts +58 -0
  100. package/dist/business/implementation/managers/interaction/helpers/InteractionManagerHelper.d.ts.map +1 -0
  101. package/dist/business/implementation/managers/interaction/helpers/InteractionManagerHelper.js +377 -0
  102. package/dist/business/implementation/managers/interaction/helpers/InteractionManagerHelper.js.map +1 -0
  103. package/dist/business/implementation/managers/interaction/restrictions/AbstractRestriction.d.ts +19 -0
  104. package/dist/business/implementation/managers/interaction/restrictions/AbstractRestriction.d.ts.map +1 -0
  105. package/dist/business/implementation/managers/interaction/restrictions/AbstractRestriction.js +105 -0
  106. package/dist/business/implementation/managers/interaction/restrictions/AbstractRestriction.js.map +1 -0
  107. package/dist/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.d.ts +22 -0
  108. package/dist/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.d.ts.map +1 -0
  109. package/dist/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.js +96 -0
  110. package/dist/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.js.map +1 -0
  111. package/dist/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.d.ts +39 -0
  112. package/dist/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.d.ts.map +1 -0
  113. package/dist/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.js +215 -0
  114. package/dist/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.js.map +1 -0
  115. package/dist/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.d.ts +58 -0
  116. package/dist/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.d.ts.map +1 -0
  117. package/dist/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.js +180 -0
  118. package/dist/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.js.map +1 -0
  119. package/dist/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.d.ts +38 -0
  120. package/dist/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.d.ts.map +1 -0
  121. package/dist/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.js +308 -0
  122. package/dist/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.js.map +1 -0
  123. package/dist/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.d.ts +37 -0
  124. package/dist/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.d.ts.map +1 -0
  125. package/dist/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.js +228 -0
  126. package/dist/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.js.map +1 -0
  127. package/dist/business/implementation/utils/numberCleaner.d.ts +2 -0
  128. package/dist/business/implementation/utils/numberCleaner.d.ts.map +1 -0
  129. package/dist/business/implementation/utils/numberCleaner.js +9 -0
  130. package/dist/business/implementation/utils/numberCleaner.js.map +1 -0
  131. package/dist/business/interfaces/IDrawingToolsManager.d.ts +270 -0
  132. package/dist/business/interfaces/IDrawingToolsManager.d.ts.map +1 -0
  133. package/dist/business/interfaces/IDrawingToolsManager.js +16 -0
  134. package/dist/business/interfaces/IDrawingToolsManager.js.map +1 -0
  135. package/dist/business/interfaces/IManager.d.ts +4 -0
  136. package/dist/business/interfaces/IManager.d.ts.map +1 -0
  137. package/dist/business/interfaces/IManager.js +3 -0
  138. package/dist/business/interfaces/IManager.js.map +1 -0
  139. package/dist/business/interfaces/IRestriction.d.ts +41 -0
  140. package/dist/business/interfaces/IRestriction.d.ts.map +1 -0
  141. package/dist/business/interfaces/IRestriction.js +13 -0
  142. package/dist/business/interfaces/IRestriction.js.map +1 -0
  143. package/dist/business/interfaces/IRestrictionBase.d.ts +19 -0
  144. package/dist/business/interfaces/IRestrictionBase.d.ts.map +1 -0
  145. package/dist/business/interfaces/IRestrictionBase.js +5 -0
  146. package/dist/business/interfaces/IRestrictionBase.js.map +1 -0
  147. package/dist/business/interfaces/ISnapRestriction.d.ts +50 -0
  148. package/dist/business/interfaces/ISnapRestriction.d.ts.map +1 -0
  149. package/dist/business/interfaces/ISnapRestriction.js +4 -0
  150. package/dist/business/interfaces/ISnapRestriction.js.map +1 -0
  151. package/dist/business/interfaces/events/EventResponseMapping.d.ts +19 -0
  152. package/dist/business/interfaces/events/EventResponseMapping.d.ts.map +1 -0
  153. package/dist/business/interfaces/events/EventResponseMapping.js +4 -0
  154. package/dist/business/interfaces/events/EventResponseMapping.js.map +1 -0
  155. package/dist/business/interfaces/events/IDrawingToolsEvent.d.ts +12 -0
  156. package/dist/business/interfaces/events/IDrawingToolsEvent.d.ts.map +1 -0
  157. package/dist/business/interfaces/events/IDrawingToolsEvent.js +3 -0
  158. package/dist/business/interfaces/events/IDrawingToolsEvent.js.map +1 -0
  159. package/dist/index.d.ts +32 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +45 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/three/CSS2DRenderer.d.ts +32 -0
  164. package/dist/three/CSS2DRenderer.d.ts.map +1 -0
  165. package/dist/three/CSS2DRenderer.js +137 -0
  166. package/dist/three/CSS2DRenderer.js.map +1 -0
  167. package/package.json +55 -0
  168. package/src/api/implementation/DrawingToolsApi.ts +135 -0
  169. package/src/api/implementation/restrictions/AbstractRestrictionApi.ts +34 -0
  170. package/src/api/implementation/restrictions/AbstractSnapRestrictionApi.ts +36 -0
  171. package/src/api/implementation/restrictions/axis/AxisRestrictionApi.ts +19 -0
  172. package/src/api/implementation/restrictions/geometry/GeometryRestrictionApi.ts +56 -0
  173. package/src/api/implementation/restrictions/plane/PlaneRestrictionApi.ts +63 -0
  174. package/src/api/implementation/restrictions/plane/snap/AngularRestrictionApi.ts +35 -0
  175. package/src/api/implementation/restrictions/plane/snap/GridRestrictionApi.ts +35 -0
  176. package/src/api/interfaces/IDrawingToolsApi.ts +99 -0
  177. package/src/api/interfaces/IRestrictionApi.ts +15 -0
  178. package/src/api/interfaces/ISnapRestrictionApi.ts +18 -0
  179. package/src/business/implementation/DrawingToolsManager.ts +619 -0
  180. package/src/business/implementation/managers/HistoryManager.ts +101 -0
  181. package/src/business/implementation/managers/TextVisualizationManager.ts +245 -0
  182. package/src/business/implementation/managers/geometry/GeometryManager.ts +95 -0
  183. package/src/business/implementation/managers/geometry/GeometryMathManager.ts +273 -0
  184. package/src/business/implementation/managers/geometry/GeometryState.ts +436 -0
  185. package/src/business/implementation/managers/geometry/helpers/GeometryManagerHelper.ts +170 -0
  186. package/src/business/implementation/managers/interaction/EventManager.ts +80 -0
  187. package/src/business/implementation/managers/interaction/InteractionManager.ts +268 -0
  188. package/src/business/implementation/managers/interaction/RestrictionManager.ts +135 -0
  189. package/src/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.ts +48 -0
  190. package/src/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.ts +149 -0
  191. package/src/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.ts +127 -0
  192. package/src/business/implementation/managers/interaction/helpers/InteractionManagerHelper.ts +411 -0
  193. package/src/business/implementation/managers/interaction/restrictions/AbstractRestriction.ts +99 -0
  194. package/src/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.ts +107 -0
  195. package/src/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.ts +237 -0
  196. package/src/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.ts +257 -0
  197. package/src/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.ts +384 -0
  198. package/src/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.ts +262 -0
  199. package/src/business/implementation/utils/numberCleaner.ts +5 -0
  200. package/src/business/interfaces/IDrawingToolsManager.ts +313 -0
  201. package/src/business/interfaces/IManager.ts +7 -0
  202. package/src/business/interfaces/IRestriction.ts +64 -0
  203. package/src/business/interfaces/IRestrictionBase.ts +33 -0
  204. package/src/business/interfaces/ISnapRestriction.ts +70 -0
  205. package/src/business/interfaces/events/EventResponseMapping.ts +19 -0
  206. package/src/business/interfaces/events/IDrawingToolsEvent.ts +16 -0
  207. package/src/index.ts +72 -0
  208. package/src/three/CSS2DRenderer.ts +212 -0
  209. package/tsconfig.json +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractionManager.js","sourceRoot":"","sources":["../../../../../src/business/implementation/managers/interaction/InteractionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { DrawingToolsManager } from '../../DrawingToolsManager';
2
+ import { IManager } from '../../../interfaces/IManager';
3
+ import { IRay } from '@shapediver/viewer.features.interaction';
4
+ import { IRestriction, RestrictionMetaData, RestrictionProperties } from '../../../interfaces/IRestriction';
5
+ import { vec3 } from 'gl-matrix';
6
+ export declare class RestrictionManager implements IManager {
7
+ #private;
8
+ constructor(drawingToolsManager: DrawingToolsManager);
9
+ get restrictions(): {
10
+ [token: string]: IRestriction;
11
+ };
12
+ get showRestrictionVisualization(): boolean;
13
+ set showRestrictionVisualization(value: boolean);
14
+ addRestriction(properties: RestrictionProperties, token?: string): string | undefined;
15
+ close(): void;
16
+ rayTrace(ray: IRay, metaData?: RestrictionMetaData): vec3 | undefined;
17
+ removeRestriction(token: string): void;
18
+ }
19
+ //# sourceMappingURL=RestrictionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestrictionManager.d.ts","sourceRoot":"","sources":["../../../../../src/business/implementation/managers/interaction/RestrictionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAC;AAC/D,OAAO,EACH,YAAY,EAEZ,mBAAmB,EACnB,qBAAqB,EACxB,MAAM,kCAAkC,CAAC;AAI1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,qBAAa,kBAAmB,YAAW,QAAQ;;gBAcnC,mBAAmB,EAAE,mBAAmB;IAapD,IAAW,YAAY,IAAI;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAE3D;IAED,IAAW,4BAA4B,IAAI,OAAO,CAEjD;IAED,IAAW,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAQrD;IAMM,cAAc,CAAC,UAAU,EAAE,qBAAqB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAmBrF,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS;IAqCrE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAShD"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _RestrictionManager_drawingToolsManager, _RestrictionManager_restrictions, _RestrictionManager_settings, _RestrictionManager_uuidGenerator, _RestrictionManager_showRestrictionVisualization;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RestrictionManager = void 0;
16
+ const AxisRestriction_1 = require("./restrictions/axis/AxisRestriction");
17
+ const GeometryRestriction_1 = require("./restrictions/geometry/GeometryRestriction");
18
+ const IRestriction_1 = require("../../../interfaces/IRestriction");
19
+ const PlaneRestriction_1 = require("./restrictions/plane/PlaneRestriction");
20
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
21
+ const gl_matrix_1 = require("gl-matrix");
22
+ class RestrictionManager {
23
+ // #endregion Properties (5)
24
+ // #region Constructors (1)
25
+ constructor(drawingToolsManager) {
26
+ // #region Properties (5)
27
+ _RestrictionManager_drawingToolsManager.set(this, void 0);
28
+ _RestrictionManager_restrictions.set(this, {});
29
+ _RestrictionManager_settings.set(this, void 0);
30
+ _RestrictionManager_uuidGenerator.set(this, viewer_shared_services_1.UuidGenerator.instance);
31
+ _RestrictionManager_showRestrictionVisualization.set(this, false);
32
+ __classPrivateFieldSet(this, _RestrictionManager_drawingToolsManager, drawingToolsManager, "f");
33
+ __classPrivateFieldSet(this, _RestrictionManager_settings, drawingToolsManager.settings, "f");
34
+ for (const restrictionToken in __classPrivateFieldGet(this, _RestrictionManager_settings, "f").restrictions) {
35
+ this.addRestriction(__classPrivateFieldGet(this, _RestrictionManager_settings, "f").restrictions[restrictionToken], restrictionToken);
36
+ }
37
+ }
38
+ // #endregion Constructors (1)
39
+ // #region Public Getters And Setters (3)
40
+ get restrictions() {
41
+ return __classPrivateFieldGet(this, _RestrictionManager_restrictions, "f");
42
+ }
43
+ get showRestrictionVisualization() {
44
+ return __classPrivateFieldGet(this, _RestrictionManager_showRestrictionVisualization, "f");
45
+ }
46
+ set showRestrictionVisualization(value) {
47
+ __classPrivateFieldSet(this, _RestrictionManager_showRestrictionVisualization, value, "f");
48
+ for (const restriction of Object.values(__classPrivateFieldGet(this, _RestrictionManager_restrictions, "f"))) {
49
+ restriction.showVisualization = value;
50
+ for (const snapRestriction of Object.values(restriction.snapRestrictions)) {
51
+ snapRestriction.showVisualization = value;
52
+ }
53
+ }
54
+ }
55
+ // #endregion Public Getters And Setters (3)
56
+ // #region Public Methods (4)
57
+ addRestriction(properties, token) {
58
+ token = token || __classPrivateFieldGet(this, _RestrictionManager_uuidGenerator, "f").create();
59
+ let restriction;
60
+ if (properties.type === IRestriction_1.RESTRICTION_TYPE.PLANE) {
61
+ restriction = new PlaneRestriction_1.PlaneRestriction(__classPrivateFieldGet(this, _RestrictionManager_drawingToolsManager, "f"), token, properties);
62
+ }
63
+ else if (properties.type === IRestriction_1.RESTRICTION_TYPE.GEOMETRY) {
64
+ restriction = new GeometryRestriction_1.GeometryRestriction(__classPrivateFieldGet(this, _RestrictionManager_drawingToolsManager, "f"), token, properties);
65
+ }
66
+ else if (properties.type === IRestriction_1.RESTRICTION_TYPE.AXIS) {
67
+ restriction = new AxisRestriction_1.AxisRestriction(__classPrivateFieldGet(this, _RestrictionManager_drawingToolsManager, "f"), token, properties);
68
+ }
69
+ if (restriction) {
70
+ __classPrivateFieldGet(this, _RestrictionManager_restrictions, "f")[token] = restriction;
71
+ return token;
72
+ }
73
+ return;
74
+ }
75
+ close() {
76
+ Object.keys(__classPrivateFieldGet(this, _RestrictionManager_restrictions, "f")).forEach(key => this.removeRestriction(key));
77
+ }
78
+ rayTrace(ray, metaData) {
79
+ let rayTracingResult = undefined;
80
+ // create an array of arrays with the restrictions sorted by priority
81
+ const restrictionsSorted = Object.values(__classPrivateFieldGet(this, _RestrictionManager_restrictions, "f")).sort((a, b) => (b.priority || 0) - (a.priority || 0));
82
+ for (const restriction of restrictionsSorted) {
83
+ if (rayTracingResult && rayTracingResult.restriction.priority > restriction.priority)
84
+ break;
85
+ const hit = restriction.rayTrace(ray, metaData);
86
+ if (!hit)
87
+ continue;
88
+ const distance = gl_matrix_1.vec3.squaredDistance(ray.origin, hit);
89
+ if (distance < (rayTracingResult ? rayTracingResult.distance : Infinity)) {
90
+ rayTracingResult = {
91
+ result: hit,
92
+ distance: distance,
93
+ restriction: restriction
94
+ };
95
+ }
96
+ }
97
+ // deactivate the visualization of all restrictions that are not hit
98
+ for (const restriction of Object.values(__classPrivateFieldGet(this, _RestrictionManager_restrictions, "f"))) {
99
+ if (rayTracingResult && restriction !== rayTracingResult.restriction) {
100
+ for (const snapRestriction of Object.values(restriction.snapRestrictions)) {
101
+ snapRestriction.active = false;
102
+ }
103
+ }
104
+ }
105
+ return rayTracingResult === null || rayTracingResult === void 0 ? void 0 : rayTracingResult.result;
106
+ }
107
+ removeRestriction(token) {
108
+ if (__classPrivateFieldGet(this, _RestrictionManager_restrictions, "f")[token]) {
109
+ Object.values(__classPrivateFieldGet(this, _RestrictionManager_restrictions, "f")[token].snapRestrictions).forEach(r => r.removeVisualization());
110
+ __classPrivateFieldGet(this, _RestrictionManager_restrictions, "f")[token].removeVisualization();
111
+ delete __classPrivateFieldGet(this, _RestrictionManager_restrictions, "f")[token];
112
+ }
113
+ }
114
+ }
115
+ exports.RestrictionManager = RestrictionManager;
116
+ _RestrictionManager_drawingToolsManager = new WeakMap(), _RestrictionManager_restrictions = new WeakMap(), _RestrictionManager_settings = new WeakMap(), _RestrictionManager_uuidGenerator = new WeakMap(), _RestrictionManager_showRestrictionVisualization = new WeakMap();
117
+ //# sourceMappingURL=RestrictionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestrictionManager.js","sourceRoot":"","sources":["../../../../../src/business/implementation/managers/interaction/RestrictionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { DrawingToolsManager } from '../../../DrawingToolsManager';
2
+ import { InteractionManager } from '../InteractionManager';
3
+ import { IRay } from '@shapediver/viewer.features.interaction';
4
+ export declare class DeletionInteractionHandler {
5
+ #private;
6
+ constructor(drawingToolsManager: DrawingToolsManager, interactionManager: InteractionManager);
7
+ deletePoint(ray: IRay): void;
8
+ deleteSelection(indices: number[]): void;
9
+ }
10
+ //# sourceMappingURL=DeletionInteractionHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeletionInteractionHandler.d.ts","sourceRoot":"","sources":["../../../../../../src/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAgB,MAAM,yCAAyC,CAAC;AAE7E,qBAAa,0BAA0B;;gBAavB,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB;IAUrF,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IAW5B,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;CAOlD"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _DeletionInteractionHandler_drawingToolsManager, _DeletionInteractionHandler_eventEngine, _DeletionInteractionHandler_geometryMathManager, _DeletionInteractionHandler_viewport;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.DeletionInteractionHandler = void 0;
16
+ const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
17
+ class DeletionInteractionHandler {
18
+ // #endregion Properties (4)
19
+ // #region Constructors (1)
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
+ constructor(drawingToolsManager, interactionManager) {
22
+ // #region Properties (4)
23
+ _DeletionInteractionHandler_drawingToolsManager.set(this, void 0);
24
+ _DeletionInteractionHandler_eventEngine.set(this, viewer_shared_services_1.EventEngine.instance);
25
+ _DeletionInteractionHandler_geometryMathManager.set(this, void 0);
26
+ _DeletionInteractionHandler_viewport.set(this, void 0);
27
+ __classPrivateFieldSet(this, _DeletionInteractionHandler_drawingToolsManager, drawingToolsManager, "f");
28
+ __classPrivateFieldSet(this, _DeletionInteractionHandler_viewport, drawingToolsManager.viewport, "f");
29
+ __classPrivateFieldSet(this, _DeletionInteractionHandler_geometryMathManager, drawingToolsManager.geometryMathManager, "f");
30
+ }
31
+ // #endregion Constructors (1)
32
+ // #region Public Methods (2)
33
+ deletePoint(ray) {
34
+ // check if there is a point close to the ray
35
+ const distances = __classPrivateFieldGet(this, _DeletionInteractionHandler_geometryMathManager, "f").checkPointDistances(ray);
36
+ if (distances) {
37
+ // add the id if it is not already in the array
38
+ // remove it if it is in the array
39
+ __classPrivateFieldGet(this, _DeletionInteractionHandler_drawingToolsManager, "f").removePoint(distances[0].index);
40
+ __classPrivateFieldGet(this, _DeletionInteractionHandler_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE_DRAWING_TOOLS.REMOVED, { viewportId: __classPrivateFieldGet(this, _DeletionInteractionHandler_viewport, "f").id, drawingToolsId: __classPrivateFieldGet(this, _DeletionInteractionHandler_drawingToolsManager, "f").uuid });
41
+ }
42
+ }
43
+ deleteSelection(indices) {
44
+ if (indices.length === 0)
45
+ return;
46
+ __classPrivateFieldGet(this, _DeletionInteractionHandler_drawingToolsManager, "f").removePoints(indices);
47
+ __classPrivateFieldGet(this, _DeletionInteractionHandler_eventEngine, "f").emitEvent(viewer_shared_services_1.EVENTTYPE_DRAWING_TOOLS.REMOVED, { viewportId: __classPrivateFieldGet(this, _DeletionInteractionHandler_viewport, "f").id, drawingToolsId: __classPrivateFieldGet(this, _DeletionInteractionHandler_drawingToolsManager, "f").uuid });
48
+ }
49
+ }
50
+ exports.DeletionInteractionHandler = DeletionInteractionHandler;
51
+ _DeletionInteractionHandler_drawingToolsManager = new WeakMap(), _DeletionInteractionHandler_eventEngine = new WeakMap(), _DeletionInteractionHandler_geometryMathManager = new WeakMap(), _DeletionInteractionHandler_viewport = new WeakMap();
52
+ //# sourceMappingURL=DeletionInteractionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeletionInteractionHandler.js","sourceRoot":"","sources":["../../../../../../src/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+EAA0F;AAK1F,MAAa,0BAA0B;IAQnC,4BAA4B;IAE5B,2BAA2B;IAE3B,6DAA6D;IAC7D,YAAY,mBAAwC,EAAE,kBAAsC;QAZ5F,yBAAyB;QAEzB,kEAAmD;QACnD,kDAAwB,oCAAW,CAAC,QAAQ,EAAC;QAC7C,kEAAmD;QACnD,uDAAiC;QAQ7B,uBAAA,IAAI,mDAAwB,mBAAmB,MAAA,CAAC;QAChD,uBAAA,IAAI,wCAAa,mBAAmB,CAAC,QAAQ,MAAA,CAAC;QAC9C,uBAAA,IAAI,mDAAwB,mBAAmB,CAAC,mBAAmB,MAAA,CAAC;IACxE,CAAC;IAED,8BAA8B;IAE9B,6BAA6B;IAEtB,WAAW,CAAC,GAAS;QACxB,6CAA6C;QAC7C,MAAM,SAAS,GAAG,uBAAA,IAAI,uDAAqB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,SAAS,EAAE;YACX,+CAA+C;YAC/C,kCAAkC;YAClC,uBAAA,IAAI,uDAAqB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1D,uBAAA,IAAI,+CAAa,CAAC,SAAS,CAAC,gDAAuB,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,uBAAA,IAAI,4CAAU,CAAC,EAAE,EAAE,cAAc,EAAE,uBAAA,IAAI,uDAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;SACnJ;IACL,CAAC;IAEM,eAAe,CAAC,OAAiB;QACpC,IAAG,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChC,uBAAA,IAAI,uDAAqB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,uBAAA,IAAI,+CAAa,CAAC,SAAS,CAAC,gDAAuB,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,uBAAA,IAAI,4CAAU,CAAC,EAAE,EAAE,cAAc,EAAE,uBAAA,IAAI,uDAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;IACpJ,CAAC;CAGJ;AAzCD,gEAyCC"}
@@ -0,0 +1,14 @@
1
+ import { DrawingToolsManager } from '../../../DrawingToolsManager';
2
+ import { InteractionManager } from '../InteractionManager';
3
+ import { IRay } from '@shapediver/viewer.features.interaction';
4
+ export declare class InsertionInteractionHandler {
5
+ #private;
6
+ constructor(drawingToolsManager: DrawingToolsManager, interactionManager: InteractionManager);
7
+ get alreadyInserted(): boolean;
8
+ get insertionActive(): boolean;
9
+ finalizeInsertion(): boolean;
10
+ onMove(ray: IRay): void;
11
+ startInsertion(event: PointerEvent): void;
12
+ stopInsertion(): void;
13
+ }
14
+ //# sourceMappingURL=InsertionInteractionHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertionInteractionHandler.d.ts","sourceRoot":"","sources":["../../../../../../src/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAgB,MAAM,yCAAyC,CAAC;AAI7E,qBAAa,2BAA2B;;gBAkBxB,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB;IAc5F,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,IAAW,eAAe,IAAI,OAAO,CAEpC;IAMM,iBAAiB,IAAI,OAAO;IAkC5B,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IAkCvB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAiBzC,aAAa,IAAI,IAAI;CAW/B"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _InsertionInteractionHandler_drawingToolsManager, _InsertionInteractionHandler_geometryMathManager, _InsertionInteractionHandler_geometryState, _InsertionInteractionHandler_restrictionManager, _InsertionInteractionHandler_settings, _InsertionInteractionHandler_viewport, _InsertionInteractionHandler_alreadyInserted, _InsertionInteractionHandler_insertionActive, _InsertionInteractionHandler_insertionActiveIndex;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.InsertionInteractionHandler = void 0;
16
+ const IDrawingToolsManager_1 = require("../../../../interfaces/IDrawingToolsManager");
17
+ class InsertionInteractionHandler {
18
+ // #endregion Properties (11)
19
+ // #region Constructors (1)
20
+ constructor(drawingToolsManager, interactionManager) {
21
+ // #region Properties (11)
22
+ _InsertionInteractionHandler_drawingToolsManager.set(this, void 0);
23
+ _InsertionInteractionHandler_geometryMathManager.set(this, void 0);
24
+ _InsertionInteractionHandler_geometryState.set(this, void 0);
25
+ _InsertionInteractionHandler_restrictionManager.set(this, void 0);
26
+ _InsertionInteractionHandler_settings.set(this, void 0);
27
+ _InsertionInteractionHandler_viewport.set(this, void 0);
28
+ _InsertionInteractionHandler_alreadyInserted.set(this, false);
29
+ _InsertionInteractionHandler_insertionActive.set(this, false);
30
+ _InsertionInteractionHandler_insertionActiveIndex.set(this, -1);
31
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_drawingToolsManager, drawingToolsManager, "f");
32
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_settings, drawingToolsManager.settings, "f");
33
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_viewport, drawingToolsManager.viewport, "f");
34
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_geometryMathManager, drawingToolsManager.geometryMathManager, "f");
35
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_restrictionManager, interactionManager.restrictionManager, "f");
36
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_geometryState, drawingToolsManager.geometryState, "f");
37
+ }
38
+ // #endregion Constructors (1)
39
+ // #region Public Getters And Setters (2)
40
+ get alreadyInserted() {
41
+ return __classPrivateFieldGet(this, _InsertionInteractionHandler_alreadyInserted, "f");
42
+ }
43
+ get insertionActive() {
44
+ return __classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActive, "f");
45
+ }
46
+ // #endregion Public Getters And Setters (2)
47
+ // #region Public Methods (4)
48
+ finalizeInsertion() {
49
+ let result = false;
50
+ if (__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActive, "f") === true && __classPrivateFieldGet(this, _InsertionInteractionHandler_alreadyInserted, "f") === true) {
51
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").makePointPersistent(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"));
52
+ const canBeClosed = __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").getPointCount() > 3 && __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").checkNumberOfPoints(__classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").getPointCount() - 1);
53
+ const shouldBeClosed = __classPrivateFieldGet(this, _InsertionInteractionHandler_settings, "f").geometry.close === true && __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").closeLoop === false && __classPrivateFieldGet(this, _InsertionInteractionHandler_settings, "f").geometry.autoClose === false;
54
+ // if there are more than 2 points and the geometry can be closed, check if the last point is close to the first point
55
+ if (canBeClosed && shouldBeClosed) {
56
+ // if restricted point is close to the first point, remove the current insertion point and draw a line to the first point
57
+ const firstPoint = __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").getPosition(0);
58
+ const lastPoint = __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").getPosition(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"));
59
+ if (__classPrivateFieldGet(this, _InsertionInteractionHandler_geometryMathManager, "f").screenSpaceDistanceCheck(firstPoint, lastPoint, __classPrivateFieldGet(this, _InsertionInteractionHandler_settings, "f").visualization.points.size_0 * __classPrivateFieldGet(this, _InsertionInteractionHandler_settings, "f").visualization.distanceMultiplicationFactor).check === true) {
60
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").closeLoop = true;
61
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").removePoint(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"));
62
+ result = true;
63
+ }
64
+ else {
65
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").updateMaterialIndex(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), IDrawingToolsManager_1.MATERIAL_INDEX.DEFAULT);
66
+ }
67
+ }
68
+ else {
69
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").updateMaterialIndex(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), IDrawingToolsManager_1.MATERIAL_INDEX.DEFAULT);
70
+ }
71
+ }
72
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_insertionActive, false, "f");
73
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_alreadyInserted, false, "f");
74
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_insertionActiveIndex, -1, "f");
75
+ return result;
76
+ }
77
+ onMove(ray) {
78
+ if (__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActive, "f") === false)
79
+ return;
80
+ if (__classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").getPointCount() > 0 && __classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActive, "f") === true) {
81
+ const restrictedPoint = __classPrivateFieldGet(this, _InsertionInteractionHandler_restrictionManager, "f").rayTrace(ray, { index: __classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f") });
82
+ if (restrictedPoint) {
83
+ const canBeClosed = __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").getPointCount() > 3 && __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").checkNumberOfPoints(__classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").getPointCount() - 1);
84
+ const shouldBeClosed = __classPrivateFieldGet(this, _InsertionInteractionHandler_settings, "f").geometry.close === true && __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").closeLoop === false && __classPrivateFieldGet(this, _InsertionInteractionHandler_settings, "f").geometry.autoClose === false;
85
+ // if there are more than 2 points and the geometry can be closed, check if the last point is close to the first point
86
+ if (canBeClosed && shouldBeClosed) {
87
+ // if restricted point is close to the first point, remove the current insertion point and draw a line to the first point
88
+ const firstPoint = __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").getPosition(0);
89
+ const lastPoint = restrictedPoint;
90
+ if (lastPoint && __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryMathManager, "f").screenSpaceDistanceCheck(firstPoint, lastPoint, __classPrivateFieldGet(this, _InsertionInteractionHandler_settings, "f").visualization.points.size_0 * __classPrivateFieldGet(this, _InsertionInteractionHandler_settings, "f").visualization.distanceMultiplicationFactor).check === true) {
91
+ // close the geometry
92
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").updateMaterialIndex(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), IDrawingToolsManager_1.MATERIAL_INDEX.SELECTED_HOVERED);
93
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").movePointTemporary(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), firstPoint);
94
+ }
95
+ else {
96
+ // not close enough to close the geometry
97
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").updateMaterialIndex(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), IDrawingToolsManager_1.MATERIAL_INDEX.INSERTION_HOVERED);
98
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").movePointTemporary(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), restrictedPoint);
99
+ }
100
+ }
101
+ else {
102
+ // not enough points to close the geometry or auto close is enabled
103
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").updateMaterialIndex(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), IDrawingToolsManager_1.MATERIAL_INDEX.INSERTION_HOVERED);
104
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").movePointTemporary(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), restrictedPoint);
105
+ }
106
+ }
107
+ }
108
+ }
109
+ startInsertion(event) {
110
+ if (__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActive, "f") === false) {
111
+ // get current ray
112
+ const ray = __classPrivateFieldGet(this, _InsertionInteractionHandler_viewport, "f").pointerEventToRay(event);
113
+ // add a point at the ray intersection
114
+ const restrictedPoint = __classPrivateFieldGet(this, _InsertionInteractionHandler_restrictionManager, "f").rayTrace(ray);
115
+ // add at last position
116
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_insertionActiveIndex, __classPrivateFieldGet(this, _InsertionInteractionHandler_geometryState, "f").getPointCount(), "f");
117
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").addPointTemporary(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), restrictedPoint);
118
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").updateMaterialIndex(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"), IDrawingToolsManager_1.MATERIAL_INDEX.INSERTION_HOVERED);
119
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_insertionActive, true, "f");
120
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_alreadyInserted, true, "f");
121
+ }
122
+ }
123
+ stopInsertion() {
124
+ if (__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActive, "f") === true) {
125
+ // remove last added point
126
+ __classPrivateFieldGet(this, _InsertionInteractionHandler_drawingToolsManager, "f").removePointTemporary(__classPrivateFieldGet(this, _InsertionInteractionHandler_insertionActiveIndex, "f"));
127
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_insertionActive, false, "f");
128
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_alreadyInserted, false, "f");
129
+ __classPrivateFieldSet(this, _InsertionInteractionHandler_insertionActiveIndex, -1, "f");
130
+ }
131
+ }
132
+ }
133
+ exports.InsertionInteractionHandler = InsertionInteractionHandler;
134
+ _InsertionInteractionHandler_drawingToolsManager = new WeakMap(), _InsertionInteractionHandler_geometryMathManager = new WeakMap(), _InsertionInteractionHandler_geometryState = new WeakMap(), _InsertionInteractionHandler_restrictionManager = new WeakMap(), _InsertionInteractionHandler_settings = new WeakMap(), _InsertionInteractionHandler_viewport = new WeakMap(), _InsertionInteractionHandler_alreadyInserted = new WeakMap(), _InsertionInteractionHandler_insertionActive = new WeakMap(), _InsertionInteractionHandler_insertionActiveIndex = new WeakMap();
135
+ //# sourceMappingURL=InsertionInteractionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertionInteractionHandler.js","sourceRoot":"","sources":["../../../../../../src/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { DrawingToolsManager } from '../../../DrawingToolsManager';
2
+ import { InteractionManager } from '../InteractionManager';
3
+ import { IRay } from '@shapediver/viewer.features.interaction';
4
+ export declare class MidPointInteractionHandler {
5
+ #private;
6
+ constructor(drawingToolsManager: DrawingToolsManager, interactionManager: InteractionManager);
7
+ get midPointInsertionActive(): boolean;
8
+ get midPointInsertionIndex(): number;
9
+ finishMidPointInsertion(distances: {
10
+ index: number;
11
+ distance: number;
12
+ }[] | undefined): void;
13
+ onMove(ray: IRay, hoveredPoint?: number): void;
14
+ stopMidPointInsertion(): void;
15
+ }
16
+ //# sourceMappingURL=MidPointInteractionHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MidPointInteractionHandler.d.ts","sourceRoot":"","sources":["../../../../../../src/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAC;AAI/D,qBAAa,0BAA0B;;gBAevB,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB;IAW5F,IAAW,uBAAuB,IAAI,OAAO,CAE5C;IAED,IAAW,sBAAsB,IAAI,MAAM,CAE1C;IAMM,uBAAuB,CAAC,SAAS,EAAE;QACtC,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KACpB,EAAE,GAAG,SAAS,GAAG,IAAI;IAaf,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAsD9C,qBAAqB,IAAI,IAAI;CAUvC"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _MidPointInteractionHandler_drawingToolsManager, _MidPointInteractionHandler_geometryMathManager, _MidPointInteractionHandler_geometryState, _MidPointInteractionHandler_midPointInsertionActive, _MidPointInteractionHandler_midPointInsertionIndex;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MidPointInteractionHandler = void 0;
16
+ const IDrawingToolsManager_1 = require("../../../../interfaces/IDrawingToolsManager");
17
+ const gl_matrix_1 = require("gl-matrix");
18
+ class MidPointInteractionHandler {
19
+ // #endregion Properties (5)
20
+ // #region Constructors (1)
21
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
22
+ constructor(drawingToolsManager, interactionManager) {
23
+ // #region Properties (5)
24
+ _MidPointInteractionHandler_drawingToolsManager.set(this, void 0);
25
+ _MidPointInteractionHandler_geometryMathManager.set(this, void 0);
26
+ _MidPointInteractionHandler_geometryState.set(this, void 0);
27
+ _MidPointInteractionHandler_midPointInsertionActive.set(this, false);
28
+ _MidPointInteractionHandler_midPointInsertionIndex.set(this, -1);
29
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_drawingToolsManager, drawingToolsManager, "f");
30
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_geometryState, drawingToolsManager.geometryState, "f");
31
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_geometryMathManager, drawingToolsManager.geometryMathManager, "f");
32
+ }
33
+ // #endregion Constructors (1)
34
+ // #region Public Getters And Setters (2)
35
+ get midPointInsertionActive() {
36
+ return __classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionActive, "f");
37
+ }
38
+ get midPointInsertionIndex() {
39
+ return __classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f");
40
+ }
41
+ // #endregion Public Getters And Setters (2)
42
+ // #region Public Methods (3)
43
+ finishMidPointInsertion(distances) {
44
+ if (__classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionActive, "f") === true) {
45
+ if (distances) {
46
+ // finish mid point insertion if it is the current index
47
+ if (distances[0].index === __classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f")) {
48
+ __classPrivateFieldGet(this, _MidPointInteractionHandler_geometryState, "f").makePointPersistent(__classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f"), false);
49
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_midPointInsertionActive, false, "f");
50
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_midPointInsertionIndex, -1, "f");
51
+ }
52
+ }
53
+ }
54
+ }
55
+ onMove(ray, hoveredPoint) {
56
+ if (__classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionActive, "f") === true && hoveredPoint === __classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f")) {
57
+ // we are just waiting for a mouse click to finish the mid point insertion
58
+ }
59
+ else if (hoveredPoint === undefined && __classPrivateFieldGet(this, _MidPointInteractionHandler_geometryState, "f").canAddPoint()) {
60
+ // check if there is a line close to the ray and add a mid point to it
61
+ const lineDistances = __classPrivateFieldGet(this, _MidPointInteractionHandler_geometryMathManager, "f").checkLineDistances(ray);
62
+ if (lineDistances) {
63
+ let firstIndex = lineDistances[0].index[0];
64
+ let secondIndex = lineDistances[0].index[1];
65
+ if (__classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionActive, "f") === true && firstIndex !== __classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f") && secondIndex !== __classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f")) {
66
+ // remove last added point
67
+ __classPrivateFieldGet(this, _MidPointInteractionHandler_drawingToolsManager, "f").removePointTemporary(__classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f"));
68
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_midPointInsertionActive, false, "f");
69
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_midPointInsertionIndex, -1, "f");
70
+ // move indices one back if they are after the removal index
71
+ if (firstIndex > __classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f")) {
72
+ firstIndex--;
73
+ if (firstIndex < 0)
74
+ firstIndex = __classPrivateFieldGet(this, _MidPointInteractionHandler_geometryState, "f").getPointCount() - 1;
75
+ }
76
+ // move indices one back if they are after the removal index
77
+ if (secondIndex > __classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f") || secondIndex === 0) {
78
+ secondIndex--;
79
+ if (secondIndex < 0)
80
+ secondIndex = __classPrivateFieldGet(this, _MidPointInteractionHandler_geometryState, "f").getPointCount() - 1;
81
+ }
82
+ }
83
+ if (__classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionActive, "f") === false) {
84
+ const firstPoint = __classPrivateFieldGet(this, _MidPointInteractionHandler_geometryState, "f").getPosition(firstIndex);
85
+ const secondPoint = __classPrivateFieldGet(this, _MidPointInteractionHandler_geometryState, "f").getPosition(secondIndex);
86
+ const midPoint = gl_matrix_1.vec3.add(gl_matrix_1.vec3.create(), firstPoint, secondPoint);
87
+ gl_matrix_1.vec3.scale(midPoint, midPoint, 0.5);
88
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_midPointInsertionIndex, secondIndex, "f");
89
+ __classPrivateFieldGet(this, _MidPointInteractionHandler_drawingToolsManager, "f").addPointTemporary(secondIndex, midPoint);
90
+ __classPrivateFieldGet(this, _MidPointInteractionHandler_drawingToolsManager, "f").updateMaterialIndex(secondIndex, IDrawingToolsManager_1.MATERIAL_INDEX.INSERTION);
91
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_midPointInsertionActive, true, "f");
92
+ }
93
+ }
94
+ else {
95
+ this.stopMidPointInsertion();
96
+ }
97
+ }
98
+ else {
99
+ this.stopMidPointInsertion();
100
+ }
101
+ }
102
+ stopMidPointInsertion() {
103
+ if (__classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionActive, "f") === true) {
104
+ // remove last added point
105
+ __classPrivateFieldGet(this, _MidPointInteractionHandler_drawingToolsManager, "f").removePointTemporary(__classPrivateFieldGet(this, _MidPointInteractionHandler_midPointInsertionIndex, "f"));
106
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_midPointInsertionActive, false, "f");
107
+ __classPrivateFieldSet(this, _MidPointInteractionHandler_midPointInsertionIndex, -1, "f");
108
+ }
109
+ }
110
+ }
111
+ exports.MidPointInteractionHandler = MidPointInteractionHandler;
112
+ _MidPointInteractionHandler_drawingToolsManager = new WeakMap(), _MidPointInteractionHandler_geometryMathManager = new WeakMap(), _MidPointInteractionHandler_geometryState = new WeakMap(), _MidPointInteractionHandler_midPointInsertionActive = new WeakMap(), _MidPointInteractionHandler_midPointInsertionIndex = new WeakMap();
113
+ //# sourceMappingURL=MidPointInteractionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MidPointInteractionHandler.js","sourceRoot":"","sources":["../../../../../../src/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.ts"],"names":[],"mappings":"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"}