@crystaldesign/real-time-viewer 25.14.0-rc.6 → 25.14.0-rc.8

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.
@@ -3871,16 +3871,41 @@ function _createForOfIteratorHelper$1(r, e) { var t = "undefined" != typeof Symb
3871
3871
  function _unsupportedIterableToArray$1(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$1(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; } }
3872
3872
  function _arrayLikeToArray$1(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
3873
3873
  function findMaterials(cache) {
3874
+ var matsOnMeshes = {};
3874
3875
  //! parent = the parent from which on every child should receive the Material
3875
3876
  //! id = the id which points to the material that should be assigned
3876
3877
  var setMaterials = function setMaterials(onNode, mat) {
3877
- if (onNode !== null && onNode !== void 0 && onNode._isMesh) onNode.material = mat;
3878
+ if (onNode !== null && onNode !== void 0 && onNode._isMesh) {
3879
+ matsOnMeshes[onNode.uniqueId] = {
3880
+ mat: mat,
3881
+ onNode: onNode
3882
+ };
3883
+ onNode.material = mat;
3884
+ }
3878
3885
  var _iterator = _createForOfIteratorHelper$1(onNode.getChildMeshes()),
3879
3886
  _step;
3880
3887
  try {
3888
+ var _loop = function _loop() {
3889
+ var mesh = _step.value;
3890
+ var existing = Object.keys(matsOnMeshes).find(function (key) {
3891
+ return key == mesh.uniqueId.toString();
3892
+ });
3893
+ if (existing) {
3894
+ if (onNode.uniqueId.toString() == existing) return 0; // continue
3895
+ if (onNode.getChildren().find(function (node) {
3896
+ return node.uniqueId.toString() == existing;
3897
+ })) return 0; // continue
3898
+ }
3899
+ matsOnMeshes[mesh.uniqueId] = {
3900
+ mat: mat,
3901
+ onNode: onNode
3902
+ };
3903
+ mesh.material = mat;
3904
+ },
3905
+ _ret;
3881
3906
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
3882
- var mesh = _step.value;
3883
- mesh.material = mat;
3907
+ _ret = _loop();
3908
+ if (_ret === 0) continue;
3884
3909
  }
3885
3910
  } catch (err) {
3886
3911
  _iterator.e(err);
@@ -3890,7 +3915,7 @@ function findMaterials(cache) {
3890
3915
  };
3891
3916
 
3892
3917
  //! find On Node from json to scene and then call setMaterials to apply it to all Children
3893
- var findOnNode = function findOnNode(mat, parent) {
3918
+ var findOnNode = function findOnNode(mat, parent, onNode) {
3894
3919
  if (!mat.onNodes) return;
3895
3920
  var children = parent.getChildTransformNodes(false);
3896
3921
  var _iterator2 = _createForOfIteratorHelper$1(children),
@@ -3898,20 +3923,10 @@ function findMaterials(cache) {
3898
3923
  try {
3899
3924
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3900
3925
  var child = _step2.value;
3901
- var _iterator3 = _createForOfIteratorHelper$1(mat.onNodes),
3902
- _step3;
3903
- try {
3904
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
3905
- var onNode = _step3.value;
3906
- if (onNode == "" || onNode == "ALL") setMaterials(child, mat.mat);
3907
- if (child.name.startsWith(onNode) || child.name.startsWith('geo_') && child.name.includes(onNode)) {
3908
- setMaterials(child, mat.mat);
3909
- }
3910
- }
3911
- } catch (err) {
3912
- _iterator3.e(err);
3913
- } finally {
3914
- _iterator3.f();
3926
+ if (onNode == "" || onNode == "ALL") setMaterials(child, mat.mat);
3927
+ if (child.name.startsWith(onNode) || child.name.startsWith('geo_') && child.name.includes(onNode)) {
3928
+ if (child.getChildren(undefined, true)) {}
3929
+ setMaterials(child, mat.mat);
3915
3930
  }
3916
3931
  }
3917
3932
  } catch (err) {
@@ -3920,29 +3935,22 @@ function findMaterials(cache) {
3920
3935
  _iterator2.f();
3921
3936
  }
3922
3937
  };
3923
- var _iterator4 = _createForOfIteratorHelper$1(cache),
3924
- _step4;
3938
+ var _iterator3 = _createForOfIteratorHelper$1(cache),
3939
+ _step3;
3925
3940
  try {
3926
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
3927
- var element = _step4.value;
3941
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
3942
+ var element = _step3.value;
3928
3943
  if (!element.material || !element.material.parents) continue;
3929
- var _iterator5 = _createForOfIteratorHelper$1(element.material.parents),
3930
- _step5;
3931
- try {
3932
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
3933
- var parent = _step5.value;
3934
- findOnNode(element.material, parent);
3935
- }
3936
- } catch (err) {
3937
- _iterator5.e(err);
3938
- } finally {
3939
- _iterator5.f();
3944
+ for (var idx = 0; idx < element.material.parents.length; idx++) {
3945
+ var parent = element.material.parents[idx];
3946
+ var onNode = element.material.onNodes[idx];
3947
+ findOnNode(element.material, parent, onNode);
3940
3948
  }
3941
3949
  }
3942
3950
  } catch (err) {
3943
- _iterator4.e(err);
3951
+ _iterator3.e(err);
3944
3952
  } finally {
3945
- _iterator4.f();
3953
+ _iterator3.f();
3946
3954
  }
3947
3955
  return findMaterials;
3948
3956
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/parser/findMaterials/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAY,MAAM,aAAa,CAAC;AAG9C,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,wBAgCnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/parser/findMaterials/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAY,MAAM,aAAa,CAAC;AAG9C,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,wBA6CnD"}