@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.16.9 → 3.17.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.
@@ -1 +1 @@
1
- {"version":3,"file":"OutlineManager.d.ts","sourceRoot":"","sources":["../../../src/managers/postprocessing/OutlineManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAEtD,qBAAa,cAAc;IAUd,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAP7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAmB;gBAMX,gBAAgB,EAAE,eAAe;IAMvD,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAKnC,cAAc,IAAI,IAAI;IAKtB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAUzC,SAAS,CAAC,aAAa,EAAE,aAAa;IAKtC,0BAA0B;IAiB1B,aAAa,IAAI,SAAS,EAAE;CAKnC"}
1
+ {"version":3,"file":"OutlineManager.d.ts","sourceRoot":"","sources":["../../../src/managers/postprocessing/OutlineManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAEtD,qBAAa,cAAc;IAad,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAV7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,eAAe,CAA4C;IACnE,OAAO,CAAC,iBAAiB,CAAC,CAAa;gBAMV,gBAAgB,EAAE,eAAe;IAMvD,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IASnC,cAAc,IAAI,IAAI;IAU7B;;;;OAIG;IACI,SAAS,CACf,eAAe,EAAE,OAAO,EACxB,gBAAgB,EAAE,MAAM,IAAI,GAC1B,IAAI;IAMA,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAehD,wCAAwC;IACjC,SAAS,CAAC,aAAa,EAAE,aAAa;IAK7C;;;OAGG;IACI,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,IAAI;IAK/D,0BAA0B;IA+B1B,aAAa,IAAI,SAAS,EAAE;CAKnC"}
@@ -36,48 +36,105 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.OutlineManager = void 0;
37
37
  const THREE = __importStar(require("three"));
38
38
  class OutlineManager {
39
- // #endregion Properties (2)
39
+ // #endregion Properties (5)
40
40
  // #region Constructors (1)
41
41
  constructor(_renderingEngine) {
42
42
  this._renderingEngine = _renderingEngine;
43
43
  this._outlineNodes = [];
44
+ this._separateObjects = false;
45
+ this._perNodeEffects = new Map();
44
46
  }
45
47
  // #endregion Constructors (1)
46
- // #region Public Methods (5)
48
+ // #region Public Methods (8)
47
49
  addSelection(node) {
50
+ var _a;
48
51
  this._outlineNodes.push(node);
49
- this.updateOutlineEffectObjects();
52
+ if (this._separateObjects) {
53
+ (_a = this._onEffectsChanged) === null || _a === void 0 ? void 0 : _a.call(this);
54
+ }
55
+ else {
56
+ this.updateOutlineEffectObjects();
57
+ }
50
58
  }
51
59
  clearSelection() {
60
+ var _a;
52
61
  this._outlineNodes = [];
53
- this.updateOutlineEffectObjects();
62
+ if (this._separateObjects) {
63
+ this._perNodeEffects.clear();
64
+ (_a = this._onEffectsChanged) === null || _a === void 0 ? void 0 : _a.call(this);
65
+ }
66
+ else {
67
+ this.updateOutlineEffectObjects();
68
+ }
69
+ }
70
+ /**
71
+ * Called by PostProcessingManager during changeEffectPass to configure the
72
+ * rendering mode and register the callback that rebuilds the effect pass
73
+ * when the node selection changes.
74
+ */
75
+ configure(separateObjects, onEffectsChanged) {
76
+ this._separateObjects = separateObjects;
77
+ this._onEffectsChanged = onEffectsChanged;
78
+ this._perNodeEffects.clear();
54
79
  }
55
80
  removeSelection(node) {
81
+ var _a;
56
82
  const index = this._outlineNodes.indexOf(node);
57
83
  if (index !== -1) {
58
84
  this._outlineNodes.splice(index, 1);
59
- this.updateOutlineEffectObjects();
85
+ if (this._separateObjects) {
86
+ this._perNodeEffects.delete(node);
87
+ (_a = this._onEffectsChanged) === null || _a === void 0 ? void 0 : _a.call(this);
88
+ }
89
+ else {
90
+ this.updateOutlineEffectObjects();
91
+ }
60
92
  return true;
61
93
  }
62
94
  return false;
63
95
  }
96
+ /** Used in the default grouped mode. */
64
97
  setEffect(outlineEffect) {
65
98
  this._outlineEffect = outlineEffect;
66
99
  this.updateOutlineEffectObjects();
67
100
  }
101
+ /**
102
+ * Used in separateObjects mode. PostProcessingManager passes a fresh
103
+ * per-node map each time it rebuilds the effect pass.
104
+ */
105
+ setPerNodeEffects(effects) {
106
+ this._perNodeEffects = effects;
107
+ this.updateOutlineEffectObjects();
108
+ }
68
109
  updateOutlineEffectObjects() {
69
- this._outlineEffect.selection.clear();
70
- const objects = [];
71
- for (let i = 0; i < this._outlineNodes.length; i++) {
72
- const object = this._outlineNodes[i].convertedObject[this._renderingEngine.id];
73
- if (!object)
74
- continue;
75
- object.traverse((o) => {
76
- if (o instanceof THREE.Mesh)
77
- objects.push(o);
78
- });
110
+ if (this._separateObjects) {
111
+ for (const [node, effect] of this._perNodeEffects) {
112
+ effect.selection.clear();
113
+ const object = node.convertedObject[this._renderingEngine.id];
114
+ if (!object)
115
+ continue;
116
+ object.traverse((o) => {
117
+ if (o instanceof THREE.Mesh)
118
+ effect.selection.add(o);
119
+ });
120
+ }
121
+ }
122
+ else {
123
+ if (!this._outlineEffect)
124
+ return;
125
+ this._outlineEffect.selection.clear();
126
+ const objects = [];
127
+ for (let i = 0; i < this._outlineNodes.length; i++) {
128
+ const object = this._outlineNodes[i].convertedObject[this._renderingEngine.id];
129
+ if (!object)
130
+ continue;
131
+ object.traverse((o) => {
132
+ if (o instanceof THREE.Mesh)
133
+ objects.push(o);
134
+ });
135
+ }
136
+ this._outlineEffect.selection.set(objects);
79
137
  }
80
- this._outlineEffect.selection.set(objects);
81
138
  }
82
139
  selectedNodes() {
83
140
  return this._outlineNodes;
@@ -1 +1 @@
1
- {"version":3,"file":"OutlineManager.js","sourceRoot":"","sources":["../../../src/managers/postprocessing/OutlineManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6CAA+B;AAG/B,MAAa,cAAc;IAM1B,4BAA4B;IAE5B,2BAA2B;IAE3B,YAA6B,gBAAiC;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;QANtD,kBAAa,GAAgB,EAAE,CAAC;IAMyB,CAAC;IAElE,8BAA8B;IAE9B,6BAA6B;IAEtB,YAAY,CAAC,IAAe;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACnC,CAAC;IAEM,cAAc;QACpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACnC,CAAC;IAEM,eAAe,CAAC,IAAe;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,SAAS,CAAC,aAA4B;QAC5C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACnC,CAAC;IAEM,0BAA0B;QAChC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEtC,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,CACnD,IAAI,CAAC,gBAAgB,CAAC,EAAE,CACM,CAAC;YAChC,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEM,aAAa;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;CAGD;AA/DD,wCA+DC"}
1
+ {"version":3,"file":"OutlineManager.js","sourceRoot":"","sources":["../../../src/managers/postprocessing/OutlineManager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapediver/viewer.rendering-engine.rendering-engine-threejs",
3
- "version": "3.16.9",
3
+ "version": "3.17.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "Michael Oppitz <michael@shapediver.com>",
@@ -38,21 +38,21 @@
38
38
  "testEnvironment": "node"
39
39
  },
40
40
  "dependencies": {
41
- "@shapediver/viewer.data-engine.gltf-converter": "3.16.9",
42
- "@shapediver/viewer.data-engine.shared-types": "3.16.9",
43
- "@shapediver/viewer.data-engine.tag3d-engine": "3.16.9",
44
- "@shapediver/viewer.rendering-engine.animation-engine": "3.16.9",
45
- "@shapediver/viewer.rendering-engine.animation-frame-engine": "3.16.9",
46
- "@shapediver/viewer.rendering-engine.camera-engine": "3.16.9",
47
- "@shapediver/viewer.rendering-engine.canvas-engine": "3.16.9",
48
- "@shapediver/viewer.rendering-engine.intersection-engine": "3.16.9",
49
- "@shapediver/viewer.rendering-engine.light-engine": "3.16.9",
50
- "@shapediver/viewer.rendering-engine.rendering-engine": "3.16.9",
51
- "@shapediver/viewer.shared.global-access-objects": "3.16.9",
52
- "@shapediver/viewer.shared.math": "3.16.9",
53
- "@shapediver/viewer.shared.node-tree": "3.16.9",
54
- "@shapediver/viewer.shared.services": "3.16.9",
55
- "@shapediver/viewer.shared.types": "3.16.9",
41
+ "@shapediver/viewer.data-engine.gltf-converter": "3.17.0",
42
+ "@shapediver/viewer.data-engine.shared-types": "3.17.0",
43
+ "@shapediver/viewer.data-engine.tag3d-engine": "3.17.0",
44
+ "@shapediver/viewer.rendering-engine.animation-engine": "3.17.0",
45
+ "@shapediver/viewer.rendering-engine.animation-frame-engine": "3.17.0",
46
+ "@shapediver/viewer.rendering-engine.camera-engine": "3.17.0",
47
+ "@shapediver/viewer.rendering-engine.canvas-engine": "3.17.0",
48
+ "@shapediver/viewer.rendering-engine.intersection-engine": "3.17.0",
49
+ "@shapediver/viewer.rendering-engine.light-engine": "3.17.0",
50
+ "@shapediver/viewer.rendering-engine.rendering-engine": "3.17.0",
51
+ "@shapediver/viewer.shared.global-access-objects": "3.17.0",
52
+ "@shapediver/viewer.shared.math": "3.17.0",
53
+ "@shapediver/viewer.shared.node-tree": "3.17.0",
54
+ "@shapediver/viewer.shared.services": "3.17.0",
55
+ "@shapediver/viewer.shared.types": "3.17.0",
56
56
  "@tweenjs/tween.js": "18.6.4",
57
57
  "@types/stats.js": "0.17.4",
58
58
  "@types/three": "0.162.0",
@@ -61,5 +61,5 @@
61
61
  "stats.js": "0.17.0",
62
62
  "three": "0.162.0"
63
63
  },
64
- "gitHead": "a0c09ebab3b0b75f36130a56d9ed81436846e3c7"
64
+ "gitHead": "583d458927a50ca548f2f2d5dde84471f7708d4a"
65
65
  }