abstract-3d 4.0.0-beta.0 → 4.0.0-beta.10
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/README.md +34 -2
- package/lib/abstract-3d.d.ts +27 -1
- package/lib/abstract-3d.d.ts.map +1 -1
- package/lib/abstract-3d.js +26 -2
- package/lib/abstract-3d.js.map +1 -1
- package/lib/renderers/react/react.d.ts.map +1 -1
- package/lib/renderers/react/react.js +12 -5
- package/lib/renderers/react/react.js.map +1 -1
- package/lib/renderers/three/appearance/appearance.d.ts +5 -0
- package/lib/renderers/three/appearance/appearance.d.ts.map +1 -1
- package/lib/renderers/three/appearance/appearance.js +19 -6
- package/lib/renderers/three/appearance/appearance.js.map +1 -1
- package/lib/renderers/three/build/build.d.ts +2 -0
- package/lib/renderers/three/build/build.d.ts.map +1 -1
- package/lib/renderers/three/build/build.js +11 -4
- package/lib/renderers/three/build/build.js.map +1 -1
- package/lib/renderers/three/build/materials.d.ts +12 -4
- package/lib/renderers/three/build/materials.d.ts.map +1 -1
- package/lib/renderers/three/build/materials.js +121 -8
- package/lib/renderers/three/build/materials.js.map +1 -1
- package/lib/renderers/three/camera/gizmo.d.ts.map +1 -1
- package/lib/renderers/three/camera/gizmo.js +2 -1
- package/lib/renderers/three/camera/gizmo.js.map +1 -1
- package/lib/renderers/three/environment/studio.d.ts +9 -0
- package/lib/renderers/three/environment/studio.d.ts.map +1 -0
- package/lib/renderers/three/environment/studio.js +15 -0
- package/lib/renderers/three/environment/studio.js.map +1 -0
- package/lib/renderers/three/geometry/geometry.d.ts.map +1 -1
- package/lib/renderers/three/geometry/geometry.js +12 -3
- package/lib/renderers/three/geometry/geometry.js.map +1 -1
- package/lib/renderers/three/quality/quality.d.ts +5 -24
- package/lib/renderers/three/quality/quality.d.ts.map +1 -1
- package/lib/renderers/three/quality/quality.js +8 -44
- package/lib/renderers/three/quality/quality.js.map +1 -1
- package/lib/renderers/three/shadow/key-light.d.ts +6 -0
- package/lib/renderers/three/shadow/key-light.d.ts.map +1 -0
- package/lib/renderers/three/shadow/key-light.js +39 -0
- package/lib/renderers/three/shadow/key-light.js.map +1 -0
- package/lib/renderers/three/shadow/shadow.d.ts +21 -0
- package/lib/renderers/three/shadow/shadow.d.ts.map +1 -0
- package/lib/renderers/three/shadow/shadow.js +120 -0
- package/lib/renderers/three/shadow/shadow.js.map +1 -0
- package/lib/renderers/three/viewer/options.d.ts +18 -7
- package/lib/renderers/three/viewer/options.d.ts.map +1 -1
- package/lib/renderers/three/viewer/options.js +4 -1
- package/lib/renderers/three/viewer/options.js.map +1 -1
- package/lib/renderers/three/viewer/viewer.d.ts +15 -3
- package/lib/renderers/three/viewer/viewer.d.ts.map +1 -1
- package/lib/renderers/three/viewer/viewer.js +141 -85
- package/lib/renderers/three/viewer/viewer.js.map +1 -1
- package/package.json +1 -3
- package/src/abstract-3d.ts +60 -2
- package/src/renderers/ifc/ifc.test.ts +7 -5
- package/src/renderers/react/react.tsx +18 -7
- package/src/renderers/three/appearance/appearance.test.ts +41 -4
- package/src/renderers/three/appearance/appearance.ts +25 -7
- package/src/renderers/three/build/build.test.ts +18 -10
- package/src/renderers/three/build/build.ts +12 -4
- package/src/renderers/three/build/materials.ts +148 -11
- package/src/renderers/three/camera/gizmo.ts +2 -1
- package/src/renderers/three/compile/compile.test.ts +32 -19
- package/src/renderers/three/environment/studio.ts +18 -0
- package/src/renderers/three/geometry/geometry.test.ts +27 -1
- package/src/renderers/three/geometry/geometry.ts +13 -3
- package/src/renderers/three/quality/quality.test.ts +11 -4
- package/src/renderers/three/quality/quality.ts +7 -66
- package/src/renderers/three/shadow/key-light.ts +43 -0
- package/src/renderers/three/shadow/shadow.ts +170 -0
- package/src/renderers/three/viewer/options.ts +22 -8
- package/src/renderers/three/viewer/viewer.ts +151 -95
- package/src/custom_typings/n8ao.d.ts +0 -11
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Color } from "three";
|
|
2
|
+
import { materialTypes } from "../../../abstract-3d.js";
|
|
2
3
|
import { shade } from "../../../utils.js";
|
|
3
4
|
export const ERROR_IMG_KEY = "error";
|
|
4
5
|
/** Bit flags of how a target is highlighted, so only targets whose highlight changed need a repaint */
|
|
@@ -7,12 +8,16 @@ export const SELECTED = 2;
|
|
|
7
8
|
const disabledOpacity = 0.125;
|
|
8
9
|
const selectColor = "rgb(14,82,184)";
|
|
9
10
|
const textSelectColor = "rgb(0, 26, 65)";
|
|
11
|
+
/** Of the inverted hull around a relation's boxes */
|
|
12
|
+
const outlineColor = "rgb(0, 0, 0)";
|
|
10
13
|
const stateMaterials = {
|
|
11
14
|
Accept: { normal: "rgb(0,148,91)", metalness: 0.5, roughness: 0.5 },
|
|
12
15
|
Error: { normal: "#b82f3a", metalness: 0.5, roughness: 0.5 },
|
|
13
16
|
Warning: { normal: "rgb(240, 197, 48)", metalness: 0.5, roughness: 0.5 },
|
|
14
17
|
};
|
|
15
|
-
const unlit = { lit: false, metalness: 0, roughness: 1, transparent: false };
|
|
18
|
+
const unlit = { lit: false, metalness: 0, roughness: 1, transparent: false, castShadow: false };
|
|
19
|
+
/** Of glass without an opacity of its own */
|
|
20
|
+
const glassOpacity = 0.25;
|
|
16
21
|
export function getTargetStates(targets, structure) {
|
|
17
22
|
return targets.map((target) => {
|
|
18
23
|
const materialState = target.kind === "group" ? structure.activeComponents?.[target.id] : undefined;
|
|
@@ -29,13 +34,16 @@ export function getMaterialClass(item, { materialState, disabled }) {
|
|
|
29
34
|
case "dimension":
|
|
30
35
|
return { ...unlit, side: "front", transparent: (material.opacity ?? 1) < 1 };
|
|
31
36
|
default: {
|
|
37
|
+
// A material state's color and finish replace the material's
|
|
32
38
|
const mat = materialState ? stateMaterials[materialState] : material;
|
|
39
|
+
// Only a known type, as data may have a type of its own, e.g. a number
|
|
40
|
+
const type = item.role === "solid" && materialTypes.includes(mat.type) ? mat.type : undefined;
|
|
33
41
|
return {
|
|
34
42
|
lit: item.role === "solid",
|
|
35
|
-
metalness: mat.metalness ?? 0,
|
|
36
|
-
roughness: mat.roughness ?? 1,
|
|
43
|
+
...(type ? { type, metalness: 0, roughness: 0 } : { metalness: mat.metalness ?? 0, roughness: mat.roughness ?? 1 }),
|
|
37
44
|
side: item.role === "text" || material.backfaceCulling ? "front" : "double",
|
|
38
|
-
transparent: (material
|
|
45
|
+
transparent: getOpacity(material) < 1 || disabled,
|
|
46
|
+
castShadow: item.role === "solid" && getOpacity(material) === 1 && !disabled && material.castShadow !== false,
|
|
39
47
|
};
|
|
40
48
|
}
|
|
41
49
|
}
|
|
@@ -58,11 +66,12 @@ export function getItemColor(item, { materialState, disabled }, highlight, out)
|
|
|
58
66
|
const { material } = item.mesh;
|
|
59
67
|
const hovered = highlight % SELECTED === HOVERED;
|
|
60
68
|
const selected = highlight >= SELECTED;
|
|
61
|
-
const opacity = material
|
|
69
|
+
const opacity = getOpacity(material);
|
|
62
70
|
switch (item.style) {
|
|
63
71
|
case "relation":
|
|
64
|
-
case "outline":
|
|
65
72
|
return setColor(out, material.normal, hovered, 1);
|
|
73
|
+
case "outline":
|
|
74
|
+
return setColor(out, outlineColor, false, 1);
|
|
66
75
|
case "dimension":
|
|
67
76
|
return setColor(out, selected ? selectColor : material.normal, false, opacity);
|
|
68
77
|
default: {
|
|
@@ -79,6 +88,10 @@ export function getItemColor(item, { materialState, disabled }, highlight, out)
|
|
|
79
88
|
}
|
|
80
89
|
}
|
|
81
90
|
}
|
|
91
|
+
/** Glass is mostly see-through unless its material says otherwise */
|
|
92
|
+
function getOpacity(material) {
|
|
93
|
+
return material.opacity ?? (material.type === "glass" ? glassOpacity : 1);
|
|
94
|
+
}
|
|
82
95
|
const colors = new Map();
|
|
83
96
|
function setColor(out, style, hovered, opacity) {
|
|
84
97
|
const key = hovered ? `hovered ${style}` : style;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appearance.js","sourceRoot":"","sources":["../../../../src/renderers/three/appearance/appearance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAM1C,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"appearance.js","sourceRoot":"","sources":["../../../../src/renderers/three/appearance/appearance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAM1C,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AAkCrC,uGAAuG;AACvG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAE1B,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,qDAAqD;AACrD,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,cAAc,GAAoC;IACtD,MAAM,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;IACnE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;IAC5D,OAAO,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;CACzE,CAAC;AACF,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAW,CAAC;AACzG,6CAA6C;AAC7C,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,MAAM,UAAU,eAAe,CAAC,OAA8B,EAAE,SAAyB;IACvF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpG,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,eAAe,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;IACzH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAU,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAe;IACnF,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAC/B,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtC,KAAK,SAAS;YACZ,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACpC,KAAK,WAAW;YACd,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,SAAS,CAAC;YACR,6DAA6D;YAC7D,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrE,uEAAuE;YACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9G,OAAO;gBACL,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;gBAC1B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnH,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;gBAC3E,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ;gBACjD,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK;aAC9G,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,WAAmB,EAAE,KAAiB;IACjF,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,KAAK,WAAW,CAAC;IAC7D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7I,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,CAAC,CAAC;QACR;YACE,OAAO,CACL,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/I,CAAC;IACN,CAAC;AACH,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,YAAY,CAAC,IAAU,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAe,EAAE,SAAiB,EAAE,GAAY;IAChH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,SAAS,GAAG,QAAQ,KAAK,OAAO,CAAC;IACjD,MAAM,QAAQ,GAAG,SAAS,IAAI,QAAQ,CAAC;IACvC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACpD,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/C,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACjF,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,QAAQ;gBACpB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;oBACpB,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,WAAW;gBACf,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;oBACtC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,MAAM;oBACtC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtB,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM;gBACzB,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1C,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,SAAS,UAAU,CAAC,QAAkB;IACpC,OAAO,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;AAExC,SAAS,QAAQ,CAAC,GAAY,EAAE,KAAa,EAAE,OAAgB,EAAE,OAAe;IAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5F,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -16,6 +16,8 @@ export type BuildOptions = {
|
|
|
16
16
|
readonly materialStateImages?: Record<string, string>;
|
|
17
17
|
readonly useAlphaTest?: boolean;
|
|
18
18
|
readonly onTextureLoaded?: () => void;
|
|
19
|
+
/** Lit by the studio, whose reflections metals show; true by default */
|
|
20
|
+
readonly studio?: boolean;
|
|
19
21
|
};
|
|
20
22
|
export type BuiltScene = {
|
|
21
23
|
readonly compiled: CompiledScene;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/build/build.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,EACL,KAAK,YAAY,EAIjB,KAAK,QAAQ,EAEb,KAAK,OAAO,EAEb,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAcvC,iHAAiH;AAEjH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjD,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/build/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,16 +146,23 @@ function createPart(compiled, indices, targetStates, options, usedShapes, state)
|
|
|
146
146
|
return { geometry, local: shape.local };
|
|
147
147
|
});
|
|
148
148
|
if (first.role === "solid") {
|
|
149
|
-
|
|
149
|
+
const c = getMaterialClass(first, targetStates[first.target]);
|
|
150
|
+
const part = createSolidPart(entries, createClassMaterial(c, options.studio !== false));
|
|
151
|
+
Object.assign(part.object, { castShadow: c.castShadow, receiveShadow: c.lit });
|
|
152
|
+
return part;
|
|
150
153
|
}
|
|
151
154
|
// Images are hidden until their texture loads
|
|
152
155
|
const part = createImagePart(entries[0].geometry, entries[0].local, createImageMaterial(first.mesh.material.backfaceCulling, options.useAlphaTest ?? true));
|
|
153
156
|
const g = first.mesh.geometry;
|
|
154
157
|
if (g.type === "Image" && options.textures) {
|
|
155
158
|
const url = getImageUrl(g.image, targetStates[first.target].materialState, options.materialStateImages);
|
|
156
|
-
loadTexture(options.textures, url)
|
|
157
|
-
|
|
158
|
-
.
|
|
159
|
+
const entry = loadTexture(options.textures, url);
|
|
160
|
+
if (entry.texture) {
|
|
161
|
+
showImage(part.object, entry.texture, state, undefined);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
entry.loading.then((texture) => showImage(part.object, texture, state, options.onTextureLoaded)).catch(() => undefined);
|
|
165
|
+
}
|
|
159
166
|
}
|
|
160
167
|
return part;
|
|
161
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../src/renderers/three/build/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAEL,OAAO,EAMP,OAAO,GACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE5G,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG7F,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpG,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../src/renderers/three/build/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAEL,OAAO,EAMP,OAAO,GACR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE5G,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG7F,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpG,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AAsCpB,MAAM,UAAU,UAAU,CAAC,QAAuB,EAAE,OAAqB;IACvE,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;IACpE,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAClE,OAAO;QACT,CAAC;QACD,mDAAmD;QACnD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QACrE,MAAM,GAAG,GACP,IAAI,CAAC,IAAI,KAAK,OAAO;YACnB,CAAC,CAAC,GAAG,SAAS,UAAU,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC,EAAE;YAC5F,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;gBACpB,CAAC,CAAC,GAAG,SAAS,SAAS,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvF,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;oBACpB,CAAC,CAAC,GAAG,SAAS,OAAO;oBACrB,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;QAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YAC1B,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACrF,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAE,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAe;QACxB,QAAQ;QACR,YAAY;QACZ,IAAI;QACJ,UAAU;QACV,KAAK;QACL,UAAU;QACV,UAAU;QACV,WAAW;QACX,aAAa;QACb,aAAa;QACb,UAAU,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,YAAY,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,KAAK;KACN,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,UAAU,CAAC,CAAC,CAAE,IAAI,CAAC,EAAE,CAAC;YACxB,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAE,CAAE,EAAE,UAAU,CAAC,CAAC,CAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAC,KAAiB,EAAE,KAAiB;IAC7D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAQ,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;YAC1B,KAAK,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAE,CAAE,CAAC;gBAC1C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,KAAiB,EAAE,OAAe;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAQ,CAAC;IAChC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAE,CAAE,CAAC;QAChD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/G,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,cAAuB;IAClE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,MAAM,SAAS,GAAoB,EAAE,CAAC;IACtC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACzF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,aAAa,CAAC,KAAiB,EAAE,GAAiB;IAChE,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,CAAC;IAC5E,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAE,CAAE,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CACjB,QAAuB,EACvB,OAA8B,EAC9B,YAAwC,EACxC,OAAqB,EACrB,UAAuB,EACvB,KAAqC;IAErC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACxB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,cAAc,CACnB,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAC1C,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAClG,EACD,OAAO,CAAC,KAAK,CACd,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,cAAc,CACnB,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EACvG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACrH,CAAC;QACJ,SAAS,CAAC;YACR,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9F,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC5C,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1C,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC,CAAC;gBAC/D,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;gBACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/E,OAAO,IAAI,CAAC;YACd,CAAC;YACD,8CAA8C;YAC9C,MAAM,IAAI,GAAG,eAAe,CAC1B,OAAO,CAAC,CAAC,CAAE,CAAC,QAAQ,EACpB,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,EACjB,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,CACvF,CAAC;YACF,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC,aAAa,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;gBACzG,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACjD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC1H,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,IAA6C,EAC7C,OAA4B,EAC5B,KAAqC,EACrC,QAAkC;IAElC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5B,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -2,11 +2,19 @@ import { type Material, MeshBasicMaterial, type Texture } from "three";
|
|
|
2
2
|
import type { Image } from "../../../abstract-3d.js";
|
|
3
3
|
import type { MaterialClass, MaterialState } from "../appearance/appearance.js";
|
|
4
4
|
/** White materials, colored per instance, for each material class; images' materials and textures */
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Without reflections, i.e. without the studio, metals keep at most a little metalness, satin from the lights' highlights, as they'd be black, having
|
|
7
|
+
* almost no diffuse light
|
|
8
|
+
*/
|
|
9
|
+
export declare function createClassMaterial(c: MaterialClass, reflections: boolean): Material;
|
|
6
10
|
export declare function createImageMaterial(backfaceCulling: boolean | undefined, useAlphaTest: boolean): MeshBasicMaterial;
|
|
7
11
|
export declare function getImageUrl(image: Image, materialState: MaterialState | undefined, materialStateImages: Record<string, string> | undefined): string;
|
|
8
|
-
/**
|
|
9
|
-
export type
|
|
10
|
-
|
|
12
|
+
/** A url's texture, loaded once; `texture` is set once it's loaded, so a rebuild shows it right away instead of a frame later */
|
|
13
|
+
export type TextureEntry = {
|
|
14
|
+
loading: Promise<Texture | undefined>;
|
|
15
|
+
texture?: Texture;
|
|
16
|
+
};
|
|
17
|
+
export type TextureCache = Map<string, TextureEntry>;
|
|
18
|
+
export declare function loadTexture(cache: TextureCache, url: string): TextureEntry;
|
|
11
19
|
export declare function disposeTextures(cache: TextureCache): void;
|
|
12
20
|
//# sourceMappingURL=materials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/build/materials.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,QAAQ,EACb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/build/materials.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,QAAQ,EACb,iBAAiB,EAKjB,KAAK,OAAO,EAEb,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGhF,qGAAqG;AAErG;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,GAAG,QAAQ,CAWpF;AAwHD,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,iBAAiB,CAElH;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,GAAG,SAAS,EAAE,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAGnJ;AAED,iIAAiI;AACjI,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAErD,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAU1E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAKzD"}
|
|
@@ -1,11 +1,119 @@
|
|
|
1
1
|
import { createSVG } from "abstract-image";
|
|
2
|
-
import { BackSide, CanvasTexture, DoubleSide, FrontSide, LinearFilter, LinearMipmapLinearFilter, MeshBasicMaterial, MeshStandardMaterial, SRGBColorSpace, TextureLoader, } from "three";
|
|
2
|
+
import { BackSide, CanvasTexture, DoubleSide, FrontSide, LinearFilter, LinearMipmapLinearFilter, MeshBasicMaterial, MeshPhysicalMaterial, MeshStandardMaterial, SRGBColorSpace, TextureLoader, } from "three";
|
|
3
3
|
import { ERROR_IMG_KEY } from "../appearance/appearance.js";
|
|
4
4
|
/** White materials, colored per instance, for each material class; images' materials and textures */
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Without reflections, i.e. without the studio, metals keep at most a little metalness, satin from the lights' highlights, as they'd be black, having
|
|
7
|
+
* almost no diffuse light
|
|
8
|
+
*/
|
|
9
|
+
export function createClassMaterial(c, reflections) {
|
|
6
10
|
const side = c.side === "front" ? FrontSide : c.side === "back" ? BackSide : DoubleSide;
|
|
7
11
|
const common = { side, transparent: c.transparent, depthWrite: !c.transparent };
|
|
8
|
-
|
|
12
|
+
if (!c.lit) {
|
|
13
|
+
return new MeshBasicMaterial(common);
|
|
14
|
+
}
|
|
15
|
+
const metalness = c.type ? (finishes[c.type].metalness ?? 0) : c.metalness;
|
|
16
|
+
const material = c.type
|
|
17
|
+
? new MeshPhysicalMaterial({ ...common, ...finishes[c.type], metalness: reflections ? metalness : Math.min(metalness, plainMetalness) })
|
|
18
|
+
: new MeshStandardMaterial({ ...common, metalness: reflections ? metalness : Math.min(metalness, plainMetalness), roughness: c.roughness });
|
|
19
|
+
return Object.assign(material, { onBeforeCompile: roundEdges });
|
|
20
|
+
}
|
|
21
|
+
/** The most metalness without reflections */
|
|
22
|
+
const plainMetalness = 0.4;
|
|
23
|
+
/**
|
|
24
|
+
* The physical finish of each type of surface, in the material's color: metals reflect their color; galvanized and aluminum sheet keep some of their
|
|
25
|
+
* color diffuse, so faces that mirror the studio's dark surroundings aren't black; the others are dielectrics with a white reflection; painted sheet
|
|
26
|
+
* has a light clearcoat, fabric a soft sheen. Glass is a thin, smooth, mostly see-through surface, not refracting, which would render the scene once
|
|
27
|
+
* more each frame
|
|
28
|
+
*/
|
|
29
|
+
const finishes = {
|
|
30
|
+
painted: { metalness: 0, roughness: 0.45, clearcoat: 0.3, clearcoatRoughness: 0.25 },
|
|
31
|
+
galvanized: { metalness: 0.6, roughness: 0.6 },
|
|
32
|
+
aluminum: { metalness: 0.7, roughness: 0.45 },
|
|
33
|
+
stainless: { metalness: 1, roughness: 0.3 },
|
|
34
|
+
copper: { metalness: 1, roughness: 0.35 },
|
|
35
|
+
plastic: { metalness: 0, roughness: 0.55 },
|
|
36
|
+
rubber: { metalness: 0, roughness: 0.9 },
|
|
37
|
+
fabric: { metalness: 0, roughness: 1, sheen: 1, sheenRoughness: 0.8, sheenColor: 0x888888 },
|
|
38
|
+
glass: { metalness: 0, roughness: 0.05, specularIntensity: 1 },
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Shades the edges of boxes with a radius as rounded by it, so they catch light and reflections: the normal of a rounded box of the same size, from
|
|
42
|
+
* the signed distance function of a rounded box (Inigo Quilez's sdRoundBox), is used at each point of the sharp one. No extra geometry, and the
|
|
43
|
+
* radius stays the same along every edge, as boxes are one unit cube scaled to their size. Only the box's rounded edges bend; the outline stays
|
|
44
|
+
* sharp
|
|
45
|
+
*/
|
|
46
|
+
function roundEdges(shader) {
|
|
47
|
+
shader.vertexShader = shader.vertexShader
|
|
48
|
+
.replace("#include <common>", `#include <common>
|
|
49
|
+
attribute vec2 bevel;
|
|
50
|
+
varying float vBevel;
|
|
51
|
+
flat varying int vEdges;
|
|
52
|
+
varying vec3 vBoxPoint;
|
|
53
|
+
varying vec3 vBoxHalf;
|
|
54
|
+
varying mat3 vBoxRotation;`)
|
|
55
|
+
.replace("#include <batching_vertex>", `#include <batching_vertex>
|
|
56
|
+
#ifdef USE_BATCHING
|
|
57
|
+
vec3 boxSize = vec3( length( batchingMatrix[ 0 ].xyz ), length( batchingMatrix[ 1 ].xyz ), length( batchingMatrix[ 2 ].xyz ) );
|
|
58
|
+
mat3 boxRotation = mat3( batchingMatrix[ 0 ].xyz / boxSize.x, batchingMatrix[ 1 ].xyz / boxSize.y, batchingMatrix[ 2 ].xyz / boxSize.z );
|
|
59
|
+
#else
|
|
60
|
+
vec3 boxSize = vec3( 1.0 );
|
|
61
|
+
mat3 boxRotation = mat3( 1.0 );
|
|
62
|
+
#endif
|
|
63
|
+
// From the box's own axes to view space, where the fragment shader's normal is
|
|
64
|
+
vBoxRotation = normalMatrix * boxRotation;
|
|
65
|
+
vBevel = bevel.x;
|
|
66
|
+
vEdges = int( bevel.y );
|
|
67
|
+
vBoxHalf = boxSize * 0.5;
|
|
68
|
+
vBoxPoint = position * boxSize;`);
|
|
69
|
+
shader.fragmentShader = shader.fragmentShader
|
|
70
|
+
.replace("#include <common>", `#include <common>
|
|
71
|
+
varying float vBevel;
|
|
72
|
+
flat varying int vEdges;
|
|
73
|
+
varying vec3 vBoxPoint;
|
|
74
|
+
varying vec3 vBoxHalf;
|
|
75
|
+
varying mat3 vBoxRotation;`)
|
|
76
|
+
.replace("#include <normal_fragment_maps>", `#include <normal_fragment_maps>
|
|
77
|
+
float edgeShade = 1.0;
|
|
78
|
+
if ( vBevel > 0.0 ) {
|
|
79
|
+
// At least 2 pixels wide, so a rounded edge far away is a soft line instead of a jagged sub-pixel highlight, and at most half the box; a radius
|
|
80
|
+
// smaller than that bends the normal only partly, so far edges don't catch more light than their size
|
|
81
|
+
vec3 pixel = fwidth( vBoxPoint );
|
|
82
|
+
float minRadius = 2.0 * max( pixel.x, max( pixel.y, pixel.z ) );
|
|
83
|
+
float radius = min( max( vBevel, minRadius ), min( vBoxHalf.x, min( vBoxHalf.y, vBoxHalf.z ) ) );
|
|
84
|
+
float bend = min( vBevel / minRadius, 1.0 );
|
|
85
|
+
vec3 near = max( abs( vBoxPoint ) - ( vBoxHalf - radius ), 0.0 );
|
|
86
|
+
// Whether the edge along x, y and z here is rounded, its bit by which sides it's between, as boxEdges orders them
|
|
87
|
+
ivec3 high = ivec3( greaterThan( vBoxPoint, vec3( 0.0 ) ) );
|
|
88
|
+
bvec3 edge = notEqual( ( ivec3( vEdges ) >> ( ivec3( 0, 4, 8 ) + high.yxx + 2 * high.zzy ) ) & 1, ivec3( 0 ) );
|
|
89
|
+
// An axis bends where the edge between its side and another side near the point is rounded
|
|
90
|
+
vec3 bends = vec3(
|
|
91
|
+
( edge.z && near.y > 0.0 ) || ( edge.y && near.z > 0.0 ),
|
|
92
|
+
( edge.z && near.x > 0.0 ) || ( edge.x && near.z > 0.0 ),
|
|
93
|
+
( edge.y && near.x > 0.0 ) || ( edge.x && near.y > 0.0 )
|
|
94
|
+
);
|
|
95
|
+
vec3 rounded = sign( vBoxPoint ) * near * bends;
|
|
96
|
+
if ( dot( rounded, rounded ) > 0.0 ) {
|
|
97
|
+
normal = normalize( mix( normal, normalize( vBoxRotation * normalize( rounded ) ) * faceDirection, bend ) );
|
|
98
|
+
}
|
|
99
|
+
// Light doesn't reach into the groove where rounded edges meet, so parts show where they start and end, also far away: how far into the edge
|
|
100
|
+
// a point is, from the face to its outermost line, is the bend of the axes other than the face's, which is bent by the whole radius
|
|
101
|
+
vec3 bent = abs( rounded );
|
|
102
|
+
float depth = min( ( bent.x + bent.y + bent.z - max( bent.x, max( bent.y, bent.z ) ) ) / radius, 1.0 );
|
|
103
|
+
edgeShade = 1.0 - 0.4 * depth * depth;
|
|
104
|
+
}`)
|
|
105
|
+
.replace("#include <aomap_fragment>", `#include <aomap_fragment>
|
|
106
|
+
reflectedLight.directDiffuse *= edgeShade;
|
|
107
|
+
reflectedLight.directSpecular *= edgeShade;
|
|
108
|
+
reflectedLight.indirectDiffuse *= edgeShade;
|
|
109
|
+
reflectedLight.indirectSpecular *= edgeShade;`)
|
|
110
|
+
.replace("#include <clearcoat_normal_fragment_maps>", `#include <clearcoat_normal_fragment_maps>
|
|
111
|
+
#ifdef USE_CLEARCOAT
|
|
112
|
+
// A painted finish's clearcoat follows the rounded edge too
|
|
113
|
+
if ( vBevel > 0.0 ) {
|
|
114
|
+
clearcoatNormal = normal;
|
|
115
|
+
}
|
|
116
|
+
#endif`);
|
|
9
117
|
}
|
|
10
118
|
export function createImageMaterial(backfaceCulling, useAlphaTest) {
|
|
11
119
|
return new MeshBasicMaterial({ side: backfaceCulling ? FrontSide : DoubleSide, alphaTest: useAlphaTest ? 0.8 : 0, transparent: true });
|
|
@@ -15,14 +123,19 @@ export function getImageUrl(image, materialState, materialStateImages) {
|
|
|
15
123
|
return errorUrl ?? (image.type === "AbstractImage" ? `data:image/svg+xml,${createSVG(image.image)}` : image.url);
|
|
16
124
|
}
|
|
17
125
|
export function loadTexture(cache, url) {
|
|
126
|
+
const cached = cache.get(url);
|
|
127
|
+
if (cached) {
|
|
128
|
+
return cached;
|
|
129
|
+
}
|
|
18
130
|
const svg = url.startsWith("data:image/svg+xml") || url.endsWith(".svg") || url.includes(".svg?");
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
131
|
+
const entry = { loading: svg ? loadSvg(url) : loader.loadAsync(url).catch(() => undefined) };
|
|
132
|
+
entry.loading = entry.loading.then((t) => (entry.texture = t && applyFilters(t)));
|
|
133
|
+
cache.set(url, entry);
|
|
134
|
+
return entry;
|
|
22
135
|
}
|
|
23
136
|
export function disposeTextures(cache) {
|
|
24
|
-
cache.forEach((
|
|
25
|
-
loading.then((texture) => texture?.dispose()).catch(() => undefined);
|
|
137
|
+
cache.forEach((entry) => {
|
|
138
|
+
entry.loading.then((texture) => texture?.dispose()).catch(() => undefined);
|
|
26
139
|
});
|
|
27
140
|
cache.clear();
|
|
28
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materials.js","sourceRoot":"","sources":["../../../../src/renderers/three/build/materials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,aAAa,EACb,UAAU,EACV,SAAS,EACT,YAAY,EACZ,wBAAwB,EAExB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EAEd,aAAa,GACd,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qGAAqG;AAErG,MAAM,UAAU,mBAAmB,CAAC,CAAgB;
|
|
1
|
+
{"version":3,"file":"materials.js","sourceRoot":"","sources":["../../../../src/renderers/three/build/materials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gizmo.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/camera/gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AAEH,MAAM,MAAM,cAAc,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,IAAI,MAAM,GAAG,QAAQ,GAAG,OAAO,EAAE,CAAC;AAE7F,MAAM,MAAM,eAAe,GAAG;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,mFAAmF;IACnF,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAA;CAAE,CACtE,GAAG;IACF,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CACvG,CAAC;AAKF,wBAAgB,WAAW,CACzB,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,EAC9C,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,cAAc,GACrB,aAAa,
|
|
1
|
+
{"version":3,"file":"gizmo.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/camera/gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AAEH,MAAM,MAAM,cAAc,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,IAAI,MAAM,GAAG,QAAQ,GAAG,OAAO,EAAE,CAAC;AAE7F,MAAM,MAAM,eAAe,GAAG;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,mFAAmF;IACnF,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAA;CAAE,CACtE,GAAG;IACF,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CACvG,CAAC;AAKF,wBAAgB,WAAW,CACzB,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,EAC9C,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,cAAc,GACrB,aAAa,CAgBf"}
|
|
@@ -11,7 +11,8 @@ export function createGizmo(camera, renderer, container, helper) {
|
|
|
11
11
|
size,
|
|
12
12
|
placement: helper.props?.alignment ?? "bottom-right",
|
|
13
13
|
offset: { left: mx - size / 2, right: mx - size / 2, top: my - size / 2, bottom: my - size / 2 },
|
|
14
|
-
|
|
14
|
+
// A family without a generic fallback, e.g. a web font, would otherwise fall back to the browser's serif
|
|
15
|
+
font: { family: `${family}, sans-serif`, weight },
|
|
15
16
|
...(helper.type === "Viewcube" ? getViewcubeOptions(helper.viewcubeProps ?? {}) : getAxesOptions(helper.viewportProps ?? {})),
|
|
16
17
|
});
|
|
17
18
|
gizmo.enabled = !(helper.type === "Viewport" && helper.viewportProps?.disabled);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gizmo.js","sourceRoot":"","sources":["../../../../src/renderers/three/camera/gizmo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAyCrD,MAAM,IAAI,GAAG,GAAG,CAAC;AACjB,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAU,CAAC;AAExD,MAAM,UAAU,WAAW,CACzB,MAA8C,EAC9C,QAAuB,EACvB,SAAsB,EACtB,MAAsB;IAEtB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;IACzF,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,8BAA8B,CAAC,GAAG,gCAAgC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACnI,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;QAChD,SAAS;QACT,IAAI;QACJ,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,cAAc;QACpD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE;QAChG,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"gizmo.js","sourceRoot":"","sources":["../../../../src/renderers/three/camera/gizmo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Texture } from "three";
|
|
2
|
+
/**
|
|
3
|
+
* The viewer's default environment: Poly Haven's "Studio Small 08" HDRI (CC0, polyhaven.com/a/studio_small_08), its 1k version downscaled to 512×256
|
|
4
|
+
* with a 2×2 box filter and stored as flat RGBE, base64 encoded. Its floor is a neutral light gray (0.9), blended in just below the horizon, as a
|
|
5
|
+
* product photo's white sweep, so metal facing forward or down mirrors a light floor, as the light backgrounds the viewer sits on, not a dark one. A
|
|
6
|
+
* module of its own, imported dynamically, so it's a chunk loaded only when the default environment is used
|
|
7
|
+
*/
|
|
8
|
+
export declare function loadStudio(): Promise<Texture>;
|
|
9
|
+
//# sourceMappingURL=studio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/environment/studio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,OAAO,EAAE,MAAM,OAAO,CAAC;AAGvE;;;;;GAKG;AAEH,wBAAgB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAI7C"}
|