@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.
- package/LICENSE +73 -0
- package/README.md +161 -0
- package/dist/api/implementation/DrawingToolsApi.d.ts +31 -0
- package/dist/api/implementation/DrawingToolsApi.d.ts.map +1 -0
- package/dist/api/implementation/DrawingToolsApi.js +111 -0
- package/dist/api/implementation/DrawingToolsApi.js.map +1 -0
- package/dist/api/implementation/restrictions/AbstractRestrictionApi.d.ts +10 -0
- package/dist/api/implementation/restrictions/AbstractRestrictionApi.d.ts.map +1 -0
- package/dist/api/implementation/restrictions/AbstractRestrictionApi.js +38 -0
- package/dist/api/implementation/restrictions/AbstractRestrictionApi.js.map +1 -0
- package/dist/api/implementation/restrictions/AbstractSnapRestrictionApi.d.ts +11 -0
- package/dist/api/implementation/restrictions/AbstractSnapRestrictionApi.d.ts.map +1 -0
- package/dist/api/implementation/restrictions/AbstractSnapRestrictionApi.js +40 -0
- package/dist/api/implementation/restrictions/AbstractSnapRestrictionApi.js.map +1 -0
- package/dist/api/implementation/restrictions/axis/AxisRestrictionApi.d.ts +7 -0
- package/dist/api/implementation/restrictions/axis/AxisRestrictionApi.d.ts.map +1 -0
- package/dist/api/implementation/restrictions/axis/AxisRestrictionApi.js +24 -0
- package/dist/api/implementation/restrictions/axis/AxisRestrictionApi.js.map +1 -0
- package/dist/api/implementation/restrictions/geometry/GeometryRestrictionApi.d.ts +15 -0
- package/dist/api/implementation/restrictions/geometry/GeometryRestrictionApi.d.ts.map +1 -0
- package/dist/api/implementation/restrictions/geometry/GeometryRestrictionApi.js +54 -0
- package/dist/api/implementation/restrictions/geometry/GeometryRestrictionApi.js.map +1 -0
- package/dist/api/implementation/restrictions/plane/PlaneRestrictionApi.d.ts +18 -0
- package/dist/api/implementation/restrictions/plane/PlaneRestrictionApi.d.ts.map +1 -0
- package/dist/api/implementation/restrictions/plane/PlaneRestrictionApi.js +61 -0
- package/dist/api/implementation/restrictions/plane/PlaneRestrictionApi.js.map +1 -0
- package/dist/api/implementation/restrictions/plane/snap/AngularRestrictionApi.d.ts +10 -0
- package/dist/api/implementation/restrictions/plane/snap/AngularRestrictionApi.d.ts.map +1 -0
- package/dist/api/implementation/restrictions/plane/snap/AngularRestrictionApi.js +40 -0
- package/dist/api/implementation/restrictions/plane/snap/AngularRestrictionApi.js.map +1 -0
- package/dist/api/implementation/restrictions/plane/snap/GridRestrictionApi.d.ts +10 -0
- package/dist/api/implementation/restrictions/plane/snap/GridRestrictionApi.d.ts.map +1 -0
- package/dist/api/implementation/restrictions/plane/snap/GridRestrictionApi.js +40 -0
- package/dist/api/implementation/restrictions/plane/snap/GridRestrictionApi.js.map +1 -0
- package/dist/api/interfaces/IDrawingToolsApi.d.ts +89 -0
- package/dist/api/interfaces/IDrawingToolsApi.d.ts.map +1 -0
- package/dist/api/interfaces/IDrawingToolsApi.js +3 -0
- package/dist/api/interfaces/IDrawingToolsApi.js.map +1 -0
- package/dist/api/interfaces/IRestrictionApi.d.ts +11 -0
- package/dist/api/interfaces/IRestrictionApi.d.ts.map +1 -0
- package/dist/api/interfaces/IRestrictionApi.js +3 -0
- package/dist/api/interfaces/IRestrictionApi.js.map +1 -0
- package/dist/api/interfaces/ISnapRestrictionApi.d.ts +13 -0
- package/dist/api/interfaces/ISnapRestrictionApi.d.ts.map +1 -0
- package/dist/api/interfaces/ISnapRestrictionApi.js +3 -0
- package/dist/api/interfaces/ISnapRestrictionApi.js.map +1 -0
- package/dist/business/implementation/DrawingToolsManager.d.ts +95 -0
- package/dist/business/implementation/DrawingToolsManager.d.ts.map +1 -0
- package/dist/business/implementation/DrawingToolsManager.js +544 -0
- package/dist/business/implementation/DrawingToolsManager.js.map +1 -0
- package/dist/business/implementation/managers/HistoryManager.d.ts +19 -0
- package/dist/business/implementation/managers/HistoryManager.d.ts.map +1 -0
- package/dist/business/implementation/managers/HistoryManager.js +89 -0
- package/dist/business/implementation/managers/HistoryManager.js.map +1 -0
- package/dist/business/implementation/managers/TextVisualizationManager.d.ts +14 -0
- package/dist/business/implementation/managers/TextVisualizationManager.d.ts.map +1 -0
- package/dist/business/implementation/managers/TextVisualizationManager.js +228 -0
- package/dist/business/implementation/managers/TextVisualizationManager.js.map +1 -0
- package/dist/business/implementation/managers/geometry/GeometryManager.d.ts +23 -0
- package/dist/business/implementation/managers/geometry/GeometryManager.d.ts.map +1 -0
- package/dist/business/implementation/managers/geometry/GeometryManager.js +82 -0
- package/dist/business/implementation/managers/geometry/GeometryManager.js.map +1 -0
- package/dist/business/implementation/managers/geometry/GeometryMathManager.d.ts +73 -0
- package/dist/business/implementation/managers/geometry/GeometryMathManager.d.ts.map +1 -0
- package/dist/business/implementation/managers/geometry/GeometryMathManager.js +230 -0
- package/dist/business/implementation/managers/geometry/GeometryMathManager.js.map +1 -0
- package/dist/business/implementation/managers/geometry/GeometryState.d.ts +46 -0
- package/dist/business/implementation/managers/geometry/GeometryState.d.ts.map +1 -0
- package/dist/business/implementation/managers/geometry/GeometryState.js +323 -0
- package/dist/business/implementation/managers/geometry/GeometryState.js.map +1 -0
- package/dist/business/implementation/managers/geometry/helpers/GeometryManagerHelper.d.ts +16 -0
- package/dist/business/implementation/managers/geometry/helpers/GeometryManagerHelper.d.ts.map +1 -0
- package/dist/business/implementation/managers/geometry/helpers/GeometryManagerHelper.js +157 -0
- package/dist/business/implementation/managers/geometry/helpers/GeometryManagerHelper.js.map +1 -0
- package/dist/business/implementation/managers/interaction/EventManager.d.ts +26 -0
- package/dist/business/implementation/managers/interaction/EventManager.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/EventManager.js +63 -0
- package/dist/business/implementation/managers/interaction/EventManager.js.map +1 -0
- package/dist/business/implementation/managers/interaction/InteractionManager.d.ts +39 -0
- package/dist/business/implementation/managers/interaction/InteractionManager.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/InteractionManager.js +237 -0
- package/dist/business/implementation/managers/interaction/InteractionManager.js.map +1 -0
- package/dist/business/implementation/managers/interaction/RestrictionManager.d.ts +19 -0
- package/dist/business/implementation/managers/interaction/RestrictionManager.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/RestrictionManager.js +117 -0
- package/dist/business/implementation/managers/interaction/RestrictionManager.js.map +1 -0
- package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.d.ts +10 -0
- package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.js +52 -0
- package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.js.map +1 -0
- package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.d.ts +14 -0
- package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.js +135 -0
- package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.js.map +1 -0
- package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.d.ts +16 -0
- package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.js +113 -0
- package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.js.map +1 -0
- package/dist/business/implementation/managers/interaction/helpers/InteractionManagerHelper.d.ts +58 -0
- package/dist/business/implementation/managers/interaction/helpers/InteractionManagerHelper.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/helpers/InteractionManagerHelper.js +377 -0
- package/dist/business/implementation/managers/interaction/helpers/InteractionManagerHelper.js.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/AbstractRestriction.d.ts +19 -0
- package/dist/business/implementation/managers/interaction/restrictions/AbstractRestriction.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/AbstractRestriction.js +105 -0
- package/dist/business/implementation/managers/interaction/restrictions/AbstractRestriction.js.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.d.ts +22 -0
- package/dist/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.js +96 -0
- package/dist/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.js.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.d.ts +39 -0
- package/dist/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.js +215 -0
- package/dist/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.js.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.d.ts +58 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.js +180 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.js.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.d.ts +38 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.js +308 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.js.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.d.ts +37 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.d.ts.map +1 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.js +228 -0
- package/dist/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.js.map +1 -0
- package/dist/business/implementation/utils/numberCleaner.d.ts +2 -0
- package/dist/business/implementation/utils/numberCleaner.d.ts.map +1 -0
- package/dist/business/implementation/utils/numberCleaner.js +9 -0
- package/dist/business/implementation/utils/numberCleaner.js.map +1 -0
- package/dist/business/interfaces/IDrawingToolsManager.d.ts +270 -0
- package/dist/business/interfaces/IDrawingToolsManager.d.ts.map +1 -0
- package/dist/business/interfaces/IDrawingToolsManager.js +16 -0
- package/dist/business/interfaces/IDrawingToolsManager.js.map +1 -0
- package/dist/business/interfaces/IManager.d.ts +4 -0
- package/dist/business/interfaces/IManager.d.ts.map +1 -0
- package/dist/business/interfaces/IManager.js +3 -0
- package/dist/business/interfaces/IManager.js.map +1 -0
- package/dist/business/interfaces/IRestriction.d.ts +41 -0
- package/dist/business/interfaces/IRestriction.d.ts.map +1 -0
- package/dist/business/interfaces/IRestriction.js +13 -0
- package/dist/business/interfaces/IRestriction.js.map +1 -0
- package/dist/business/interfaces/IRestrictionBase.d.ts +19 -0
- package/dist/business/interfaces/IRestrictionBase.d.ts.map +1 -0
- package/dist/business/interfaces/IRestrictionBase.js +5 -0
- package/dist/business/interfaces/IRestrictionBase.js.map +1 -0
- package/dist/business/interfaces/ISnapRestriction.d.ts +50 -0
- package/dist/business/interfaces/ISnapRestriction.d.ts.map +1 -0
- package/dist/business/interfaces/ISnapRestriction.js +4 -0
- package/dist/business/interfaces/ISnapRestriction.js.map +1 -0
- package/dist/business/interfaces/events/EventResponseMapping.d.ts +19 -0
- package/dist/business/interfaces/events/EventResponseMapping.d.ts.map +1 -0
- package/dist/business/interfaces/events/EventResponseMapping.js +4 -0
- package/dist/business/interfaces/events/EventResponseMapping.js.map +1 -0
- package/dist/business/interfaces/events/IDrawingToolsEvent.d.ts +12 -0
- package/dist/business/interfaces/events/IDrawingToolsEvent.d.ts.map +1 -0
- package/dist/business/interfaces/events/IDrawingToolsEvent.js +3 -0
- package/dist/business/interfaces/events/IDrawingToolsEvent.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/three/CSS2DRenderer.d.ts +32 -0
- package/dist/three/CSS2DRenderer.d.ts.map +1 -0
- package/dist/three/CSS2DRenderer.js +137 -0
- package/dist/three/CSS2DRenderer.js.map +1 -0
- package/package.json +55 -0
- package/src/api/implementation/DrawingToolsApi.ts +135 -0
- package/src/api/implementation/restrictions/AbstractRestrictionApi.ts +34 -0
- package/src/api/implementation/restrictions/AbstractSnapRestrictionApi.ts +36 -0
- package/src/api/implementation/restrictions/axis/AxisRestrictionApi.ts +19 -0
- package/src/api/implementation/restrictions/geometry/GeometryRestrictionApi.ts +56 -0
- package/src/api/implementation/restrictions/plane/PlaneRestrictionApi.ts +63 -0
- package/src/api/implementation/restrictions/plane/snap/AngularRestrictionApi.ts +35 -0
- package/src/api/implementation/restrictions/plane/snap/GridRestrictionApi.ts +35 -0
- package/src/api/interfaces/IDrawingToolsApi.ts +99 -0
- package/src/api/interfaces/IRestrictionApi.ts +15 -0
- package/src/api/interfaces/ISnapRestrictionApi.ts +18 -0
- package/src/business/implementation/DrawingToolsManager.ts +619 -0
- package/src/business/implementation/managers/HistoryManager.ts +101 -0
- package/src/business/implementation/managers/TextVisualizationManager.ts +245 -0
- package/src/business/implementation/managers/geometry/GeometryManager.ts +95 -0
- package/src/business/implementation/managers/geometry/GeometryMathManager.ts +273 -0
- package/src/business/implementation/managers/geometry/GeometryState.ts +436 -0
- package/src/business/implementation/managers/geometry/helpers/GeometryManagerHelper.ts +170 -0
- package/src/business/implementation/managers/interaction/EventManager.ts +80 -0
- package/src/business/implementation/managers/interaction/InteractionManager.ts +268 -0
- package/src/business/implementation/managers/interaction/RestrictionManager.ts +135 -0
- package/src/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.ts +48 -0
- package/src/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.ts +149 -0
- package/src/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.ts +127 -0
- package/src/business/implementation/managers/interaction/helpers/InteractionManagerHelper.ts +411 -0
- package/src/business/implementation/managers/interaction/restrictions/AbstractRestriction.ts +99 -0
- package/src/business/implementation/managers/interaction/restrictions/axis/AxisRestriction.ts +107 -0
- package/src/business/implementation/managers/interaction/restrictions/geometry/GeometryRestriction.ts +237 -0
- package/src/business/implementation/managers/interaction/restrictions/plane/PlaneRestriction.ts +257 -0
- package/src/business/implementation/managers/interaction/restrictions/plane/snap/AngularRestriction.ts +384 -0
- package/src/business/implementation/managers/interaction/restrictions/plane/snap/GridRestriction.ts +262 -0
- package/src/business/implementation/utils/numberCleaner.ts +5 -0
- package/src/business/interfaces/IDrawingToolsManager.ts +313 -0
- package/src/business/interfaces/IManager.ts +7 -0
- package/src/business/interfaces/IRestriction.ts +64 -0
- package/src/business/interfaces/IRestrictionBase.ts +33 -0
- package/src/business/interfaces/ISnapRestriction.ts +70 -0
- package/src/business/interfaces/events/EventResponseMapping.ts +19 -0
- package/src/business/interfaces/events/IDrawingToolsEvent.ts +16 -0
- package/src/index.ts +72 -0
- package/src/three/CSS2DRenderer.ts +212 -0
- 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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"}
|
package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.d.ts
ADDED
|
@@ -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"}
|
package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.js
ADDED
|
@@ -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
|
package/dist/business/implementation/managers/interaction/handlers/DeletionInteractionHandler.js.map
ADDED
|
@@ -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"}
|
package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.d.ts
ADDED
|
@@ -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"}
|
package/dist/business/implementation/managers/interaction/handlers/InsertionInteractionHandler.js
ADDED
|
@@ -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":";;;;;;;;;;;;;;;AAKA,sFAAuF;AAGvF,MAAa,2BAA2B;IAcpC,6BAA6B;IAE7B,2BAA2B;IAE3B,YAAY,mBAAwC,EAAE,kBAAsC;QAjB5F,0BAA0B;QAE1B,mEAAmD;QACnD,mEAAmD;QACnD,6DAAuC;QACvC,kEAAiD;QACjD,wDAA6B;QAC7B,wDAAiC;QAEjC,uDAA4B,KAAK,EAAC;QAClC,uDAA4B,KAAK,EAAC;QAClC,4DAAgC,CAAC,CAAC,EAAC;QAO/B,uBAAA,IAAI,oDAAwB,mBAAmB,MAAA,CAAC;QAEhD,uBAAA,IAAI,yCAAa,mBAAmB,CAAC,QAAQ,MAAA,CAAC;QAC9C,uBAAA,IAAI,yCAAa,mBAAmB,CAAC,QAAQ,MAAA,CAAC;QAC9C,uBAAA,IAAI,oDAAwB,mBAAmB,CAAC,mBAAmB,MAAA,CAAC;QACpE,uBAAA,IAAI,mDAAuB,kBAAkB,CAAC,kBAAkB,MAAA,CAAC;QACjE,uBAAA,IAAI,8CAAkB,mBAAmB,CAAC,aAAa,MAAA,CAAC;IAC5D,CAAC;IAED,8BAA8B;IAE9B,yCAAyC;IAEzC,IAAW,eAAe;QACtB,OAAO,uBAAA,IAAI,oDAAiB,CAAC;IACjC,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,uBAAA,IAAI,oDAAiB,CAAC;IACjC,CAAC;IAED,4CAA4C;IAE5C,6BAA6B;IAEtB,iBAAiB;QACpB,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,IAAI,uBAAA,IAAI,oDAAiB,KAAK,IAAI,IAAI,uBAAA,IAAI,oDAAiB,KAAK,IAAI,EAAE;YAClE,uBAAA,IAAI,kDAAe,CAAC,mBAAmB,CAAC,uBAAA,IAAI,yDAAsB,CAAC,CAAC;YAEpE,MAAM,WAAW,GAAG,uBAAA,IAAI,kDAAe,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,uBAAA,IAAI,kDAAe,CAAC,mBAAmB,CAAC,uBAAA,IAAI,kDAAe,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC;YAChJ,MAAM,cAAc,GAAG,uBAAA,IAAI,6CAAU,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,uBAAA,IAAI,kDAAe,CAAC,SAAS,KAAK,KAAK,IAAI,uBAAA,IAAI,6CAAU,CAAC,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC;YAExJ,sHAAsH;YACtH,IAAI,WAAW,IAAI,cAAc,EAAE;gBAC/B,yHAAyH;gBACzH,MAAM,UAAU,GAAG,uBAAA,IAAI,kDAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACtD,MAAM,SAAS,GAAG,uBAAA,IAAI,kDAAe,CAAC,WAAW,CAAC,uBAAA,IAAI,yDAAsB,CAAC,CAAC;gBAE9E,IAAI,uBAAA,IAAI,wDAAqB,CAAC,wBAAwB,CAAC,UAAU,EAAE,SAAS,EAAE,uBAAA,IAAI,6CAAU,CAAC,aAAa,CAAC,MAAM,CAAC,MAAO,GAAG,uBAAA,IAAI,6CAAU,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE;oBACnM,uBAAA,IAAI,kDAAe,CAAC,SAAS,GAAG,IAAI,CAAC;oBACrC,uBAAA,IAAI,wDAAqB,CAAC,WAAW,CAAC,uBAAA,IAAI,yDAAsB,CAAC,CAAC;oBAClE,MAAM,GAAG,IAAI,CAAC;iBACjB;qBAAM;oBACH,uBAAA,IAAI,wDAAqB,CAAC,mBAAmB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,qCAAc,CAAC,OAAO,CAAC,CAAC;iBACrG;aACJ;iBAAM;gBACH,uBAAA,IAAI,wDAAqB,CAAC,mBAAmB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,qCAAc,CAAC,OAAO,CAAC,CAAC;aACrG;SACJ;QAED,uBAAA,IAAI,gDAAoB,KAAK,MAAA,CAAC;QAC9B,uBAAA,IAAI,gDAAoB,KAAK,MAAA,CAAC;QAC9B,uBAAA,IAAI,qDAAyB,CAAC,CAAC,MAAA,CAAC;QAEhC,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,GAAS;QACnB,IAAI,uBAAA,IAAI,oDAAiB,KAAK,KAAK;YAAE,OAAO;QAE5C,IAAI,uBAAA,IAAI,kDAAe,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,uBAAA,IAAI,oDAAiB,KAAK,IAAI,EAAE;YAC3E,MAAM,eAAe,GAAG,uBAAA,IAAI,uDAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,uBAAA,IAAI,yDAAsB,EAAE,CAAC,CAAC;YAEtG,IAAI,eAAe,EAAE;gBACjB,MAAM,WAAW,GAAG,uBAAA,IAAI,kDAAe,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,uBAAA,IAAI,kDAAe,CAAC,mBAAmB,CAAC,uBAAA,IAAI,kDAAe,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC;gBAChJ,MAAM,cAAc,GAAG,uBAAA,IAAI,6CAAU,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,uBAAA,IAAI,kDAAe,CAAC,SAAS,KAAK,KAAK,IAAI,uBAAA,IAAI,6CAAU,CAAC,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC;gBAExJ,sHAAsH;gBACtH,IAAI,WAAW,IAAI,cAAc,EAAE;oBAC/B,yHAAyH;oBACzH,MAAM,UAAU,GAAG,uBAAA,IAAI,kDAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACtD,MAAM,SAAS,GAAG,eAAe,CAAC;oBAElC,IAAI,SAAS,IAAI,uBAAA,IAAI,wDAAqB,CAAC,wBAAwB,CAAC,UAAU,EAAE,SAAS,EAAE,uBAAA,IAAI,6CAAU,CAAC,aAAa,CAAC,MAAM,CAAC,MAAO,GAAG,uBAAA,IAAI,6CAAU,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE;wBAChN,qBAAqB;wBACrB,uBAAA,IAAI,wDAAqB,CAAC,mBAAmB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,qCAAc,CAAC,gBAAgB,CAAC,CAAC;wBAC3G,uBAAA,IAAI,wDAAqB,CAAC,kBAAkB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,UAAU,CAAC,CAAC;qBACxF;yBAAM;wBACH,yCAAyC;wBACzC,uBAAA,IAAI,wDAAqB,CAAC,mBAAmB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,qCAAc,CAAC,iBAAiB,CAAC,CAAC;wBAC5G,uBAAA,IAAI,wDAAqB,CAAC,kBAAkB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,eAAe,CAAC,CAAC;qBAC7F;iBACJ;qBAAM;oBACH,mEAAmE;oBACnE,uBAAA,IAAI,wDAAqB,CAAC,mBAAmB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,qCAAc,CAAC,iBAAiB,CAAC,CAAC;oBAC5G,uBAAA,IAAI,wDAAqB,CAAC,kBAAkB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,eAAe,CAAC,CAAC;iBAC7F;aACJ;SACJ;IACL,CAAC;IAEM,cAAc,CAAC,KAAmB;QACrC,IAAI,uBAAA,IAAI,oDAAiB,KAAK,KAAK,EAAE;YACjC,kBAAkB;YAClB,MAAM,GAAG,GAAG,uBAAA,IAAI,6CAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEpD,sCAAsC;YACtC,MAAM,eAAe,GAAG,uBAAA,IAAI,uDAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/D,uBAAuB;YACvB,uBAAA,IAAI,qDAAyB,uBAAA,IAAI,kDAAe,CAAC,aAAa,EAAE,MAAA,CAAC;YACjE,uBAAA,IAAI,wDAAqB,CAAC,iBAAiB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,eAAe,CAAC,CAAC;YACzF,uBAAA,IAAI,wDAAqB,CAAC,mBAAmB,CAAC,uBAAA,IAAI,yDAAsB,EAAE,qCAAc,CAAC,iBAAiB,CAAC,CAAC;YAE5G,uBAAA,IAAI,gDAAoB,IAAI,MAAA,CAAC;YAC7B,uBAAA,IAAI,gDAAoB,IAAI,MAAA,CAAC;SAChC;IACL,CAAC;IAEM,aAAa;QAChB,IAAI,uBAAA,IAAI,oDAAiB,KAAK,IAAI,EAAE;YAChC,0BAA0B;YAC1B,uBAAA,IAAI,wDAAqB,CAAC,oBAAoB,CAAC,uBAAA,IAAI,yDAAsB,CAAC,CAAC;YAC3E,uBAAA,IAAI,gDAAoB,KAAK,MAAA,CAAC;YAC9B,uBAAA,IAAI,gDAAoB,KAAK,MAAA,CAAC;YAC9B,uBAAA,IAAI,qDAAyB,CAAC,CAAC,MAAA,CAAC;SACnC;IACL,CAAC;CAGJ;AA5ID,kEA4IC"}
|
package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.d.ts
ADDED
|
@@ -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"}
|
package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.js
ADDED
|
@@ -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
|
package/dist/business/implementation/managers/interaction/handlers/MidPointInteractionHandler.js.map
ADDED
|
@@ -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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"}
|