abstract-3d 2.12.1 → 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.
Files changed (61) hide show
  1. package/lib/abstract-3d.d.ts +32 -5
  2. package/lib/abstract-3d.d.ts.map +1 -1
  3. package/lib/abstract-3d.js.map +1 -1
  4. package/lib/renderers/ifc/ifc-encoding.d.ts +5 -2
  5. package/lib/renderers/ifc/ifc-encoding.d.ts.map +1 -1
  6. package/lib/renderers/ifc/ifc-encoding.js +30 -7
  7. package/lib/renderers/ifc/ifc-encoding.js.map +1 -1
  8. package/lib/renderers/ifc/ifc-geometry.d.ts +4 -0
  9. package/lib/renderers/ifc/ifc-geometry.d.ts.map +1 -1
  10. package/lib/renderers/ifc/ifc-geometry.js +8 -0
  11. package/lib/renderers/ifc/ifc-geometry.js.map +1 -1
  12. package/lib/renderers/ifc/ifc.d.ts +36 -23
  13. package/lib/renderers/ifc/ifc.d.ts.map +1 -1
  14. package/lib/renderers/ifc/ifc.js +164 -67
  15. package/lib/renderers/ifc/ifc.js.map +1 -1
  16. package/lib/renderers/react/index.d.ts +0 -1
  17. package/lib/renderers/react/index.d.ts.map +1 -1
  18. package/lib/renderers/react/index.js.map +1 -1
  19. package/lib/renderers/react/react-dimension.d.ts +2 -2
  20. package/lib/renderers/react/react-dimension.d.ts.map +1 -1
  21. package/lib/renderers/react/react-dimension.js +2 -2
  22. package/lib/renderers/react/react-dimension.js.map +1 -1
  23. package/lib/renderers/react/react-group.d.ts +3 -2
  24. package/lib/renderers/react/react-group.d.ts.map +1 -1
  25. package/lib/renderers/react/react-group.js +3 -3
  26. package/lib/renderers/react/react-group.js.map +1 -1
  27. package/lib/renderers/react/react-material.d.ts +2 -2
  28. package/lib/renderers/react/react-material.d.ts.map +1 -1
  29. package/lib/renderers/react/react-material.js +3 -3
  30. package/lib/renderers/react/react-material.js.map +1 -1
  31. package/lib/renderers/react/react-relation.d.ts +10 -0
  32. package/lib/renderers/react/react-relation.d.ts.map +1 -0
  33. package/lib/renderers/react/react-relation.js +31 -0
  34. package/lib/renderers/react/react-relation.js.map +1 -0
  35. package/lib/renderers/react/react-scene.d.ts +4 -7
  36. package/lib/renderers/react/react-scene.d.ts.map +1 -1
  37. package/lib/renderers/react/react-scene.js +4 -4
  38. package/lib/renderers/react/react-scene.js.map +1 -1
  39. package/lib/renderers/react/react.d.ts +8 -7
  40. package/lib/renderers/react/react.d.ts.map +1 -1
  41. package/lib/renderers/react/react.js +2 -2
  42. package/lib/renderers/react/react.js.map +1 -1
  43. package/package.json +2 -2
  44. package/src/abstract-3d.ts +33 -6
  45. package/src/renderers/ifc/ifc-encoding.ts +31 -7
  46. package/src/renderers/ifc/ifc-geometry.ts +12 -0
  47. package/src/renderers/ifc/ifc.test.ts +285 -101
  48. package/src/renderers/ifc/ifc.ts +313 -98
  49. package/src/renderers/react/index.ts +0 -1
  50. package/src/renderers/react/react-dimension.tsx +3 -3
  51. package/src/renderers/react/react-group.test.ts +2 -2
  52. package/src/renderers/react/react-group.tsx +5 -4
  53. package/src/renderers/react/react-material.tsx +4 -4
  54. package/src/renderers/react/react-relation.tsx +86 -0
  55. package/src/renderers/react/react-scene.tsx +9 -21
  56. package/src/renderers/react/react.tsx +11 -14
  57. package/lib/renderers/react/react-hotspot.d.ts +0 -27
  58. package/lib/renderers/react/react-hotspot.d.ts.map +0 -1
  59. package/lib/renderers/react/react-hotspot.js +0 -37
  60. package/lib/renderers/react/react-hotspot.js.map +0 -1
  61. package/src/renderers/react/react-hotspot.tsx +0 -112
@@ -1 +1 @@
1
- {"version":3,"file":"react-group.js","sourceRoot":"","sources":["../../../src/renderers/react/react-group.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react-group.js","sourceRoot":"","sources":["../../../src/renderers/react/react-group.tsx"],"names":[],"mappings":"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"}
@@ -3,14 +3,14 @@ import { type MaterialParameters } from "three";
3
3
  import type { Material } from "../../abstract-3d.js";
4
4
  export type MaterialState = "Accept" | "Error" | "Warning";
5
5
  export declare const ERROR_IMG_KEY = "error";
6
- export declare function ReactMaterial({ material, selected, hovered, disabled, materialState, isText, isHotSpot, drawBackOnly, }: {
6
+ export declare function ReactMaterial({ material, selected, hovered, disabled, materialState, isText, isRelation, drawBackOnly, }: {
7
7
  readonly material: Material;
8
8
  readonly hovered?: boolean | undefined;
9
9
  readonly selected?: boolean;
10
10
  readonly disabled?: boolean;
11
11
  readonly materialState?: MaterialState | undefined;
12
12
  readonly isText: boolean;
13
- readonly isHotSpot?: boolean;
13
+ readonly isRelation?: boolean;
14
14
  readonly drawBackOnly?: boolean;
15
15
  }): React.JSX.Element;
16
16
  export declare const materialDefaults: MaterialParameters;
@@ -1 +1 @@
1
- {"version":3,"file":"react-material.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-material.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmC,KAAK,kBAAkB,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAC3D,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,MAAM,EACN,SAAS,EACT,YAAY,GACb,EAAE;IACD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6CpB;AAED,eAAO,MAAM,gBAAgB,EAAE,kBAK9B,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,QAAqF,CAAC;AAK9G,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAE9I"}
1
+ {"version":3,"file":"react-material.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-material.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmC,KAAK,kBAAkB,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAC3D,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,MAAM,EACN,UAAU,EACV,YAAY,GACb,EAAE;IACD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6CpB;AAED,eAAO,MAAM,gBAAgB,EAAE,kBAK9B,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,QAAqF,CAAC;AAK9G,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAE9I"}
@@ -4,14 +4,14 @@ import { BackSide, DoubleSide, FrontSide } from "three";
4
4
  import { shade } from "../../utils.js";
5
5
  const decreasedOpacity = 0.125;
6
6
  export const ERROR_IMG_KEY = "error";
7
- export function ReactMaterial({ material, selected, hovered, disabled, materialState, isText, isHotSpot, drawBackOnly, }) {
7
+ export function ReactMaterial({ material, selected, hovered, disabled, materialState, isText, isRelation, drawBackOnly, }) {
8
8
  const mat = !materialState ? material : materialState === "Accept" ? acceptMat : materialState === "Error" ? errorMar : warningMat;
9
9
  const opacity = material.opacity ?? materialDefaults.opacity;
10
10
  if (isText) {
11
11
  return (_jsx("meshBasicMaterial", { color: getColor(selected, hovered, mat, textSelectMat), side: FrontSide, transparent: true, ...(opacity < 1 ? { opacity } : materialDefaults) }, `mesh_material_text`));
12
12
  }
13
- if (isHotSpot) {
14
- return (_jsx("meshBasicMaterial", { color: getColor(selected, hovered, mat, selectMat), side: drawBackOnly === true ? BackSide : DoubleSide, depthTest: true, depthWrite: true, transparent: false, opacity: 1.0 }, "mesh_material_hotspot"));
13
+ if (isRelation) {
14
+ return (_jsx("meshBasicMaterial", { color: getColor(selected, hovered, mat, selectMat), side: drawBackOnly === true ? BackSide : DoubleSide, depthTest: true, depthWrite: true, transparent: false, opacity: 1.0 }, "mesh_material_relation"));
15
15
  }
16
16
  return (_jsx("meshStandardMaterial", { color: getColor(selected, hovered, mat, selectMat), roughness: mat.roughness, metalness: mat.metalness, side: material.backfaceCulling ? FrontSide : DoubleSide, ...(opacity < 1 || disabled
17
17
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"react-material.js","sourceRoot":"","sources":["../../../src/renderers/react/react-material.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react-material.js","sourceRoot":"","sources":["../../../src/renderers/react/react-material.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ThreeEvent } from "@react-three/fiber";
2
+ import React from "react";
3
+ import type { Relation } from "../../abstract-3d.js";
4
+ /** The shape of each active relation, e.g. where a component can be inserted on an air relation, clickable and darker when hovered */
5
+ export declare const ReactRelations: React.MemoExoticComponent<({ relations, activeRelations, onClickRelation, }: {
6
+ readonly relations: ReadonlyArray<Relation> | undefined;
7
+ readonly activeRelations: ReadonlyArray<string> | undefined;
8
+ readonly onClickRelation?: (relation: Relation, e: ThreeEvent<MouseEvent>) => void;
9
+ }) => React.JSX.Element>;
10
+ //# sourceMappingURL=react-relation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-relation.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-relation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAS,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAO5D,sIAAsI;AACtI,eAAO,MAAM,cAAc,+EAKtB;IACD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CACpF,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAStB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { vec3Scale } from "../../abstract-3d.js";
4
+ import { ReactMaterial } from "./react-material.js";
5
+ import { ReactMesh } from "./react-mesh.js";
6
+ const outlineMat = { normal: "rgb(0, 0, 0)", opacity: 1.0 };
7
+ /** The shape of each active relation, e.g. where a component can be inserted on an air relation, clickable and darker when hovered */
8
+ export const ReactRelations = React.memo(({ relations, activeRelations, onClickRelation, }) => (_jsx(_Fragment, { children: relations
9
+ ?.filter((r) => activeRelations?.includes(r.id))
10
+ .map((r) => (_jsx(ReactRelation, { relation: r, onClickRelation: onClickRelation }, r.id))) })));
11
+ function ReactRelation({ relation, onClickRelation, }) {
12
+ const [hovered, setHovered] = React.useState(false);
13
+ return (_jsx("group", { onClick: (e) => {
14
+ if (onClickRelation) {
15
+ e.stopPropagation();
16
+ onClickRelation(relation, e);
17
+ }
18
+ }, onPointerOver: (e) => {
19
+ e.stopPropagation();
20
+ document.body.style.cursor = "pointer";
21
+ setHovered(true);
22
+ }, onPointerOut: () => {
23
+ document.body.style.cursor = "auto";
24
+ setHovered(false);
25
+ }, onContextMenu: (e) => e.stopPropagation(), children: relation.groups?.map((g, i) => (_jsx(ReactRelationGroup, { g: g, hovered: hovered }, i))) }));
26
+ }
27
+ /** A group of a relation's shape, unlit, with a black outline around its boxes */
28
+ function ReactRelationGroup({ g, hovered }) {
29
+ return (_jsxs("group", { position: [g.pos.x, g.pos.y, g.pos.z], rotation: [g.rot?.x ?? 0, g.rot?.y ?? 0, g.rot?.z ?? 0], children: [g.meshes?.map((m, i) => (_jsxs(React.Fragment, { children: [_jsx(ReactMesh, { mesh: m, children: _jsx(ReactMaterial, { isText: false, isRelation: true, material: m.material, hovered: hovered }) }), m.geometry.type === "Box" && (_jsx(ReactMesh, { mesh: { ...m, geometry: { ...m.geometry, size: vec3Scale(m.geometry.size, 1.0125) } }, children: _jsx(ReactMaterial, { isText: false, isRelation: true, drawBackOnly: true, material: outlineMat, hovered: hovered }) }))] }, i))), g.groups?.map((c, i) => (_jsx(ReactRelationGroup, { g: c, hovered: hovered }, i)))] }));
30
+ }
31
+ //# sourceMappingURL=react-relation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-relation.js","sourceRoot":"","sources":["../../../src/renderers/react/react-relation.tsx"],"names":[],"mappings":"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"}
@@ -1,27 +1,24 @@
1
1
  import type { ThreeEvent } from "@react-three/fiber";
2
2
  import React from "react";
3
- import type { Scene, Group } from "../../abstract-3d.js";
4
- import type { HotSpotInfo } from "./react-hotspot.js";
3
+ import type { Scene, Group, Relation } from "../../abstract-3d.js";
5
4
  import type { MaterialState } from "./react-material.js";
6
5
  import type { ReactPopover } from "./react-types.js";
7
6
  export type SceneMouseEvent = ThreeEvent<MouseEvent>;
8
- export declare function ReactScene({ scene, selectedIds, hoveredIdsExternal, activeHotSpots, activeComponents, hotSpotTexts, showHotSpotTexts, showDimensions, useAlphaTest, materialStateImages, reactPopovers, onClickGroup, onHoverGroup, onContextMenuGroup, getTooltips, onClickHotSpot, createGroupKey, createGroupId, }: {
7
+ export declare function ReactScene({ scene, selectedIds, hoveredIdsExternal, activeRelations, activeComponents, showDimensions, useAlphaTest, materialStateImages, reactPopovers, onClickGroup, onHoverGroup, onContextMenuGroup, getTooltips, onClickRelation, createGroupKey, createGroupId, }: {
9
8
  readonly scene: Scene;
10
9
  readonly selectedIds: Record<string, boolean> | undefined;
11
10
  readonly hoveredIdsExternal: ReadonlyArray<string> | undefined;
12
- readonly activeHotSpots: Record<string, HotSpotInfo> | undefined;
11
+ readonly activeRelations: ReadonlyArray<string> | undefined;
13
12
  readonly activeComponents: Record<string, MaterialState> | undefined;
14
- readonly showHotSpotTexts: boolean;
15
13
  readonly showDimensions: boolean;
16
14
  readonly useAlphaTest?: boolean;
17
- readonly hotSpotTexts?: Record<string, string>;
18
15
  readonly materialStateImages?: Record<string, string>;
19
16
  readonly reactPopovers?: ReadonlyArray<ReactPopover>;
20
17
  readonly onClickGroup?: (id: string | undefined, rootData: Record<string, string> | undefined, data: Record<string, string> | undefined, e: SceneMouseEvent) => void;
21
18
  readonly onHoverGroup?: (id: string | undefined, rootData: Record<string, string> | undefined, data: Record<string, string> | undefined, e: SceneMouseEvent) => void;
22
19
  readonly onContextMenuGroup?: (id: string, rootData: Record<string, string> | undefined, data: Record<string, string> | undefined, left: number, top: number, e: SceneMouseEvent) => void;
23
20
  readonly getTooltips?: (id: string) => ReadonlyArray<ReactPopover>;
24
- readonly onClickHotSpot?: (hotSpot: HotSpotInfo, e: SceneMouseEvent) => void;
21
+ readonly onClickRelation?: (relation: Relation, e: SceneMouseEvent) => void;
25
22
  readonly createGroupKey?: (g: Group, idx: number, rootData: Record<string, string> | undefined, id: string) => string;
26
23
  readonly createGroupId?: (g: Group) => string;
27
24
  }): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"react-scene.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-scene.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react-scene.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-scene.tsx"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@ import { Html } from "@react-three/drei";
3
3
  import React from "react";
4
4
  import { ReactDimensions } from "./react-dimension.js";
5
5
  import { ReactGroup } from "./react-group.js";
6
- import { ReactHotSpots } from "./react-hotspot.js";
7
- export function ReactScene({ scene, selectedIds, hoveredIdsExternal, activeHotSpots, activeComponents, hotSpotTexts, showHotSpotTexts, showDimensions, useAlphaTest, materialStateImages, reactPopovers, onClickGroup, onHoverGroup, onContextMenuGroup, getTooltips, onClickHotSpot, createGroupKey, createGroupId, }) {
6
+ import { ReactRelations } from "./react-relation.js";
7
+ export function ReactScene({ scene, selectedIds, hoveredIdsExternal, activeRelations, activeComponents, showDimensions, useAlphaTest, materialStateImages, reactPopovers, onClickGroup, onHoverGroup, onContextMenuGroup, getTooltips, onClickRelation, createGroupKey, createGroupId, }) {
8
8
  return (_jsxs("group", { rotation: [scene.rotation_deprecated?.x ?? 0, scene.rotation_deprecated?.y ?? 0, scene.rotation_deprecated?.z ?? 0], position: [-(scene.center_deprecated?.x ?? 0), -(scene.center_deprecated?.y ?? 0), -(scene.center_deprecated?.z ?? 0)], children: [scene.groups.map((g, i) => {
9
9
  const id = createGroupId ? createGroupId(g) : "";
10
- return (_jsx(ReactGroup, { g: g, selectedIds: selectedIds, hotSpotsActive: activeHotSpots !== undefined, activeComponents: activeComponents, materialStateImages: materialStateImages, hoveredIdsExternal: hoveredIdsExternal, onClickGroup: onClickGroup, onHoverGroup: onHoverGroup, onContextMenuGroup: onContextMenuGroup, getTooltips: getTooltips, createGroupKey: createGroupKey, id: id, useAlphaTest: useAlphaTest, rootData: g.data }, createGroupKey ? createGroupKey(g, 0, g.data, id) : i));
11
- }), _jsx(ReactDimensions, { dimensions: scene.dimensions_deprecated, showDimensions: showDimensions, sceneRotation: scene.rotation_deprecated, sceneCenter: scene.center_deprecated, selectedIds: selectedIds, hotSpotsActive: activeHotSpots !== undefined, onClickGroup: onClickGroup, onHoverGroup: onHoverGroup, onContextMenuGroup: onContextMenuGroup }), _jsx(ReactHotSpots, { hotSpots: scene.hotSpots_deprecated, hotSpotZAdjPos: scene.size_deprecated.z / 2, activeHotSpots: activeHotSpots, hotSpotTexts: hotSpotTexts, onClickHotSpot: onClickHotSpot, showHotSpotTexts: showHotSpotTexts }), reactPopovers?.map((p) => (_jsx(Html, { position: [p.pos.x, p.pos.y, p.pos.z], center: true, pointerEvents: "none", style: { pointerEvents: "none" }, children: p.content }, p.id)))] }));
10
+ return (_jsx(ReactGroup, { g: g, selectedIds: selectedIds, relationsActive: activeRelations !== undefined, activeComponents: activeComponents, materialStateImages: materialStateImages, hoveredIdsExternal: hoveredIdsExternal, onClickGroup: onClickGroup, onHoverGroup: onHoverGroup, onContextMenuGroup: onContextMenuGroup, getTooltips: getTooltips, createGroupKey: createGroupKey, id: id, useAlphaTest: useAlphaTest, rootData: g.data }, createGroupKey ? createGroupKey(g, 0, g.data, id) : i));
11
+ }), _jsx(ReactDimensions, { dimensions: scene.dimensions_deprecated, showDimensions: showDimensions, sceneRotation: scene.rotation_deprecated, sceneCenter: scene.center_deprecated, selectedIds: selectedIds, relationsActive: activeRelations !== undefined, onClickGroup: onClickGroup, onHoverGroup: onHoverGroup, onContextMenuGroup: onContextMenuGroup }), _jsx(ReactRelations, { relations: scene.relations, activeRelations: activeRelations, onClickRelation: onClickRelation }), reactPopovers?.map((p) => (_jsx(Html, { position: [p.pos.x, p.pos.y, p.pos.z], center: true, pointerEvents: "none", style: { pointerEvents: "none" }, children: p.content }, p.id)))] }));
12
12
  }
13
13
  //# sourceMappingURL=react-scene.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-scene.js","sourceRoot":"","sources":["../../../src/renderers/react/react-scene.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react-scene.js","sourceRoot":"","sources":["../../../src/renderers/react/react-scene.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,GAmCd;IACC,OAAO,CACL,iBACE,QAAQ,EAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,CAAC,EACnH,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAErH,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzB,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,OAAO,CACL,KAAC,UAAU,IAET,CAAC,EAAE,CAAC,EACJ,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,KAAK,SAAS,EAC9C,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,EAAE,EAAE,EAAE,EACN,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI,IAdX,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAe1D,CACH,CAAC;YACJ,CAAC,CAAC,EACF,KAAC,eAAe,IACd,UAAU,EAAE,KAAK,CAAC,qBAAqB,EACvC,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,KAAK,CAAC,mBAAmB,EACxC,WAAW,EAAE,KAAK,CAAC,iBAAiB,EACpC,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,KAAK,SAAS,EAC9C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,GACtC,EACF,KAAC,cAAc,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,GAAI,EACjH,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,KAAC,IAAI,IAAY,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,QAAC,aAAa,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,YACjH,CAAC,CAAC,OAAO,IADD,CAAC,CAAC,EAAE,CAER,CACR,CAAC,IACI,CACT,CAAC;AACJ,CAAC"}
@@ -1,20 +1,21 @@
1
1
  import { type OrbitControlsProps } from "@react-three/drei";
2
2
  import { type CanvasProps, type ThreeEvent } from "@react-three/fiber";
3
3
  import React from "react";
4
- import type { Scene, View, Group } from "../../abstract-3d.js";
4
+ import type { Scene, View, Group, Relation } from "../../abstract-3d.js";
5
5
  import type { ControlsHelper, Camera, BufferZones } from "./react-camera.js";
6
- import type { HotSpotInfo } from "./react-hotspot.js";
7
6
  import type { MaterialState } from "./react-material.js";
8
7
  import type { ReactPopover } from "./react-types.js";
9
8
  type ReactProps = {
10
9
  readonly scene: Scene | undefined;
11
10
  readonly selectedIds: Record<string, boolean> | undefined;
12
- readonly activeHotSpots?: Record<string, HotSpotInfo> | undefined;
11
+ /**
12
+ * The ids of the relations whose shape is drawn to be clicked, e.g. where a component can be inserted. While defined, even when empty, only the
13
+ * groups whose material state is Accept can be clicked
14
+ */
15
+ readonly activeRelations?: ReadonlyArray<string> | undefined;
13
16
  readonly activeComponents?: Record<string, MaterialState> | undefined;
14
17
  readonly hoveredIdsExternal?: ReadonlyArray<string> | undefined;
15
- readonly showHotSpotTexts?: boolean;
16
18
  readonly showDimensions?: boolean;
17
- readonly hotSpotTexts?: Record<string, string>;
18
19
  readonly popovers?: ReadonlyArray<ReactPopover>;
19
20
  readonly useAnimations?: boolean;
20
21
  readonly camera?: Camera;
@@ -32,10 +33,10 @@ type ReactProps = {
32
33
  readonly onHoverGroup?: (id: string | undefined, rootData: Record<string, string> | undefined, data: Record<string, string> | undefined, e: ThreeEvent<MouseEvent>) => void;
33
34
  readonly onContextMenuGroup?: (id: string, rootData: Record<string, string> | undefined, data: Record<string, string> | undefined, left: number, top: number, e: ThreeEvent<MouseEvent>) => void;
34
35
  readonly getTooltips?: (id: string) => ReadonlyArray<ReactPopover>;
35
- readonly onClickHotSpot?: (hotSpot: HotSpotInfo, e: ThreeEvent<MouseEvent>) => void;
36
+ readonly onClickRelation?: (relation: Relation, e: ThreeEvent<MouseEvent>) => void;
36
37
  readonly createGroupKey?: (g: Group, idx: number, rootData: Record<string, string> | undefined, id: string) => string;
37
38
  readonly createGroupId?: (g: Group) => string;
38
39
  };
39
- export declare const render: React.MemoExoticComponent<({ scene, selectedIds, useOldMode, activeHotSpots, activeComponents, hoveredIdsExternal, hotSpotTexts, popovers: reactPopovers, showHotSpotTexts, showDimensions, useAnimations, camera, view, controlsHelper, canvasProps, orbitContolsProps, materialStateImages, sceneFallback, useAlphaTest, onClickGroup, onHoverGroup, onContextMenuGroup, getTooltips, onClickHotSpot, createGroupKey, createGroupId, bufferZones, fitPadding, }: ReactProps) => React.JSX.Element>;
40
+ export declare const render: React.MemoExoticComponent<({ scene, selectedIds, useOldMode, activeRelations, activeComponents, hoveredIdsExternal, popovers: reactPopovers, showDimensions, useAnimations, camera, view, controlsHelper, canvasProps, orbitContolsProps, materialStateImages, sceneFallback, useAlphaTest, onClickGroup, onHoverGroup, onContextMenuGroup, getTooltips, onClickRelation, createGroupKey, createGroupId, bufferZones, fitPadding, }: ReactProps) => React.JSX.Element>;
40
41
  export {};
41
42
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { EffectComposer, N8AO } from "@react-three/postprocessing";
5
5
  import React, { memo, useMemo } from "react";
6
6
  import { ReactCamera } from "./react-camera.js";
7
7
  import { ReactScene } from "./react-scene.js";
8
- export const render = memo(({ scene, selectedIds, useOldMode, activeHotSpots, activeComponents, hoveredIdsExternal, hotSpotTexts, popovers: reactPopovers, showHotSpotTexts = false, showDimensions = true, useAnimations = false, camera = { type: "Perspective" }, view = "front", controlsHelper, canvasProps, orbitContolsProps, materialStateImages, sceneFallback, useAlphaTest = true, onClickGroup, onHoverGroup, onContextMenuGroup, getTooltips, onClickHotSpot, createGroupKey, createGroupId, bufferZones, fitPadding, }) => {
8
+ export const render = memo(({ scene, selectedIds, useOldMode, activeRelations, activeComponents, hoveredIdsExternal, popovers: reactPopovers, showDimensions = true, useAnimations = false, camera = { type: "Perspective" }, view = "front", controlsHelper, canvasProps, orbitContolsProps, materialStateImages, sceneFallback, useAlphaTest = true, onClickGroup, onHoverGroup, onContextMenuGroup, getTooltips, onClickRelation, createGroupKey, createGroupId, bufferZones, fitPadding, }) => {
9
9
  const intensity = useOldMode ? 2 : 0.4;
10
10
  const suspenseFallback = useMemo(() => _jsx(Html, { center: true, children: sceneFallback ?? _jsx(_Fragment, {}) }), [sceneFallback]);
11
11
  return scene ? (_jsx(Canvas, { dpr: [1, window.devicePixelRatio], frameloop: "demand", ...canvasProps, children: _jsxs(React.Suspense, { fallback: suspenseFallback, children: [_jsx(ReactCamera, { bufferZones: bufferZones, fitPadding: fitPadding, scene: scene, useAnimations: useAnimations, camera: camera, view: view, controlsHelper: controlsHelper, orbitContolsProps: orbitContolsProps }), _jsx("ambientLight", { intensity: 3.5 }), _jsx("directionalLight", { position: [
@@ -28,6 +28,6 @@ export const render = memo(({ scene, selectedIds, useOldMode, activeHotSpots, ac
28
28
  -(scene.center_deprecated?.x ?? 0) + 1.5 * scene.size_deprecated.x,
29
29
  -(scene.center_deprecated?.y ?? 0),
30
30
  -(scene.center_deprecated?.z ?? 0),
31
- ], intensity: 0.4 }), _jsx(ReactScene, { scene: scene, selectedIds: selectedIds, activeHotSpots: activeHotSpots, activeComponents: activeComponents, showDimensions: showDimensions, showHotSpotTexts: showHotSpotTexts, hoveredIdsExternal: hoveredIdsExternal, hotSpotTexts: hotSpotTexts, reactPopovers: reactPopovers, materialStateImages: materialStateImages, onClickGroup: onClickGroup, onHoverGroup: onHoverGroup, onContextMenuGroup: onContextMenuGroup, getTooltips: getTooltips, onClickHotSpot: onClickHotSpot, createGroupKey: createGroupKey, createGroupId: createGroupId, useAlphaTest: useAlphaTest }), !useOldMode && (_jsx(EffectComposer, { multisampling: 8, children: _jsx(N8AO, { aoRadius: 40, denoiseSamples: 4, distanceFalloff: 0.2, intensity: 2, screenSpaceRadius: true, halfRes: true }) }))] }) })) : ((sceneFallback ?? _jsx(_Fragment, {})));
31
+ ], intensity: 0.4 }), _jsx(ReactScene, { scene: scene, selectedIds: selectedIds, activeRelations: activeRelations, activeComponents: activeComponents, showDimensions: showDimensions, hoveredIdsExternal: hoveredIdsExternal, reactPopovers: reactPopovers, materialStateImages: materialStateImages, onClickGroup: onClickGroup, onHoverGroup: onHoverGroup, onContextMenuGroup: onContextMenuGroup, getTooltips: getTooltips, onClickRelation: onClickRelation, createGroupKey: createGroupKey, createGroupId: createGroupId, useAlphaTest: useAlphaTest }), !useOldMode && (_jsx(EffectComposer, { multisampling: 8, children: _jsx(N8AO, { aoRadius: 40, denoiseSamples: 4, distanceFalloff: 0.2, intensity: 2, screenSpaceRadius: true, halfRes: true }) }))] }) })) : ((sceneFallback ?? _jsx(_Fragment, {})));
32
32
  });
33
33
  //# sourceMappingURL=react.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/renderers/react/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/renderers/react/react.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "abstract-3d",
3
- "version": "2.12.1",
4
- "gitHead": "60357004c7a11aa81f9e9ae780aad3ce2b295cc2",
3
+ "version": "3.0.0",
4
+ "gitHead": "8576d3983c981dddddc9ed676441e03fd92b6bd6",
5
5
  "description": "Abstract 3D",
6
6
  "license": "MIT",
7
7
  "author": "Divid AB <info@divid.se>",
@@ -4,13 +4,13 @@ import type { AbstractImage } from "abstract-image";
4
4
  export type Scene = {
5
5
  readonly size_deprecated: Vec3; //move size calculation to every renderer??
6
6
  readonly groups: ReadonlyArray<Group>;
7
+ readonly relations?: ReadonlyArray<Relation>;
7
8
  readonly data?: Record<string, string>;
8
9
  //should be removed
9
10
  readonly center_deprecated?: Vec3;
10
11
  readonly rotation_deprecated?: Vec3;
11
12
  //might be removed
12
13
  readonly dimensions_deprecated?: Dimensions;
13
- readonly hotSpots_deprecated?: ReadonlyArray<HotSpot>;
14
14
  };
15
15
  //dummy
16
16
  export type Renderer = "react" | "ai_schematic" | "ai_detailed" | "dxf";
@@ -67,20 +67,47 @@ export type DimensionBounds = {
67
67
  readonly threeD: Bounds3;
68
68
  };
69
69
 
70
- export type HotSpot = {
71
- readonly id: string;
72
- readonly mesh: Mesh;
73
- };
74
-
75
70
  export type Group = {
76
71
  readonly pos: Vec3;
77
72
  readonly rot?: Vec3;
78
73
  readonly groups?: ReadonlyArray<Group>;
79
74
  readonly meshes?: ReadonlyArray<Mesh>;
75
+ /**
76
+ * Identifies what the group is, e.g. for the relations and as the IFC GlobalId. Sibling groups with the same id are parts of the same thing, e.g.
77
+ * something in several places, and one IFC element
78
+ */
79
+ readonly id?: string;
80
+ readonly name?: string;
81
+ /** What the group is beyond its name, e.g. the IFC element's Description */
82
+ readonly description?: string;
83
+ /** The layer of the group's meshes and of the groups below it that don't have their own */
84
+ readonly layer?: string;
85
+ /** The application's own data, not read by the renderers */
80
86
  readonly data?: Record<string, string>;
81
87
  readonly animation?: Animation;
82
88
  };
83
89
 
90
+ /**
91
+ * A connection between two groups, e.g. where air flows from one section of a unit to the next, or a connection with one end, where something outside
92
+ * the scene connects to a group. `pos` and `rot` are in the scene's coordinates like the top-level groups, and the relation's local x points along
93
+ * the flow from `from` to `to`
94
+ */
95
+ export type Relation = {
96
+ readonly id: string;
97
+ /** The `id` of the group the flow comes from, none when it comes from outside the scene */
98
+ readonly from?: string;
99
+ /** The `id` of the group the flow goes to, none when it goes outside the scene */
100
+ readonly to?: string;
101
+ readonly name?: string;
102
+ readonly pos: Vec3;
103
+ readonly rot?: Vec3;
104
+ /**
105
+ * The relation's own shape, in the scene's coordinates like the top-level groups, e.g. merged into its IFC port's shape, or what the react renderer
106
+ * draws to be clicked when the relation is active
107
+ */
108
+ readonly groups?: ReadonlyArray<Group>;
109
+ };
110
+
84
111
  export type Mesh = {
85
112
  readonly material: Material;
86
113
  readonly geometry: Cylinder | Cone | Box | Line | CulledLine | Text | Polygon | Plane | Tube | Sphere | Shape | ImageMesh;
@@ -65,13 +65,37 @@ function compressGuid(bytes: ReadonlyArray<number>): string {
65
65
  return guid;
66
66
  }
67
67
 
68
- /** IFC GlobalId, derived from `uuid` when it's a valid uuid not used before in the file so re-exports keep the same ids, otherwise random */
69
- export function guid(m: MutableIfc, uuid?: string): string {
70
- const hex = uuid !== undefined && UUID_REGEX.test(uuid) ? uuid.replaceAll("-", "") : undefined;
71
- const fromUuid = hex && compressGuid(Array.from({ length: 16 }, (_, i) => parseInt(hex.slice(i * 2, i * 2 + 2), 16)));
72
- const id = fromUuid && !m.usedGuids.has(fromUuid) ? fromUuid : compressGuid(Array.from(crypto.getRandomValues(new Uint8Array(16))));
73
- m.usedGuids.add(id);
74
- return id;
68
+ /**
69
+ * IFC GlobalId derived from `id` so re-exports keep the same ids, from a uuid's own bytes and from a hash of any other id. Random without an id or
70
+ * when the id's GlobalId is already used in the file
71
+ */
72
+ export function guid(m: MutableIfc, id?: string): string {
73
+ const hex = id !== undefined && UUID_REGEX.test(id) ? id.replaceAll("-", "") : undefined;
74
+ const bytes = hex ? Array.from({ length: 16 }, (_, i) => parseInt(hex.slice(i * 2, i * 2 + 2), 16)) : id === undefined ? undefined : hash128(id);
75
+ const fromId = bytes && compressGuid(bytes);
76
+ const globalId = fromId && !m.usedGuids.has(fromId) ? fromId : compressGuid(Array.from(crypto.getRandomValues(new Uint8Array(16))));
77
+ m.usedGuids.add(globalId);
78
+ return globalId;
79
+ }
80
+
81
+ /** The 16 bytes of cyrb128, a fast non-cryptographic hash */
82
+ function hash128(s: string): ReadonlyArray<number> {
83
+ // oxlint-disable no-bitwise
84
+ let [h1, h2, h3, h4] = [1779033703, 3144134277, 1013904242, 2773480762];
85
+ for (let i = 0; i < s.length; i++) {
86
+ const k = s.charCodeAt(i);
87
+ h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
88
+ h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
89
+ h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
90
+ h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
91
+ }
92
+ h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);
93
+ h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);
94
+ h3 = Math.imul(h1 ^ (h3 >>> 17), 951274213);
95
+ h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);
96
+ h1 ^= h2 ^ h3 ^ h4;
97
+ return [h1, h2 ^ h1, h3 ^ h1, h4 ^ h1].flatMap((h) => [(h >>> 24) & 255, (h >>> 16) & 255, (h >>> 8) & 255, h & 255]);
98
+ // oxlint-enable no-bitwise
75
99
  }
76
100
 
77
101
  /** FILE_NAME header fields, `originatingSystem` is the application that produced the scene */
@@ -29,9 +29,21 @@ export type Triangulation = {
29
29
  readonly triangles: ReadonlyArray<readonly [number, number, number]>;
30
30
  };
31
31
 
32
+ /** Encoded IFC coordinates of a line's start and end */
33
+ export type Polyline = readonly [string, string];
34
+
32
35
  /** Abstract 3D is Y-up like three.js, IFC is Z-up */
33
36
  export const toIfc = (v: Vec3): Vec3 => vec3(v.x, -v.z, v.y);
34
37
 
38
+ /** The line's start and end in the coordinate system where its parent group is at parentPos/parentRot, undefined for geometries that aren't lines */
39
+ export function polyline(geometry: Mesh["geometry"], parentPos = vec3Zero, parentRot = vec3Zero): Polyline | undefined {
40
+ if (geometry.type !== "Line" && geometry.type !== "CulledLine") {
41
+ return undefined;
42
+ }
43
+ const ifcPoint = (p: Vec3): string => point(toIfc(vec3TransRot(p, parentPos, parentRot)));
44
+ return [ifcPoint(geometry.start), ifcPoint(geometry.end)];
45
+ }
46
+
35
47
  /**
36
48
  * Triangulates the mesh in the coordinate system where its parent group is at parentPos/parentRot, undefined for geometries without a solid surface
37
49
  * (lines, text, images)