@base2datadesign/viewer-kit 0.2.3 → 0.2.5

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.
@@ -16,6 +16,8 @@ export declare class ViewerEngine {
16
16
  private presetId;
17
17
  private running;
18
18
  private animationFrame;
19
+ private lastWidth;
20
+ private lastHeight;
19
21
  constructor(options: ViewerCreateOptions);
20
22
  getHandle(): ViewerHandle;
21
23
  start(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ViewerEngine.d.ts","sourceRoot":"","sources":["../../src/engine/ViewerEngine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,WAAW,EAAiB,sBAAsB,EAAE,mBAAmB,EAAmB,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQrK,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IAE1D,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAU;IAEnC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAuB;gBAEjC,OAAO,EAAE,mBAAmB;IAgDxC,SAAS,IAAI,YAAY;IAkBzB,KAAK,IAAI,IAAI;IAgBb,IAAI,IAAI,IAAI;IAQZ,MAAM,IAAI,IAAI;IAUd,OAAO,IAAI,IAAI;IAef,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjC,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAStD,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAwBjC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAe5C,cAAc,IAAI,WAAW;IAQvB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCjC,WAAW,IAAI,cAAc;IAe7B,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,aAAa;CAKtB"}
1
+ {"version":3,"file":"ViewerEngine.d.ts","sourceRoot":"","sources":["../../src/engine/ViewerEngine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,WAAW,EAAiB,sBAAsB,EAAE,mBAAmB,EAAmB,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQrK,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAiB;IAE1D,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAU;IAEnC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,mBAAmB;IAkDxC,SAAS,IAAI,YAAY;IAkBzB,KAAK,IAAI,IAAI;IAgBb,IAAI,IAAI,IAAI;IAQZ,MAAM,IAAI,IAAI;IAYd,OAAO,IAAI,IAAI;IAef,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjC,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAStD,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAwBjC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAe5C,cAAc,IAAI,WAAW;IAQvB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCjC,WAAW,IAAI,cAAc;IAe7B,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,aAAa;CAKtB"}
@@ -23,6 +23,8 @@ export class ViewerEngine {
23
23
  presetId;
24
24
  running = false;
25
25
  animationFrame = null;
26
+ lastWidth;
27
+ lastHeight;
26
28
  constructor(options) {
27
29
  this.container = options.container;
28
30
  const basePresets = options.presets ?? DEFAULT_PRESETS;
@@ -55,6 +57,8 @@ export class ViewerEngine {
55
57
  this.postFxSystem = new PostFxSystem(this.renderer, this.scene, this.camera);
56
58
  this.debugSystem = new DebugSystem(this.scene);
57
59
  this.usePostprocessing = options.usePostprocessing ?? true;
60
+ this.lastWidth = width;
61
+ this.lastHeight = height;
58
62
  this.postFxSystem.resize(width, height);
59
63
  this.applyPreset(this.presetId);
60
64
  }
@@ -103,6 +107,8 @@ export class ViewerEngine {
103
107
  resize() {
104
108
  const width = this.container.clientWidth || 1;
105
109
  const height = this.container.clientHeight || 1;
110
+ this.lastWidth = width;
111
+ this.lastHeight = height;
106
112
  this.camera.aspect = width / height;
107
113
  this.camera.updateProjectionMatrix();
108
114
  this.renderer.setSize(width, height);
@@ -272,6 +278,9 @@ export class ViewerEngine {
272
278
  ? { ...preset.renderer, toneMappingExposure: exposureOverride }
273
279
  : preset.renderer;
274
280
  applyRendererConfig(this.renderer, rendererConfig);
281
+ // applyRendererConfig can change pixel ratio; keep drawing buffer in sync.
282
+ this.renderer.setSize(this.lastWidth, this.lastHeight);
283
+ this.postFxSystem.resize(this.lastWidth, this.lastHeight);
275
284
  void this.environmentSystem.apply(preset);
276
285
  this.lightingSystem.apply(preset);
277
286
  this.postFxSystem.apply(this.usePostprocessing ? preset.postfx : undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"scienceSky.d.ts","sourceRoot":"","sources":["../../src/sky/scienceSky.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;CACrC,CAAC;AAkEF,wBAAgB,qBAAqB,IAAI,gBAAgB,EAAE,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE5E"}
1
+ {"version":3,"file":"scienceSky.d.ts","sourceRoot":"","sources":["../../src/sky/scienceSky.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;CACrC,CAAC;AAmFF,wBAAgB,qBAAqB,IAAI,gBAAgB,EAAE,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE5E"}
@@ -5,6 +5,23 @@ const SCIENCE_SKY_OPTIONS = [
5
5
  label: "Preset Dome",
6
6
  description: "Use the sky gradient defined by the active render preset.",
7
7
  },
8
+ {
9
+ id: "debug-cube",
10
+ label: "Debug Cubemap",
11
+ description: "Axis/orientation test (E/W/N/S/U/D)",
12
+ sky: {
13
+ mode: "cube",
14
+ cube: {
15
+ px: "/debug/skybox/px.png",
16
+ nx: "/debug/skybox/nx.png",
17
+ py: "/debug/skybox/py.png",
18
+ ny: "/debug/skybox/ny.png",
19
+ pz: "/debug/skybox/pz.png",
20
+ nz: "/debug/skybox/nz.png",
21
+ exposure: 1.0,
22
+ },
23
+ },
24
+ },
8
25
  {
9
26
  id: "canary-wharf",
10
27
  label: "Canary Wharf",
@@ -1 +1 @@
1
- {"version":3,"file":"debugSystem.d.ts","sourceRoot":"","sources":["../../src/systems/debugSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAmJjF,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAwB;gBAE3B,KAAK,EAAE,KAAK,CAAC,KAAK;IAI9B,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAwE3C,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,KAAK;CAmCd"}
1
+ {"version":3,"file":"debugSystem.d.ts","sourceRoot":"","sources":["../../src/systems/debugSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAoKjF,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAwB;gBAE3B,KAAK,EAAE,KAAK,CAAC,KAAK;IAI9B,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAwE3C,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,KAAK;CAmCd"}
@@ -4,10 +4,27 @@ const DEFAULT_EXTRAS = {
4
4
  ground: true,
5
5
  axes: true,
6
6
  origin: true,
7
+ gridOpacity: 0.12,
8
+ gridDivisions: 80,
9
+ gridSize: 80,
10
+ groundRoughness: 0.8,
11
+ groundMetalness: 0.05,
12
+ lightTarget: [0, 1.5, 0],
13
+ originHighlight: true,
14
+ originLineColor: 0x94a3b8,
15
+ originLineLength: 40,
16
+ originLineThickness: 0.06,
17
+ axisLabelScale: 0.35,
18
+ axesLabels: {
19
+ lowerCase: true,
20
+ upperCase: true,
21
+ offset: 0.4,
22
+ secondaryOffset: 0.5,
23
+ },
7
24
  };
8
25
  const DEFAULT_GRID_SIZE = 80;
9
26
  const DEFAULT_GRID_DIVISIONS = 80;
10
- const DEFAULT_GRID_OPACITY = 0.15;
27
+ const DEFAULT_GRID_OPACITY = 0.12;
11
28
  const DEFAULT_GRID_HEIGHT_OFFSET = 0.099;
12
29
  const HDR_GROUND_SIZE = 60;
13
30
  const AXIS_COLORS = {
@@ -1 +1 @@
1
- {"version":3,"file":"environmentSystem.d.ts","sourceRoot":"","sources":["../../src/systems/environmentSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAA8C,MAAM,iBAAiB,CAAC;AAEzH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAqC;IAE3D,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,kBAAkB,CAAkD;IAC5E,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,KAAK,CAAwF;IACrG,OAAO,CAAC,gBAAgB,CAMtB;gBAEU,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa;IAM5F,QAAQ,IAAI,gBAAgB;IAItB,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC1D,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,gBAAgB;YA6CV,YAAY;YAaZ,WAAW;YAsDX,YAAY;IAoD1B,OAAO,CAAC,oBAAoB;CAY7B"}
1
+ {"version":3,"file":"environmentSystem.d.ts","sourceRoot":"","sources":["../../src/systems/environmentSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAA8C,MAAM,iBAAiB,CAAC;AAEzH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAqC;IAE3D,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,kBAAkB,CAAkD;IAC5E,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,KAAK,CAAwF;IACrG,OAAO,CAAC,gBAAgB,CAMtB;gBAEU,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa;IAM5F,QAAQ,IAAI,gBAAgB;IAItB,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC1D,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,gBAAgB;YA6CV,YAAY;YAaZ,WAAW;YAwDX,YAAY;IAuD1B,OAAO,CAAC,oBAAoB;CAY7B"}
@@ -180,6 +180,8 @@ export class EnvironmentSystem {
180
180
  }
181
181
  texture.mapping = THREE.EquirectangularReflectionMapping;
182
182
  texture.colorSpace = THREE.LinearSRGBColorSpace;
183
+ texture.magFilter = THREE.LinearFilter;
184
+ texture.minFilter = THREE.LinearFilter;
183
185
  texture.needsUpdate = true;
184
186
  texture.center = new THREE.Vector2(0.5, 0.5);
185
187
  if (typeof hdr.rotationY === "number") {
@@ -233,6 +235,9 @@ export class EnvironmentSystem {
233
235
  texture.dispose();
234
236
  return;
235
237
  }
238
+ texture.colorSpace = THREE.SRGBColorSpace;
239
+ texture.magFilter = THREE.LinearFilter;
240
+ texture.minFilter = THREE.LinearFilter;
236
241
  texture.needsUpdate = true;
237
242
  this.applyRotationToScene(cube.rotation, cube.rotationY);
238
243
  let environmentTexture = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base2datadesign/viewer-kit",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "main": "./dist/index.js",