@combeenation/3d-viewer 8.0.0 → 8.1.0-alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/lib-cjs/api/classes/parameter.d.ts +27 -0
  2. package/dist/lib-cjs/api/classes/parameter.js +27 -0
  3. package/dist/lib-cjs/api/classes/parameter.js.map +1 -1
  4. package/dist/lib-cjs/api/classes/variant.d.ts +8 -0
  5. package/dist/lib-cjs/api/classes/variant.js +12 -0
  6. package/dist/lib-cjs/api/classes/variant.js.map +1 -1
  7. package/dist/lib-cjs/api/classes/viewer.d.ts +2 -2
  8. package/dist/lib-cjs/api/classes/viewer.js +9 -8
  9. package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
  10. package/dist/lib-cjs/api/manager/gltfExportManager.d.ts +1 -0
  11. package/dist/lib-cjs/api/manager/gltfExportManager.js +7 -2
  12. package/dist/lib-cjs/api/manager/gltfExportManager.js.map +1 -1
  13. package/dist/lib-cjs/api/manager/tagManager.d.ts +25 -23
  14. package/dist/lib-cjs/api/manager/tagManager.js +153 -89
  15. package/dist/lib-cjs/api/manager/tagManager.js.map +1 -1
  16. package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +1 -1
  17. package/dist/lib-cjs/api/manager/variantInstanceManager.js +5 -7
  18. package/dist/lib-cjs/api/manager/variantInstanceManager.js.map +1 -1
  19. package/dist/lib-cjs/api/util/globalTypes.d.ts +16 -4
  20. package/dist/lib-cjs/api/util/structureHelper.d.ts +6 -6
  21. package/dist/lib-cjs/api/util/structureHelper.js +31 -28
  22. package/dist/lib-cjs/api/util/structureHelper.js.map +1 -1
  23. package/dist/lib-cjs/buildinfo.json +1 -1
  24. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  25. package/package.json +2 -2
  26. package/src/api/classes/parameter.ts +30 -0
  27. package/src/api/classes/variant.ts +14 -0
  28. package/src/api/classes/viewer.ts +12 -14
  29. package/src/api/manager/gltfExportManager.ts +8 -3
  30. package/src/api/manager/tagManager.ts +178 -119
  31. package/src/api/manager/variantInstanceManager.ts +5 -8
  32. package/src/api/util/globalTypes.ts +20 -4
  33. package/src/api/util/structureHelper.ts +29 -27
@@ -1,58 +1,60 @@
1
1
  import { Element } from '../classes/element';
2
2
  import { Variant } from '../classes/variant';
3
3
  import { VariantInstance } from '../classes/variantInstance';
4
- import { Mesh } from '@babylonjs/core/Meshes/mesh';
4
+ import { GltfExportManager } from '../manager/gltfExportManager';
5
+ import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
5
6
  import { Tags } from '@babylonjs/core/Misc/tags';
6
7
 
7
8
  /**
8
- * Find out if a mesh is part of a list of excluded geometry
9
- * @param mesh BJS mesh
9
+ * Find out if a node is part of a list of excluded geometry
10
+ * @param node BJS node
10
11
  * @param list list of excluded geometry
11
- * @returns boolean based on whether mesh (or one of its parents) was found in list
12
+ * @returns boolean based on whether node (or one of its parents) was found in list
12
13
  */
13
- const isMeshIncludedInExclusionList = function (mesh: Mesh, list: ExcludedGeometryList): boolean {
14
- const checkMesh = (inputMesh: Mesh, meshToCheck: Mesh) => {
15
- return inputMesh.uniqueId === meshToCheck.uniqueId;
14
+ const isNodeIncludedInExclusionList = function (node: TransformNode, list: ExcludedGeometryList): boolean {
15
+ const checkNode = (inputNode: TransformNode, nodeToCheck: TransformNode) => {
16
+ return inputNode.uniqueId === nodeToCheck.uniqueId;
16
17
  };
17
- const checkElement = (inputEl: Element, meshToCheck: Mesh) => {
18
- return inputEl.meshesFlat.some(m => checkMesh(m, meshToCheck));
18
+ const checkElement = (inputEl: Element, nodeToCheck: TransformNode) => {
19
+ return inputEl.nodesFlat.some(m => checkNode(m, nodeToCheck));
19
20
  };
20
- const checkVariant = (inputVariant: Variant, meshToCheck: Mesh) => {
21
- return inputVariant.elements.some(el => checkElement(el, meshToCheck));
21
+ const checkVariant = (inputVariant: Variant, nodeToCheck: TransformNode) => {
22
+ return inputVariant.elements.some(el => checkElement(el, nodeToCheck));
22
23
  };
23
- const checkVariantInstance = (inputVarInst: VariantInstance, meshToCheck: Mesh) => {
24
- return inputVarInst.variant.elements.some(el => checkElement(el, meshToCheck));
24
+ const checkVariantInstance = (inputVarInst: VariantInstance, nodeToCheck: TransformNode) => {
25
+ return inputVarInst.variant.elements.some(el => checkElement(el, nodeToCheck));
25
26
  };
26
- const checkTagManagerSubject = (inputSubject: TagManagerSubject, meshToCheck: Mesh) => {
27
- const nameMatches = inputSubject.nodeName && inputSubject.nodeName === meshToCheck.name;
28
- const tagMatches = inputSubject.tagName && Tags.MatchesQuery(mesh, inputSubject.tagName);
27
+ const checkTagManagerSubject = (inputSubject: TagManagerSubject, nodeToCheck: TransformNode) => {
28
+ const nodeName = nodeToCheck.metadata?.[GltfExportManager.NAME_BEFORE_EXPORT_METADATA_PROPERTY] ?? nodeToCheck.name;
29
+ const nameMatches = inputSubject.nodeName && inputSubject.nodeName === nodeName;
30
+ const tagMatches = inputSubject.tagName && Tags.MatchesQuery(nodeToCheck, inputSubject.tagName);
29
31
  return nameMatches || tagMatches;
30
32
  };
31
- const check = (geometryToExclude: ExcludedGeometry, mesh: Mesh) => {
33
+ const check = (geometryToExclude: ExcludedGeometry, node: TransformNode) => {
32
34
  if (geometryToExclude instanceof VariantInstance) {
33
- return checkVariantInstance(geometryToExclude, mesh);
35
+ return checkVariantInstance(geometryToExclude, node);
34
36
  }
35
37
  if (geometryToExclude instanceof Variant) {
36
- return checkVariant(geometryToExclude, mesh);
38
+ return checkVariant(geometryToExclude, node);
37
39
  }
38
40
  if (geometryToExclude instanceof Element) {
39
- return checkElement(geometryToExclude, mesh);
41
+ return checkElement(geometryToExclude, node);
40
42
  }
41
- if (geometryToExclude instanceof Mesh) {
42
- return checkMesh(geometryToExclude, mesh);
43
+ if (geometryToExclude instanceof TransformNode) {
44
+ return checkNode(geometryToExclude, node);
43
45
  }
44
46
  if ((geometryToExclude as TagManagerSubject).tagName || (geometryToExclude as TagManagerSubject).nodeName) {
45
- return checkTagManagerSubject(geometryToExclude as TagManagerSubject, mesh);
47
+ return checkTagManagerSubject(geometryToExclude as TagManagerSubject, node);
46
48
  }
47
49
  return false;
48
50
  };
49
51
 
50
- let isExcluded = list.some(geometryToExclude => check(geometryToExclude, mesh));
51
- if (!isExcluded && mesh.parent instanceof Mesh) {
52
- isExcluded = isMeshIncludedInExclusionList(mesh.parent, list);
52
+ let isExcluded = list.some(geometryToExclude => check(geometryToExclude, node));
53
+ if (!isExcluded && node.parent instanceof TransformNode) {
54
+ isExcluded = isNodeIncludedInExclusionList(node.parent, list);
53
55
  }
54
56
 
55
57
  return isExcluded;
56
58
  };
57
59
 
58
- export { isMeshIncludedInExclusionList };
60
+ export { isNodeIncludedInExclusionList };