@base2datadesign/viewer-kit 0.2.19 → 0.2.21
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/dist/camera.d.ts.map +1 -1
- package/dist/camera.js +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/materials/architectural.d.ts +1 -0
- package/dist/materials/architectural.d.ts.map +1 -1
- package/dist/materials/architectural.js +19 -3
- package/package.json +1 -1
package/dist/camera.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,UAAU,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CACvB,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,KAAK,CAAC,QAAQ,EACtB,SAAS,yBAAyB,KACjC,yBA8CF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,KAAK,CAAC,IAAI,EAClB,YAAY,MAAM,EAClB,SAAS,iBAAiB,KACzB;IAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,UAAU,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CACvB,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,KAAK,CAAC,QAAQ,EACtB,SAAS,yBAAyB,KACjC,yBA8CF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,KAAK,CAAC,IAAI,EAClB,YAAY,MAAM,EAClB,SAAS,iBAAiB,KACzB;IAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAA;CAoBlD,CAAC"}
|
package/dist/camera.js
CHANGED
|
@@ -54,7 +54,8 @@ export const computeCameraFrame = (bounds, fovDegrees, config) => {
|
|
|
54
54
|
}
|
|
55
55
|
const padding = config?.padding ?? DEFAULT_FRAME_PADDING;
|
|
56
56
|
const direction = new THREE.Vector3(...(config?.direction ?? DEFAULT_FRAME_DIRECTION)).normalize();
|
|
57
|
-
const
|
|
57
|
+
const sphere = bounds.getBoundingSphere(new THREE.Sphere());
|
|
58
|
+
const radius = Math.max(0.5, sphere.radius);
|
|
58
59
|
const vFov = THREE.MathUtils.degToRad(fovDegrees);
|
|
59
60
|
const distance = (radius / Math.sin(vFov / 2)) * padding;
|
|
60
61
|
const position = center.clone().add(direction.multiplyScalar(distance));
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type { MaterialCatalogue, MaterialDefinition, MaterialId, MaterialColor,
|
|
|
10
10
|
export { getMaterialCatalogue, findMaterial, listMaterialsByCategory } from "./materials/catalogue";
|
|
11
11
|
export { getRenderMaterialMetadata } from "./materials/renderMetadata";
|
|
12
12
|
export { BASELINE_MATERIAL_PRESET_ID, MATERIAL_PRESET_DATA, listMaterialPresets, getMaterialPreset, resolveMaterialSlot, resolveMaterialPresetMaterials, } from "./materials/presets";
|
|
13
|
-
export { applyMaterialsToGroup, buildSurfaceMaterial, buildCatalogMaterial } from "./materials/architectural";
|
|
13
|
+
export { applyMaterialsToGroup, buildSurfaceMaterial, buildCatalogMaterial, setTextureBaseUrl, } from "./materials/architectural";
|
|
14
14
|
export * from "./uploads";
|
|
15
15
|
export { exportObject } from "./exports/three-export";
|
|
16
16
|
export type { ExportFormat } from "./exports/three-export";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { listScienceSkyOptions, getScienceSkyOption } from "./sky/scienceSky";
|
|
|
6
6
|
export { getMaterialCatalogue, findMaterial, listMaterialsByCategory } from "./materials/catalogue";
|
|
7
7
|
export { getRenderMaterialMetadata } from "./materials/renderMetadata";
|
|
8
8
|
export { BASELINE_MATERIAL_PRESET_ID, MATERIAL_PRESET_DATA, listMaterialPresets, getMaterialPreset, resolveMaterialSlot, resolveMaterialPresetMaterials, } from "./materials/presets";
|
|
9
|
-
export { applyMaterialsToGroup, buildSurfaceMaterial, buildCatalogMaterial } from "./materials/architectural";
|
|
9
|
+
export { applyMaterialsToGroup, buildSurfaceMaterial, buildCatalogMaterial, setTextureBaseUrl, } from "./materials/architectural";
|
|
10
10
|
export * from "./uploads";
|
|
11
11
|
export { exportObject } from "./exports/three-export";
|
|
12
12
|
export { downloadBlob } from "./exports/download";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
2
|
import type { MaterialId, MaterialsConfig, SurfaceMaterialConfig } from "./types";
|
|
3
|
+
export declare const setTextureBaseUrl: (baseUrl?: string) => void;
|
|
3
4
|
export declare function buildSurfaceMaterial(surface: "walls" | "floor" | "ceiling", config: SurfaceMaterialConfig): THREE.MeshStandardMaterial;
|
|
4
5
|
export declare function buildCatalogMaterial(materialId: MaterialId, overrides?: Partial<SurfaceMaterialConfig>): THREE.MeshStandardMaterial;
|
|
5
6
|
export declare function applyMaterialsToGroup(group: THREE.Group, materialsConfig?: MaterialsConfig | null, floorLevel?: number, ceilingHeight?: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architectural.d.ts","sourceRoot":"","sources":["../../src/materials/architectural.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"architectural.d.ts","sourceRoot":"","sources":["../../src/materials/architectural.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAalF,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,SAMjD,CAAC;AA0GF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,MAAM,EAAE,qBAAqB,8BAEzG;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,8BAiBtG;AA4BD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,EACxC,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI,CA+BN"}
|
|
@@ -5,13 +5,29 @@ const clamp01 = (value) => Math.min(Math.max(value, 0), 1);
|
|
|
5
5
|
const colorFromRGB = (rgb) => new THREE.Color(rgb.r / 255, rgb.g / 255, rgb.b / 255);
|
|
6
6
|
const textureLoader = new THREE.TextureLoader();
|
|
7
7
|
const textureCache = new Map();
|
|
8
|
+
let textureBaseUrl = "";
|
|
9
|
+
export const setTextureBaseUrl = (baseUrl) => {
|
|
10
|
+
if (!baseUrl) {
|
|
11
|
+
textureBaseUrl = "";
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
textureBaseUrl = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
|
|
15
|
+
};
|
|
16
|
+
const resolveTexturePath = (path) => {
|
|
17
|
+
if (!textureBaseUrl)
|
|
18
|
+
return path;
|
|
19
|
+
if (path.startsWith("/"))
|
|
20
|
+
return `${textureBaseUrl}${path}`;
|
|
21
|
+
return path;
|
|
22
|
+
};
|
|
8
23
|
const loadTexture = (path, scale) => {
|
|
9
24
|
if (!path)
|
|
10
25
|
return undefined;
|
|
11
|
-
const
|
|
26
|
+
const resolved = resolveTexturePath(path);
|
|
27
|
+
const cached = textureCache.get(resolved);
|
|
12
28
|
if (cached)
|
|
13
29
|
return cached;
|
|
14
|
-
const texture = textureLoader.load(
|
|
30
|
+
const texture = textureLoader.load(resolved, () => {
|
|
15
31
|
texture.needsUpdate = true;
|
|
16
32
|
});
|
|
17
33
|
texture.wrapS = THREE.RepeatWrapping;
|
|
@@ -20,7 +36,7 @@ const loadTexture = (path, scale) => {
|
|
|
20
36
|
texture.repeat.set(scale[0], scale[1]);
|
|
21
37
|
}
|
|
22
38
|
texture.flipY = false;
|
|
23
|
-
textureCache.set(
|
|
39
|
+
textureCache.set(resolved, texture);
|
|
24
40
|
return texture;
|
|
25
41
|
};
|
|
26
42
|
const applyTexturesToMaterial = (material, textures) => {
|