@shapediver/viewer.shared.node-tree 2.12.7 → 3.0.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/dist/implementation/AbstractTreeNodeData.d.ts +13 -5
- package/dist/implementation/AbstractTreeNodeData.d.ts.map +1 -1
- package/dist/implementation/AbstractTreeNodeData.js +29 -19
- package/dist/implementation/AbstractTreeNodeData.js.map +1 -1
- package/dist/implementation/Tree.d.ts +15 -0
- package/dist/implementation/Tree.d.ts.map +1 -0
- package/dist/implementation/{AbstractTree.js → Tree.js} +26 -20
- package/dist/implementation/Tree.js.map +1 -0
- package/dist/implementation/{AbstractTreeNode.d.ts → TreeNode.d.ts} +35 -27
- package/dist/implementation/TreeNode.d.ts.map +1 -0
- package/dist/implementation/TreeNode.js +348 -0
- package/dist/implementation/TreeNode.js.map +1 -0
- package/dist/index.d.ts +9 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/interfaces/ITree.d.ts +8 -9
- package/dist/interfaces/ITree.d.ts.map +1 -1
- package/dist/interfaces/ITreeNode.d.ts +36 -23
- package/dist/interfaces/ITreeNode.d.ts.map +1 -1
- package/dist/interfaces/ITreeNode.js +1 -0
- package/dist/interfaces/ITreeNode.js.map +1 -1
- package/dist/interfaces/ITreeNodeData.d.ts +20 -10
- package/dist/interfaces/ITreeNodeData.d.ts.map +1 -1
- package/package.json +5 -7
- package/src/implementation/AbstractTreeNodeData.ts +38 -26
- package/src/implementation/{AbstractTree.ts → Tree.ts} +29 -19
- package/src/implementation/{AbstractTreeNode.ts → TreeNode.ts} +124 -96
- package/src/index.ts +12 -13
- package/src/interfaces/ITree.ts +8 -13
- package/src/interfaces/ITreeNode.ts +43 -28
- package/src/interfaces/ITreeNodeData.ts +20 -12
- package/dist/implementation/AbstractTree.d.ts +0 -14
- package/dist/implementation/AbstractTree.d.ts.map +0 -1
- package/dist/implementation/AbstractTree.js.map +0 -1
- package/dist/implementation/AbstractTreeNode.d.ts.map +0 -1
- package/dist/implementation/AbstractTreeNode.js +0 -321
- package/dist/implementation/AbstractTreeNode.js.map +0 -1
- package/dist/implementation/three/AbstractTreeNodeDataThreeJs.d.ts +0 -10
- package/dist/implementation/three/AbstractTreeNodeDataThreeJs.d.ts.map +0 -1
- package/dist/implementation/three/AbstractTreeNodeDataThreeJs.js +0 -23
- package/dist/implementation/three/AbstractTreeNodeDataThreeJs.js.map +0 -1
- package/dist/implementation/three/Tree.d.ts +0 -9
- package/dist/implementation/three/Tree.d.ts.map +0 -1
- package/dist/implementation/three/Tree.js +0 -19
- package/dist/implementation/three/Tree.js.map +0 -1
- package/dist/implementation/three/TreeNodeThreejs.d.ts +0 -13
- package/dist/implementation/three/TreeNodeThreejs.d.ts.map +0 -1
- package/dist/implementation/three/TreeNodeThreejs.js +0 -35
- package/dist/implementation/three/TreeNodeThreejs.js.map +0 -1
- package/dist/interfaces/three/ITreeNodeDataThreeJs.d.ts +0 -11
- package/dist/interfaces/three/ITreeNodeDataThreeJs.d.ts.map +0 -1
- package/dist/interfaces/three/ITreeNodeDataThreeJs.js +0 -3
- package/dist/interfaces/three/ITreeNodeDataThreeJs.js.map +0 -1
- package/dist/interfaces/three/ITreeNodeThreeJs.d.ts +0 -17
- package/dist/interfaces/three/ITreeNodeThreeJs.d.ts.map +0 -1
- package/dist/interfaces/three/ITreeNodeThreeJs.js +0 -3
- package/dist/interfaces/three/ITreeNodeThreeJs.js.map +0 -1
- package/dist/interfaces/three/ITreeThreeJs.d.ts +0 -5
- package/dist/interfaces/three/ITreeThreeJs.d.ts.map +0 -1
- package/dist/interfaces/three/ITreeThreeJs.js +0 -3
- package/dist/interfaces/three/ITreeThreeJs.js.map +0 -1
- package/src/implementation/three/AbstractTreeNodeDataThreeJs.ts +0 -12
- package/src/implementation/three/Tree.ts +0 -28
- package/src/implementation/three/TreeNodeThreeJs.ts +0 -21
- package/src/interfaces/three/ITreeNodeDataThreeJs.ts +0 -13
- package/src/interfaces/three/ITreeNodeThreeJs.ts +0 -19
- package/src/interfaces/three/ITreeThreeJs.ts +0 -4
|
@@ -0,0 +1,348 @@
|
|
|
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 _TreeNode_boundingBox, _TreeNode_boundingBoxViewport, _TreeNode_children, _TreeNode_data, _TreeNode_id, _TreeNode_uuidGenerator, _TreeNode_boneInverses, _TreeNode_bones, _TreeNode_convertedObject, _TreeNode_excludeViewports, _TreeNode_name, _TreeNode_originalId, _TreeNode_parent, _TreeNode_restrictViewports, _TreeNode_skinNode, _TreeNode_transformations, _TreeNode_updateCallbackConvertedObject, _TreeNode_version, _TreeNode_visible;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TreeNode = void 0;
|
|
16
|
+
const viewer_shared_math_1 = require("@shapediver/viewer.shared.math");
|
|
17
|
+
const gl_matrix_1 = require("gl-matrix");
|
|
18
|
+
const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
|
|
19
|
+
class TreeNode {
|
|
20
|
+
// #endregion Properties (19)
|
|
21
|
+
// #region Constructors (1)
|
|
22
|
+
/**
|
|
23
|
+
* Creation of a node that can be used in the node tree.
|
|
24
|
+
*
|
|
25
|
+
* @param name the name of the node
|
|
26
|
+
* @param parent the parent of this node
|
|
27
|
+
* @param data the array of data
|
|
28
|
+
* @param transformations the array of transformations
|
|
29
|
+
*/
|
|
30
|
+
constructor(name = 'node', parent, data = [], transformations = []) {
|
|
31
|
+
var _a;
|
|
32
|
+
// #region Properties (19)
|
|
33
|
+
_TreeNode_boundingBox.set(this, new viewer_shared_math_1.Box());
|
|
34
|
+
_TreeNode_boundingBoxViewport.set(this, {});
|
|
35
|
+
_TreeNode_children.set(this, []);
|
|
36
|
+
_TreeNode_data.set(this, []);
|
|
37
|
+
_TreeNode_id.set(this, void 0);
|
|
38
|
+
_TreeNode_uuidGenerator.set(this, viewer_shared_services_1.UuidGenerator.instance);
|
|
39
|
+
_TreeNode_boneInverses.set(this, []);
|
|
40
|
+
_TreeNode_bones.set(this, []);
|
|
41
|
+
_TreeNode_convertedObject.set(this, {});
|
|
42
|
+
_TreeNode_excludeViewports.set(this, []);
|
|
43
|
+
_TreeNode_name.set(this, '');
|
|
44
|
+
_TreeNode_originalId.set(this, void 0);
|
|
45
|
+
_TreeNode_parent.set(this, void 0);
|
|
46
|
+
_TreeNode_restrictViewports.set(this, []);
|
|
47
|
+
_TreeNode_skinNode.set(this, false);
|
|
48
|
+
_TreeNode_transformations.set(this, []);
|
|
49
|
+
_TreeNode_updateCallbackConvertedObject.set(this, null);
|
|
50
|
+
_TreeNode_version.set(this, void 0);
|
|
51
|
+
_TreeNode_visible.set(this, true);
|
|
52
|
+
__classPrivateFieldSet(this, _TreeNode_name, name.replace(/\./g, '_'), "f");
|
|
53
|
+
__classPrivateFieldSet(this, _TreeNode_parent, parent, "f");
|
|
54
|
+
__classPrivateFieldSet(this, _TreeNode_data, data, "f");
|
|
55
|
+
__classPrivateFieldSet(this, _TreeNode_transformations, transformations, "f");
|
|
56
|
+
__classPrivateFieldSet(this, _TreeNode_id, __classPrivateFieldGet(this, _TreeNode_uuidGenerator, "f").create(), "f");
|
|
57
|
+
__classPrivateFieldSet(this, _TreeNode_originalId, __classPrivateFieldGet(this, _TreeNode_id, "f"), "f");
|
|
58
|
+
__classPrivateFieldSet(this, _TreeNode_version, __classPrivateFieldGet(this, _TreeNode_uuidGenerator, "f").create(), "f");
|
|
59
|
+
(_a = __classPrivateFieldGet(this, _TreeNode_parent, "f")) === null || _a === void 0 ? void 0 : _a.addChild(this);
|
|
60
|
+
}
|
|
61
|
+
// #endregion Constructors (1)
|
|
62
|
+
// #region Public Getters And Setters (33)
|
|
63
|
+
get boneInverses() {
|
|
64
|
+
return __classPrivateFieldGet(this, _TreeNode_boneInverses, "f");
|
|
65
|
+
}
|
|
66
|
+
set boneInverses(value) {
|
|
67
|
+
__classPrivateFieldSet(this, _TreeNode_boneInverses, value, "f");
|
|
68
|
+
}
|
|
69
|
+
get bones() {
|
|
70
|
+
return __classPrivateFieldGet(this, _TreeNode_bones, "f");
|
|
71
|
+
}
|
|
72
|
+
set bones(value) {
|
|
73
|
+
__classPrivateFieldSet(this, _TreeNode_bones, value, "f");
|
|
74
|
+
}
|
|
75
|
+
get boundingBox() {
|
|
76
|
+
return __classPrivateFieldGet(this, _TreeNode_boundingBox, "f");
|
|
77
|
+
}
|
|
78
|
+
get boundingBoxViewport() {
|
|
79
|
+
return __classPrivateFieldGet(this, _TreeNode_boundingBoxViewport, "f");
|
|
80
|
+
}
|
|
81
|
+
get children() {
|
|
82
|
+
return __classPrivateFieldGet(this, _TreeNode_children, "f");
|
|
83
|
+
}
|
|
84
|
+
get convertedObject() {
|
|
85
|
+
return __classPrivateFieldGet(this, _TreeNode_convertedObject, "f");
|
|
86
|
+
}
|
|
87
|
+
set convertedObject(value) {
|
|
88
|
+
__classPrivateFieldSet(this, _TreeNode_convertedObject, value, "f");
|
|
89
|
+
}
|
|
90
|
+
get data() {
|
|
91
|
+
return __classPrivateFieldGet(this, _TreeNode_data, "f");
|
|
92
|
+
}
|
|
93
|
+
get excludeViewports() {
|
|
94
|
+
return __classPrivateFieldGet(this, _TreeNode_excludeViewports, "f");
|
|
95
|
+
}
|
|
96
|
+
set excludeViewports(value) {
|
|
97
|
+
__classPrivateFieldSet(this, _TreeNode_excludeViewports, value, "f");
|
|
98
|
+
}
|
|
99
|
+
get id() {
|
|
100
|
+
return __classPrivateFieldGet(this, _TreeNode_id, "f");
|
|
101
|
+
}
|
|
102
|
+
get name() {
|
|
103
|
+
return __classPrivateFieldGet(this, _TreeNode_name, "f");
|
|
104
|
+
}
|
|
105
|
+
set name(value) {
|
|
106
|
+
__classPrivateFieldSet(this, _TreeNode_name, value, "f");
|
|
107
|
+
}
|
|
108
|
+
get nodeMatrix() {
|
|
109
|
+
const matrix = gl_matrix_1.mat4.create();
|
|
110
|
+
for (const transform of __classPrivateFieldGet(this, _TreeNode_transformations, "f"))
|
|
111
|
+
if (transform.id !== 'sdtf')
|
|
112
|
+
gl_matrix_1.mat4.multiply(matrix, matrix, transform.matrix);
|
|
113
|
+
return matrix;
|
|
114
|
+
}
|
|
115
|
+
get originalId() {
|
|
116
|
+
return __classPrivateFieldGet(this, _TreeNode_originalId, "f");
|
|
117
|
+
}
|
|
118
|
+
set originalId(value) {
|
|
119
|
+
__classPrivateFieldSet(this, _TreeNode_originalId, value, "f");
|
|
120
|
+
}
|
|
121
|
+
get parent() {
|
|
122
|
+
return __classPrivateFieldGet(this, _TreeNode_parent, "f");
|
|
123
|
+
}
|
|
124
|
+
set parent(value) {
|
|
125
|
+
// check if it was removed from previous parent
|
|
126
|
+
if (__classPrivateFieldGet(this, _TreeNode_parent, "f"))
|
|
127
|
+
__classPrivateFieldGet(this, _TreeNode_parent, "f").removeChild(this);
|
|
128
|
+
// check if it is in children of new parent
|
|
129
|
+
if (value)
|
|
130
|
+
value.addChild(this);
|
|
131
|
+
__classPrivateFieldSet(this, _TreeNode_parent, value, "f");
|
|
132
|
+
}
|
|
133
|
+
get restrictViewports() {
|
|
134
|
+
return __classPrivateFieldGet(this, _TreeNode_restrictViewports, "f");
|
|
135
|
+
}
|
|
136
|
+
set restrictViewports(value) {
|
|
137
|
+
__classPrivateFieldSet(this, _TreeNode_restrictViewports, value, "f");
|
|
138
|
+
}
|
|
139
|
+
get skinNode() {
|
|
140
|
+
return __classPrivateFieldGet(this, _TreeNode_skinNode, "f");
|
|
141
|
+
}
|
|
142
|
+
set skinNode(value) {
|
|
143
|
+
__classPrivateFieldSet(this, _TreeNode_skinNode, value, "f");
|
|
144
|
+
}
|
|
145
|
+
get transformations() {
|
|
146
|
+
return __classPrivateFieldGet(this, _TreeNode_transformations, "f");
|
|
147
|
+
}
|
|
148
|
+
set transformations(value) {
|
|
149
|
+
__classPrivateFieldSet(this, _TreeNode_transformations, value, "f");
|
|
150
|
+
}
|
|
151
|
+
get updateCallbackConvertedObject() {
|
|
152
|
+
return __classPrivateFieldGet(this, _TreeNode_updateCallbackConvertedObject, "f");
|
|
153
|
+
}
|
|
154
|
+
set updateCallbackConvertedObject(value) {
|
|
155
|
+
__classPrivateFieldSet(this, _TreeNode_updateCallbackConvertedObject, value, "f");
|
|
156
|
+
}
|
|
157
|
+
get version() {
|
|
158
|
+
return __classPrivateFieldGet(this, _TreeNode_version, "f");
|
|
159
|
+
}
|
|
160
|
+
set version(value) {
|
|
161
|
+
__classPrivateFieldSet(this, _TreeNode_version, value, "f");
|
|
162
|
+
}
|
|
163
|
+
get visible() {
|
|
164
|
+
return __classPrivateFieldGet(this, _TreeNode_visible, "f");
|
|
165
|
+
}
|
|
166
|
+
set visible(value) {
|
|
167
|
+
__classPrivateFieldSet(this, _TreeNode_visible, value, "f");
|
|
168
|
+
}
|
|
169
|
+
get worldMatrix() {
|
|
170
|
+
const matrix = gl_matrix_1.mat4.create();
|
|
171
|
+
for (const transform of __classPrivateFieldGet(this, _TreeNode_transformations, "f"))
|
|
172
|
+
gl_matrix_1.mat4.multiply(matrix, matrix, transform.matrix);
|
|
173
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
174
|
+
let node = this;
|
|
175
|
+
while (node.parent) {
|
|
176
|
+
gl_matrix_1.mat4.multiply(matrix, node.parent.nodeMatrix, matrix);
|
|
177
|
+
node = node.parent;
|
|
178
|
+
}
|
|
179
|
+
return matrix;
|
|
180
|
+
}
|
|
181
|
+
// #endregion Public Getters And Setters (33)
|
|
182
|
+
// #region Public Methods (20)
|
|
183
|
+
addChild(child) {
|
|
184
|
+
if (this.hasChild(child))
|
|
185
|
+
return false;
|
|
186
|
+
__classPrivateFieldGet(this, _TreeNode_children, "f").push(child);
|
|
187
|
+
if (child.parent)
|
|
188
|
+
child.parent.removeChild(child);
|
|
189
|
+
child.parent = this;
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
addData(data) {
|
|
193
|
+
__classPrivateFieldGet(this, _TreeNode_data, "f").push(data);
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
addTransformation(transformation) {
|
|
197
|
+
__classPrivateFieldGet(this, _TreeNode_transformations, "f").push(transformation);
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
clone() {
|
|
201
|
+
const clone = new this.constructor();
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
203
|
+
// @ts-ignore
|
|
204
|
+
clone.name = this.name;
|
|
205
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
206
|
+
// @ts-ignore
|
|
207
|
+
clone.originalId = this.originalId;
|
|
208
|
+
clone.visible = this.visible;
|
|
209
|
+
for (const child of __classPrivateFieldGet(this, _TreeNode_children, "f"))
|
|
210
|
+
clone.addChild(child.clone());
|
|
211
|
+
for (const data of __classPrivateFieldGet(this, _TreeNode_data, "f"))
|
|
212
|
+
clone.data.push(data.clone());
|
|
213
|
+
for (const transform of __classPrivateFieldGet(this, _TreeNode_transformations, "f"))
|
|
214
|
+
clone.addTransformation({
|
|
215
|
+
id: transform.id,
|
|
216
|
+
matrix: gl_matrix_1.mat4.clone(transform.matrix)
|
|
217
|
+
});
|
|
218
|
+
return clone;
|
|
219
|
+
}
|
|
220
|
+
cloneInstance() {
|
|
221
|
+
const clone = new this.constructor();
|
|
222
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
223
|
+
// @ts-ignore
|
|
224
|
+
clone.name = this.name;
|
|
225
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
226
|
+
// @ts-ignore
|
|
227
|
+
clone.originalId = this.originalId;
|
|
228
|
+
clone.visible = this.visible;
|
|
229
|
+
for (const child of __classPrivateFieldGet(this, _TreeNode_children, "f"))
|
|
230
|
+
clone.addChild(child.cloneInstance());
|
|
231
|
+
for (const data of __classPrivateFieldGet(this, _TreeNode_data, "f"))
|
|
232
|
+
clone.data.push(data);
|
|
233
|
+
for (const transform of __classPrivateFieldGet(this, _TreeNode_transformations, "f"))
|
|
234
|
+
clone.addTransformation({
|
|
235
|
+
id: transform.id,
|
|
236
|
+
matrix: gl_matrix_1.mat4.clone(transform.matrix)
|
|
237
|
+
});
|
|
238
|
+
return clone;
|
|
239
|
+
}
|
|
240
|
+
getChild(id) {
|
|
241
|
+
for (let i = 0; i < __classPrivateFieldGet(this, _TreeNode_children, "f").length; i++)
|
|
242
|
+
if (__classPrivateFieldGet(this, _TreeNode_children, "f")[i].id === id)
|
|
243
|
+
return __classPrivateFieldGet(this, _TreeNode_children, "f")[i];
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
getData(id) {
|
|
247
|
+
for (let i = 0; i < __classPrivateFieldGet(this, _TreeNode_data, "f").length; i++)
|
|
248
|
+
if (__classPrivateFieldGet(this, _TreeNode_data, "f")[i].id === id)
|
|
249
|
+
return __classPrivateFieldGet(this, _TreeNode_data, "f")[i];
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
getNodesByName(name) {
|
|
253
|
+
const nodes = [];
|
|
254
|
+
if (name === this.name)
|
|
255
|
+
nodes.push(this);
|
|
256
|
+
this.traverse((n) => {
|
|
257
|
+
if (name === n.name)
|
|
258
|
+
nodes.push(n);
|
|
259
|
+
});
|
|
260
|
+
return nodes;
|
|
261
|
+
}
|
|
262
|
+
getNodesByNameWithRegex(regex) {
|
|
263
|
+
const nodes = [];
|
|
264
|
+
if (regex.test(this.name))
|
|
265
|
+
nodes.push(this);
|
|
266
|
+
this.traverse((n) => {
|
|
267
|
+
if (regex.test(n.name))
|
|
268
|
+
nodes.push(n);
|
|
269
|
+
});
|
|
270
|
+
return nodes;
|
|
271
|
+
}
|
|
272
|
+
getPath() {
|
|
273
|
+
let path = this.name;
|
|
274
|
+
let node = this.parent;
|
|
275
|
+
while (node) {
|
|
276
|
+
path = node.name + '.' + path;
|
|
277
|
+
node = node.parent;
|
|
278
|
+
}
|
|
279
|
+
return path;
|
|
280
|
+
}
|
|
281
|
+
getTransformation(id) {
|
|
282
|
+
for (let i = 0; i < __classPrivateFieldGet(this, _TreeNode_transformations, "f").length; i++)
|
|
283
|
+
if (__classPrivateFieldGet(this, _TreeNode_transformations, "f")[i].id === id)
|
|
284
|
+
return __classPrivateFieldGet(this, _TreeNode_transformations, "f")[i];
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
hasChild(child) {
|
|
288
|
+
return __classPrivateFieldGet(this, _TreeNode_children, "f").includes(child);
|
|
289
|
+
}
|
|
290
|
+
hasData(data) {
|
|
291
|
+
return __classPrivateFieldGet(this, _TreeNode_data, "f").includes(data);
|
|
292
|
+
}
|
|
293
|
+
hasTransformation(transformation) {
|
|
294
|
+
return __classPrivateFieldGet(this, _TreeNode_transformations, "f").includes(transformation);
|
|
295
|
+
}
|
|
296
|
+
removeChild(child) {
|
|
297
|
+
const index = __classPrivateFieldGet(this, _TreeNode_children, "f").indexOf(child);
|
|
298
|
+
if (index === -1)
|
|
299
|
+
return false;
|
|
300
|
+
__classPrivateFieldGet(this, _TreeNode_children, "f").splice(index, 1);
|
|
301
|
+
child.parent = undefined;
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
removeData(data) {
|
|
305
|
+
const index = __classPrivateFieldGet(this, _TreeNode_data, "f").indexOf(data);
|
|
306
|
+
if (index === -1)
|
|
307
|
+
return false;
|
|
308
|
+
__classPrivateFieldGet(this, _TreeNode_data, "f").splice(index, 1);
|
|
309
|
+
return true;
|
|
310
|
+
}
|
|
311
|
+
removeTransformation(transformation) {
|
|
312
|
+
const index = __classPrivateFieldGet(this, _TreeNode_transformations, "f").indexOf(transformation);
|
|
313
|
+
if (index === -1)
|
|
314
|
+
return false;
|
|
315
|
+
__classPrivateFieldGet(this, _TreeNode_transformations, "f").splice(index, 1);
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
traverse(callback) {
|
|
319
|
+
callback(this);
|
|
320
|
+
for (let i = 0; i < this.children.length; i++)
|
|
321
|
+
this.children[i].traverse(callback);
|
|
322
|
+
}
|
|
323
|
+
traverseData(callback) {
|
|
324
|
+
for (let j = 0; j < this.data.length; j++)
|
|
325
|
+
callback(this.data[j]);
|
|
326
|
+
for (let i = 0; i < this.children.length; i++)
|
|
327
|
+
this.children[i].traverseData(callback);
|
|
328
|
+
}
|
|
329
|
+
updateVersion(parents = true, children = true) {
|
|
330
|
+
if (parents === true) {
|
|
331
|
+
let node = this;
|
|
332
|
+
while (node.parent) {
|
|
333
|
+
node = node.parent;
|
|
334
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
335
|
+
// @ts-ignore
|
|
336
|
+
node.version = __classPrivateFieldGet(this, _TreeNode_uuidGenerator, "f").create();
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
if (children === true) {
|
|
340
|
+
for (let i = 0; i < __classPrivateFieldGet(this, _TreeNode_children, "f").length; i++)
|
|
341
|
+
__classPrivateFieldGet(this, _TreeNode_children, "f")[i].updateVersion(parents, children);
|
|
342
|
+
}
|
|
343
|
+
__classPrivateFieldSet(this, _TreeNode_version, __classPrivateFieldGet(this, _TreeNode_uuidGenerator, "f").create(), "f");
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
exports.TreeNode = TreeNode;
|
|
347
|
+
_TreeNode_boundingBox = new WeakMap(), _TreeNode_boundingBoxViewport = new WeakMap(), _TreeNode_children = new WeakMap(), _TreeNode_data = new WeakMap(), _TreeNode_id = new WeakMap(), _TreeNode_uuidGenerator = new WeakMap(), _TreeNode_boneInverses = new WeakMap(), _TreeNode_bones = new WeakMap(), _TreeNode_convertedObject = new WeakMap(), _TreeNode_excludeViewports = new WeakMap(), _TreeNode_name = new WeakMap(), _TreeNode_originalId = new WeakMap(), _TreeNode_parent = new WeakMap(), _TreeNode_restrictViewports = new WeakMap(), _TreeNode_skinNode = new WeakMap(), _TreeNode_transformations = new WeakMap(), _TreeNode_updateCallbackConvertedObject = new WeakMap(), _TreeNode_version = new WeakMap(), _TreeNode_visible = new WeakMap();
|
|
348
|
+
//# sourceMappingURL=TreeNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeNode.js","sourceRoot":"","sources":["../../src/implementation/TreeNode.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export { ITreeNodeDataThreeJs as ITreeNodeData, AbstractTreeNodeDataThreeJs as AbstractTreeNodeData };
|
|
1
|
+
import { AbstractTreeNodeData } from './implementation/AbstractTreeNodeData';
|
|
2
|
+
import { ITransformation, ITreeNode } from './interfaces/ITreeNode';
|
|
3
|
+
import { ITree } from './interfaces/ITree';
|
|
4
|
+
import { ITreeNodeData } from './interfaces/ITreeNodeData';
|
|
5
|
+
import { Tree } from './implementation/Tree';
|
|
6
|
+
import { TreeNode } from './implementation/TreeNode';
|
|
7
|
+
export { ITree, Tree };
|
|
8
|
+
export { ITreeNode, TreeNode, ITransformation };
|
|
9
|
+
export { ITreeNodeData, AbstractTreeNodeData };
|
|
11
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EACH,KAAK,EAAE,IAAI,EACd,CAAC;AAEF,OAAO,EACH,SAAS,EAAE,QAAQ,EAAE,eAAe,EACvC,CAAC;AAEF,OAAO,EACH,aAAa,EAAE,oBAAoB,EACtC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AbstractTreeNodeData = exports.TreeNode = exports.Tree = void 0;
|
|
4
|
-
const
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
const Tree_1 = require("./implementation/
|
|
4
|
+
const AbstractTreeNodeData_1 = require("./implementation/AbstractTreeNodeData");
|
|
5
|
+
Object.defineProperty(exports, "AbstractTreeNodeData", { enumerable: true, get: function () { return AbstractTreeNodeData_1.AbstractTreeNodeData; } });
|
|
6
|
+
const Tree_1 = require("./implementation/Tree");
|
|
7
7
|
Object.defineProperty(exports, "Tree", { enumerable: true, get: function () { return Tree_1.Tree; } });
|
|
8
|
-
const
|
|
9
|
-
Object.defineProperty(exports, "
|
|
8
|
+
const TreeNode_1 = require("./implementation/TreeNode");
|
|
9
|
+
Object.defineProperty(exports, "TreeNode", { enumerable: true, get: function () { return TreeNode_1.TreeNode; } });
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gFAA6E;AAgB1D,qGAhBV,2CAAoB,OAgBU;AAZvC,gDAA6C;AAIlC,qFAJF,WAAI,OAIE;AAHf,wDAAqD;AAOtC,yFAPN,mBAAQ,OAOM"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { ITreeNode } from
|
|
2
|
-
|
|
3
|
-
export interface ITree<T extends ITreeNode<any, ITreeNodeData<any>>> {
|
|
1
|
+
import { ITreeNode } from './ITreeNode';
|
|
2
|
+
export interface ITree {
|
|
4
3
|
/**
|
|
5
4
|
* The root of the tree.
|
|
6
5
|
*/
|
|
7
|
-
readonly root:
|
|
6
|
+
readonly root: ITreeNode;
|
|
8
7
|
/**
|
|
9
8
|
* Add the node as a child of the corresponding parent node.
|
|
10
9
|
*
|
|
@@ -12,7 +11,7 @@ export interface ITree<T extends ITreeNode<any, ITreeNodeData<any>>> {
|
|
|
12
11
|
* @param parent the targeted parent node
|
|
13
12
|
* @param root optional root at which the process begins, root node will be used per default
|
|
14
13
|
*/
|
|
15
|
-
addNode(node:
|
|
14
|
+
addNode(node: ITreeNode, parent?: ITreeNode, root?: ITreeNode): boolean;
|
|
16
15
|
/**
|
|
17
16
|
* Add the node at the corresponding path. (paths are dot separated ids)
|
|
18
17
|
*
|
|
@@ -20,7 +19,7 @@ export interface ITree<T extends ITreeNode<any, ITreeNodeData<any>>> {
|
|
|
20
19
|
* @param path the path at which the node should be added
|
|
21
20
|
* @param root optional root at which the process begins, root node will be used per default
|
|
22
21
|
*/
|
|
23
|
-
addNodeAtPath(node:
|
|
22
|
+
addNodeAtPath(node: ITreeNode, path?: string, root?: ITreeNode): boolean;
|
|
24
23
|
/**
|
|
25
24
|
* Get the node at the provided path.
|
|
26
25
|
*
|
|
@@ -28,20 +27,20 @@ export interface ITree<T extends ITreeNode<any, ITreeNodeData<any>>> {
|
|
|
28
27
|
* @param root
|
|
29
28
|
* @returns
|
|
30
29
|
*/
|
|
31
|
-
getNodeAtPath(path?: string, root?:
|
|
30
|
+
getNodeAtPath(path?: string, root?: ITreeNode): ITreeNode | null;
|
|
32
31
|
/**
|
|
33
32
|
* Remove a node from the tree.
|
|
34
33
|
*
|
|
35
34
|
* @param node the node to remove
|
|
36
35
|
* @param root optional root at which the process begins, root node will be used per default
|
|
37
36
|
*/
|
|
38
|
-
removeNode(node:
|
|
37
|
+
removeNode(node: ITreeNode, root?: ITreeNode): boolean;
|
|
39
38
|
/**
|
|
40
39
|
* Remove a node via the path of it.
|
|
41
40
|
*
|
|
42
41
|
* @param path the path of the node to be removed
|
|
43
42
|
* @param root optional root at which the process begins, root node will be used per default
|
|
44
43
|
*/
|
|
45
|
-
removeNodeAtPath(path: string, root?:
|
|
44
|
+
removeNodeAtPath(path: string, root?: ITreeNode): boolean;
|
|
46
45
|
}
|
|
47
46
|
//# sourceMappingURL=ITree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ITree.d.ts","sourceRoot":"","sources":["../../src/interfaces/ITree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ITree.d.ts","sourceRoot":"","sources":["../../src/interfaces/ITree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,KAAK;IAGlB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAMzB;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACxE;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACzE;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IACjE;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACvD;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAG7D"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { mat4 } from 'gl-matrix';
|
|
2
1
|
import { IBox } from '@shapediver/viewer.shared.math';
|
|
3
2
|
import { ITreeNodeData } from './ITreeNodeData';
|
|
3
|
+
import { mat4 } from 'gl-matrix';
|
|
4
4
|
export interface ITransformation {
|
|
5
5
|
id: string;
|
|
6
6
|
matrix: mat4;
|
|
7
7
|
}
|
|
8
|
-
export interface ITreeNode
|
|
8
|
+
export interface ITreeNode {
|
|
9
9
|
/**
|
|
10
10
|
* The bounding box of this tree node.
|
|
11
11
|
*/
|
|
@@ -21,14 +21,14 @@ export interface ITreeNode<T extends ITreeNode<any, ITreeNodeData<any>>, U exten
|
|
|
21
21
|
/**
|
|
22
22
|
* The children of this tree node. Can be added and remove via {@link addChild} and {@link removeChild}.
|
|
23
23
|
*/
|
|
24
|
-
readonly children:
|
|
24
|
+
readonly children: ITreeNode[];
|
|
25
25
|
/**
|
|
26
26
|
* The data of this tree node.
|
|
27
27
|
* The data can include Geometry, Materials, Lights, Cameras, but also informational or custom data.
|
|
28
28
|
*
|
|
29
29
|
* Can be added and remove via {@link addData} and {@link removeData}.
|
|
30
30
|
*/
|
|
31
|
-
readonly data:
|
|
31
|
+
readonly data: ITreeNodeData[];
|
|
32
32
|
/**
|
|
33
33
|
* The ID of the tree node.
|
|
34
34
|
*/
|
|
@@ -50,7 +50,7 @@ export interface ITreeNode<T extends ITreeNode<any, ITreeNodeData<any>>, U exten
|
|
|
50
50
|
* The parent of the tree node.
|
|
51
51
|
* This property is automatically managed by {@link addChild} and {@link removeChild}.
|
|
52
52
|
*/
|
|
53
|
-
readonly parent?:
|
|
53
|
+
readonly parent?: ITreeNode;
|
|
54
54
|
/**
|
|
55
55
|
* The version of the tree node.
|
|
56
56
|
* If the version changes, the node will be marked for an update.
|
|
@@ -69,7 +69,13 @@ export interface ITreeNode<T extends ITreeNode<any, ITreeNodeData<any>>, U exten
|
|
|
69
69
|
/**
|
|
70
70
|
* The optional bones that build a skeleton for animations.
|
|
71
71
|
*/
|
|
72
|
-
bones:
|
|
72
|
+
bones: ITreeNode[];
|
|
73
|
+
/**
|
|
74
|
+
* The converted object of the tree node.
|
|
75
|
+
*/
|
|
76
|
+
convertedObject: {
|
|
77
|
+
[key: string]: unknown;
|
|
78
|
+
};
|
|
73
79
|
/**
|
|
74
80
|
* The viewports to exclude this tree node from.
|
|
75
81
|
*/
|
|
@@ -86,6 +92,10 @@ export interface ITreeNode<T extends ITreeNode<any, ITreeNodeData<any>>, U exten
|
|
|
86
92
|
* The transformation to be applied to this tree node.
|
|
87
93
|
*/
|
|
88
94
|
transformations: ITransformation[];
|
|
95
|
+
/**
|
|
96
|
+
* The update callback for the converted object of the tree node.
|
|
97
|
+
*/
|
|
98
|
+
updateCallbackConvertedObject: ((newObj: unknown, oldObj: unknown, viewport: string) => void) | null;
|
|
89
99
|
/**
|
|
90
100
|
* Option to make this tree node visible. (default: true)
|
|
91
101
|
*/
|
|
@@ -95,13 +105,13 @@ export interface ITreeNode<T extends ITreeNode<any, ITreeNodeData<any>>, U exten
|
|
|
95
105
|
*
|
|
96
106
|
* @param child the child to add
|
|
97
107
|
*/
|
|
98
|
-
addChild(child:
|
|
108
|
+
addChild(child: ITreeNode): boolean;
|
|
99
109
|
/**
|
|
100
110
|
* Add a data item to node.
|
|
101
111
|
*
|
|
102
112
|
* @param data the data to add
|
|
103
113
|
*/
|
|
104
|
-
addData(data:
|
|
114
|
+
addData(data: ITreeNodeData): boolean;
|
|
105
115
|
/**
|
|
106
116
|
* Add a transformation to this node.
|
|
107
117
|
*
|
|
@@ -113,30 +123,30 @@ export interface ITreeNode<T extends ITreeNode<any, ITreeNodeData<any>>, U exten
|
|
|
113
123
|
* The data objects like GeometryData, MaterialData, etc. are cloned as well.
|
|
114
124
|
* Depending on the size of the node and the amount of children, this can therefore be relatively slow.
|
|
115
125
|
*/
|
|
116
|
-
clone():
|
|
126
|
+
clone(): ITreeNode;
|
|
117
127
|
/**
|
|
118
128
|
* Clones this node and all its children.
|
|
119
129
|
* The data objects like GeometryData, MaterialData, etc. are not copied in this case.
|
|
120
130
|
*/
|
|
121
|
-
cloneInstance():
|
|
131
|
+
cloneInstance(): ITreeNode;
|
|
122
132
|
/**
|
|
123
133
|
* Returns the child with the specified id
|
|
124
134
|
*/
|
|
125
|
-
getChild(id: string):
|
|
135
|
+
getChild(id: string): ITreeNode | undefined;
|
|
126
136
|
/**
|
|
127
137
|
* Returns the data item with the specified id
|
|
128
138
|
*/
|
|
129
|
-
getData(id: string):
|
|
139
|
+
getData(id: string): ITreeNodeData | undefined;
|
|
130
140
|
/**
|
|
131
|
-
* Test this node and all it's
|
|
141
|
+
* Test this node and all it's descendants for nodes with the specified name and return them in an array.
|
|
132
142
|
* @param name
|
|
133
143
|
*/
|
|
134
|
-
getNodesByName(name: string):
|
|
144
|
+
getNodesByName(name: string): ITreeNode[];
|
|
135
145
|
/**
|
|
136
|
-
* Test this nodes name and all it's
|
|
146
|
+
* Test this nodes name and all it's descendants name for nodes for the specified regex and return them in an array.
|
|
137
147
|
* @param regex
|
|
138
148
|
*/
|
|
139
|
-
getNodesByNameWithRegex(regex: RegExp):
|
|
149
|
+
getNodesByNameWithRegex(regex: RegExp): ITreeNode[];
|
|
140
150
|
/**
|
|
141
151
|
* Return the path to this node.
|
|
142
152
|
*/
|
|
@@ -150,13 +160,13 @@ export interface ITreeNode<T extends ITreeNode<any, ITreeNodeData<any>>, U exten
|
|
|
150
160
|
*
|
|
151
161
|
* @param child the child to check
|
|
152
162
|
*/
|
|
153
|
-
hasChild(child:
|
|
163
|
+
hasChild(child: ITreeNode): boolean;
|
|
154
164
|
/**
|
|
155
165
|
* Check for existence of a data item of this node.
|
|
156
166
|
*
|
|
157
167
|
* @param data the data item to check
|
|
158
168
|
*/
|
|
159
|
-
hasData(data:
|
|
169
|
+
hasData(data: ITreeNodeData): boolean;
|
|
160
170
|
/**
|
|
161
171
|
* Check for existence of a transformation of this node.
|
|
162
172
|
*
|
|
@@ -168,13 +178,13 @@ export interface ITreeNode<T extends ITreeNode<any, ITreeNodeData<any>>, U exten
|
|
|
168
178
|
*
|
|
169
179
|
* @param child the child to remove
|
|
170
180
|
*/
|
|
171
|
-
removeChild(child:
|
|
181
|
+
removeChild(child: ITreeNode): boolean;
|
|
172
182
|
/**
|
|
173
183
|
* Remove a data item from this node.
|
|
174
184
|
*
|
|
175
185
|
* @param data the data to remove
|
|
176
186
|
*/
|
|
177
|
-
removeData(data:
|
|
187
|
+
removeData(data: ITreeNodeData): boolean;
|
|
178
188
|
/**
|
|
179
189
|
* Remove a transformation from this node.
|
|
180
190
|
*
|
|
@@ -186,16 +196,19 @@ export interface ITreeNode<T extends ITreeNode<any, ITreeNodeData<any>>, U exten
|
|
|
186
196
|
*
|
|
187
197
|
* @param callback
|
|
188
198
|
*/
|
|
189
|
-
traverse(callback: (node:
|
|
199
|
+
traverse(callback: (node: ITreeNode) => void): void;
|
|
190
200
|
/**
|
|
191
201
|
* Traverse this node and all it's children and executes the callback for all data items of them
|
|
192
202
|
*
|
|
193
203
|
* @param callback
|
|
194
204
|
*/
|
|
195
|
-
traverseData(callback: (data:
|
|
205
|
+
traverseData(callback: (data: ITreeNodeData) => void): void;
|
|
196
206
|
/**
|
|
197
207
|
* Update the version.
|
|
208
|
+
*
|
|
209
|
+
* @param parents if true, the version of all parents will be updated as well (default: true)
|
|
210
|
+
* @param children if true, the version of all children will be updated as well (default: true)
|
|
198
211
|
*/
|
|
199
|
-
updateVersion(): void;
|
|
212
|
+
updateVersion(parents?: boolean, children?: boolean): void;
|
|
200
213
|
}
|
|
201
214
|
//# sourceMappingURL=ITreeNode.d.ts.map
|