@heliguy-xyz/splat-viewer 1.0.0-rc.8 → 1.0.0-rc.9

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.
@@ -30,6 +30,8 @@ export declare class SplatViewerCore implements SplatViewerCoreInterface {
30
30
  private _transformSystem;
31
31
  private _sceneConfigManager;
32
32
  private _eventListeners;
33
+ private _splatCenterSize;
34
+ private _sphericalHarmonicsBands;
33
35
  constructor(options?: SplatViewerCoreOptions);
34
36
  init(canvas: HTMLCanvasElement): SplatViewerCore;
35
37
  load(source: string | File | Blob, options?: LoadOptions): Promise<LoadResult>;
@@ -75,6 +77,16 @@ export declare class SplatViewerCore implements SplatViewerCoreInterface {
75
77
  * @returns Scene-wide metadata
76
78
  */
77
79
  getSceneStats(): SceneMetadata;
80
+ /**
81
+ * Set fly camera base movement speed (convenience over setFlyCameraConfig)
82
+ * @param speed Units per second (must be > 0)
83
+ */
84
+ setFlyCameraSpeed(speed: number): void;
85
+ /**
86
+ * Get current fly camera base movement speed
87
+ * @returns Speed in units per second, or null if fly camera not initialized
88
+ */
89
+ getFlyCameraSpeed(): number | null;
78
90
  /**
79
91
  * Set visibility for a specific model by ID
80
92
  * @param modelId ID of the model
@@ -87,6 +99,29 @@ export declare class SplatViewerCore implements SplatViewerCoreInterface {
87
99
  * @param visible True to show, false to hide
88
100
  */
89
101
  setModelsVisibleByName(name: string, visible: boolean): void;
102
+ /**
103
+ * Set rendered centers size for all splat models.
104
+ * This maps onto underlying gsplat / renderer properties when available.
105
+ * @param size Positive size value (implementation-specific units)
106
+ */
107
+ setSplatCenterSize(size: number): void;
108
+ /**
109
+ * Get current centers size value last set via API.
110
+ * Returns null if not configured yet.
111
+ */
112
+ getSplatCenterSize(): number | null;
113
+ /**
114
+ * Set spherical harmonics bands for all splat models.
115
+ * @param bands Integer band count (0-3)
116
+ */
117
+ setSphericalHarmonicsBands(bands: number): void;
118
+ /**
119
+ * Get current spherical harmonics bands setting last configured via API.
120
+ * Returns null if not configured yet.
121
+ */
122
+ getSphericalHarmonicsBands(): number | null;
123
+ private _applySplatRenderingConfigToEntity;
124
+ private _forEachSplatEntity;
90
125
  /**
91
126
  * Apply a 4x4 transformation matrix to a model
92
127
  * @param modelId ID of the model
@@ -1 +1 @@
1
- {"version":3,"file":"SplatViewerCore.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SplatViewerCore.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerCore.ts"],"names":[],"mappings":"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"}
@@ -202,9 +202,37 @@ export declare class SplatViewerElement extends HTMLElement {
202
202
  setCameraFOV(fov: number): void;
203
203
  getCameraFOV(): number;
204
204
  animateCameraFOV(targetFOV: number, duration: number): Promise<void>;
205
+ /**
206
+ * Set fly camera base movement speed (convenience over setFlyCameraConfig)
207
+ * @param speed Units per second (must be > 0)
208
+ */
209
+ setFlyCameraSpeed(speed: number): void;
210
+ /**
211
+ * Get current fly camera base movement speed
212
+ * @returns Speed in units per second, or null if fly camera not initialized
213
+ */
214
+ getFlyCameraSpeed(): number | null;
205
215
  setBackgroundColor(color: ColorInput): void;
206
216
  getBackgroundColor(): ColorRGBA;
207
217
  animateBackgroundColor(targetColor: ColorInput, duration: number): Promise<void>;
218
+ /**
219
+ * Set rendered centers size for all splat models
220
+ * @param size Positive size value (implementation-specific units)
221
+ */
222
+ setSplatCenterSize(size: number): void;
223
+ /**
224
+ * Get current centers size value last set via API
225
+ */
226
+ getSplatCenterSize(): number | null;
227
+ /**
228
+ * Set spherical harmonics bands for all splat models
229
+ * @param bands Integer band count (0-3)
230
+ */
231
+ setSphericalHarmonicsBands(bands: number): void;
232
+ /**
233
+ * Get current spherical harmonics bands setting last configured via API
234
+ */
235
+ getSphericalHarmonicsBands(): number | null;
208
236
  /**
209
237
  * Apply a 4x4 transformation matrix to a model
210
238
  * @param modelId ID of the model
@@ -1 +1 @@
1
- {"version":3,"file":"SplatViewerElement.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SplatViewerElement.d.ts","sourceRoot":"","sources":["../../src/web-component/SplatViewerElement.ts"],"names":[],"mappings":"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"}
@@ -140037,6 +140037,9 @@ class SplatViewerCore {
140037
140037
  this._sceneConfigManager = null;
140038
140038
  // Event system
140039
140039
  this._eventListeners = new Map();
140040
+ // Splat rendering configuration (mirrors key SuperSplat options)
140041
+ this._splatCenterSize = null;
140042
+ this._sphericalHarmonicsBands = null;
140040
140043
  this.canvas = options.canvas || null;
140041
140044
  this.enableStats = options.enableStats || false;
140042
140045
  this.autoFocus = options.autoFocus !== false;
@@ -140164,6 +140167,8 @@ class SplatViewerCore {
140164
140167
  // This ensures the loading spinner stays visible until the model is actually rendered
140165
140168
  return await new Promise(resolve => {
140166
140169
  this.app.once('frameupdate', () => {
140170
+ // Apply any pending splat rendering configuration
140171
+ this._applySplatRenderingConfigToEntity(result.entity);
140167
140172
  if (this.autoFocus) {
140168
140173
  this.focus(result.entity);
140169
140174
  setTimeout(() => {
@@ -140254,6 +140259,8 @@ class SplatViewerCore {
140254
140259
  // This ensures the loading spinner stays visible until the model is actually rendered
140255
140260
  return await new Promise(resolve => {
140256
140261
  this.app.once('frameupdate', () => {
140262
+ // Apply any pending splat rendering configuration
140263
+ this._applySplatRenderingConfigToEntity(entity);
140257
140264
  if (this.autoFocus) {
140258
140265
  this.focus(entity);
140259
140266
  setTimeout(() => {
@@ -140387,7 +140394,12 @@ class SplatViewerCore {
140387
140394
  if (!this._modelManager) {
140388
140395
  throw new Error('SplatViewerCore.addModel: ModelManager not initialized');
140389
140396
  }
140390
- return await this._modelManager.addModel(source, options);
140397
+ const info = await this._modelManager.addModel(source, options);
140398
+ // Apply any pending splat rendering configuration to the new model entity
140399
+ if (info?.entity) {
140400
+ this._applySplatRenderingConfigToEntity(info.entity);
140401
+ }
140402
+ return info;
140391
140403
  }
140392
140404
  /**
140393
140405
  * Remove a specific model from the scene
@@ -140449,6 +140461,25 @@ class SplatViewerCore {
140449
140461
  }
140450
140462
  return this._modelManager.getSceneStats();
140451
140463
  }
140464
+ /**
140465
+ * Set fly camera base movement speed (convenience over setFlyCameraConfig)
140466
+ * @param speed Units per second (must be > 0)
140467
+ */
140468
+ setFlyCameraSpeed(speed) {
140469
+ if (speed <= 0 || !isFinite(speed)) {
140470
+ console.warn('SplatViewerCore.setFlyCameraSpeed: speed must be > 0');
140471
+ return;
140472
+ }
140473
+ this.setFlyCameraConfig({ moveSpeed: speed });
140474
+ }
140475
+ /**
140476
+ * Get current fly camera base movement speed
140477
+ * @returns Speed in units per second, or null if fly camera not initialized
140478
+ */
140479
+ getFlyCameraSpeed() {
140480
+ const cfg = this.getFlyCameraConfig();
140481
+ return cfg ? cfg.moveSpeed : null;
140482
+ }
140452
140483
  /**
140453
140484
  * Set visibility for a specific model by ID
140454
140485
  * @param modelId ID of the model
@@ -140472,6 +140503,153 @@ class SplatViewerCore {
140472
140503
  this._modelManager.setModelsVisibleByName(name, visible);
140473
140504
  }
140474
140505
  // ==========================================
140506
+ // Splat Rendering Configuration
140507
+ // ==========================================
140508
+ /**
140509
+ * Set rendered centers size for all splat models.
140510
+ * This maps onto underlying gsplat / renderer properties when available.
140511
+ * @param size Positive size value (implementation-specific units)
140512
+ */
140513
+ setSplatCenterSize(size) {
140514
+ if (!isFinite(size) || size <= 0) {
140515
+ console.warn('SplatViewerCore.setSplatCenterSize: size must be > 0');
140516
+ return;
140517
+ }
140518
+ const previousSize = this._splatCenterSize;
140519
+ this._splatCenterSize = size;
140520
+ this._forEachSplatEntity(entity => {
140521
+ this._applySplatRenderingConfigToEntity(entity);
140522
+ });
140523
+ // Emit event for UI integrations
140524
+ this.emit({
140525
+ type: 'splat-center-size-changed',
140526
+ detail: {
140527
+ size,
140528
+ previousSize: previousSize ?? size,
140529
+ },
140530
+ });
140531
+ }
140532
+ /**
140533
+ * Get current centers size value last set via API.
140534
+ * Returns null if not configured yet.
140535
+ */
140536
+ getSplatCenterSize() {
140537
+ return this._splatCenterSize;
140538
+ }
140539
+ /**
140540
+ * Set spherical harmonics bands for all splat models.
140541
+ * @param bands Integer band count (0-3)
140542
+ */
140543
+ setSphericalHarmonicsBands(bands) {
140544
+ if (!isFinite(bands)) {
140545
+ console.warn('SplatViewerCore.setSphericalHarmonicsBands: bands must be a finite number');
140546
+ return;
140547
+ }
140548
+ const clamped = Math.max(0, Math.min(3, Math.round(bands)));
140549
+ const previousBands = this._sphericalHarmonicsBands;
140550
+ this._sphericalHarmonicsBands = clamped;
140551
+ this._forEachSplatEntity(entity => {
140552
+ this._applySplatRenderingConfigToEntity(entity);
140553
+ });
140554
+ // Emit event for UI integrations
140555
+ this.emit({
140556
+ type: 'spherical-harmonics-bands-changed',
140557
+ detail: {
140558
+ bands: clamped,
140559
+ previousBands: previousBands ?? clamped,
140560
+ },
140561
+ });
140562
+ }
140563
+ /**
140564
+ * Get current spherical harmonics bands setting last configured via API.
140565
+ * Returns null if not configured yet.
140566
+ */
140567
+ getSphericalHarmonicsBands() {
140568
+ return this._sphericalHarmonicsBands;
140569
+ }
140570
+ // Apply stored rendering configuration to a specific splat entity
140571
+ _applySplatRenderingConfigToEntity(entity) {
140572
+ const anyEntity = entity;
140573
+ const comp = anyEntity.gsplat;
140574
+ if (!comp)
140575
+ return;
140576
+ // Centers size – try several known/likely property names
140577
+ if (this._splatCenterSize != null) {
140578
+ const size = this._splatCenterSize;
140579
+ if ('centerSize' in comp)
140580
+ comp.centerSize = size;
140581
+ if ('centersSize' in comp)
140582
+ comp.centersSize = size;
140583
+ if ('pointSize' in comp)
140584
+ comp.pointSize = size;
140585
+ if (comp.settings) {
140586
+ if ('centerSize' in comp.settings)
140587
+ comp.settings.centerSize = size;
140588
+ if ('centersSize' in comp.settings)
140589
+ comp.settings.centersSize = size;
140590
+ if ('pointSize' in comp.settings)
140591
+ comp.settings.pointSize = size;
140592
+ }
140593
+ if (comp.instance) {
140594
+ if ('centerSize' in comp.instance)
140595
+ comp.instance.centerSize = size;
140596
+ if ('centersSize' in comp.instance)
140597
+ comp.instance.centersSize = size;
140598
+ if ('pointSize' in comp.instance)
140599
+ comp.instance.pointSize = size;
140600
+ if (comp.instance.renderOptions) {
140601
+ const ro = comp.instance.renderOptions;
140602
+ if ('centerSize' in ro)
140603
+ ro.centerSize = size;
140604
+ if ('centersSize' in ro)
140605
+ ro.centersSize = size;
140606
+ if ('pointSize' in ro)
140607
+ ro.pointSize = size;
140608
+ }
140609
+ }
140610
+ }
140611
+ // Spherical harmonics bands – prefer integer band count properties
140612
+ if (this._sphericalHarmonicsBands != null) {
140613
+ const bands = this._sphericalHarmonicsBands;
140614
+ if ('shBands' in comp)
140615
+ comp.shBands = bands;
140616
+ if ('shBandCount' in comp)
140617
+ comp.shBandCount = bands;
140618
+ if ('sphericalHarmonicsBands' in comp)
140619
+ comp.sphericalHarmonicsBands = bands;
140620
+ if (comp.settings) {
140621
+ if ('shBands' in comp.settings)
140622
+ comp.settings.shBands = bands;
140623
+ if ('shBandCount' in comp.settings)
140624
+ comp.settings.shBandCount = bands;
140625
+ if ('sphericalHarmonicsBands' in comp.settings)
140626
+ comp.settings.sphericalHarmonicsBands = bands;
140627
+ }
140628
+ if (comp.instance) {
140629
+ if ('shBands' in comp.instance)
140630
+ comp.instance.shBands = bands;
140631
+ if ('shBandCount' in comp.instance)
140632
+ comp.instance.shBandCount = bands;
140633
+ if ('sphericalHarmonicsBands' in comp.instance)
140634
+ comp.instance.sphericalHarmonicsBands = bands;
140635
+ }
140636
+ }
140637
+ }
140638
+ // Helper: iterate over all splat entities managed by this core
140639
+ _forEachSplatEntity(fn) {
140640
+ if (this.entities.splat) {
140641
+ fn(this.entities.splat);
140642
+ }
140643
+ if (this._modelManager) {
140644
+ const models = this._modelManager.getModels();
140645
+ for (const m of models) {
140646
+ if (m.entity) {
140647
+ fn(m.entity);
140648
+ }
140649
+ }
140650
+ }
140651
+ }
140652
+ // ==========================================
140475
140653
  // Transform System API
140476
140654
  // ==========================================
140477
140655
  /**
@@ -141752,6 +141930,13 @@ class SplatViewerElement extends HTMLElement {
141752
141930
  this._core.on('background-color-changed', (event) => {
141753
141931
  this.dispatchEvent(createCustomEvent('background-color-changed', event.detail));
141754
141932
  });
141933
+ // Splat rendering configuration events
141934
+ this._core.on('splat-center-size-changed', (event) => {
141935
+ this.dispatchEvent(createCustomEvent('splat-center-size-changed', event.detail));
141936
+ });
141937
+ this._core.on('spherical-harmonics-bands-changed', (event) => {
141938
+ this.dispatchEvent(createCustomEvent('spherical-harmonics-bands-changed', event.detail));
141939
+ });
141755
141940
  // Multi-model management events
141756
141941
  this._core.on('model-added', (event) => {
141757
141942
  this.dispatchEvent(createCustomEvent('model-added', event.detail));
@@ -142039,6 +142224,26 @@ class SplatViewerElement extends HTMLElement {
142039
142224
  }
142040
142225
  await this._core.animateCameraFOV(targetFOV, duration);
142041
142226
  }
142227
+ /**
142228
+ * Set fly camera base movement speed (convenience over setFlyCameraConfig)
142229
+ * @param speed Units per second (must be > 0)
142230
+ */
142231
+ setFlyCameraSpeed(speed) {
142232
+ if (!this._core) {
142233
+ throw new Error('SplatViewerElement: Core not initialized. Call connectedCallback first.');
142234
+ }
142235
+ this._core.setFlyCameraSpeed(speed);
142236
+ }
142237
+ /**
142238
+ * Get current fly camera base movement speed
142239
+ * @returns Speed in units per second, or null if fly camera not initialized
142240
+ */
142241
+ getFlyCameraSpeed() {
142242
+ if (!this._core) {
142243
+ throw new Error('SplatViewerElement: Core not initialized. Call connectedCallback first.');
142244
+ }
142245
+ return this._core.getFlyCameraSpeed();
142246
+ }
142042
142247
  setBackgroundColor(color) {
142043
142248
  if (!this._core) {
142044
142249
  throw new Error('SplatViewerElement: Core not initialized. Call connectedCallback first.');
@@ -142057,6 +142262,44 @@ class SplatViewerElement extends HTMLElement {
142057
142262
  }
142058
142263
  await this._core.animateBackgroundColor(targetColor, duration);
142059
142264
  }
142265
+ /**
142266
+ * Set rendered centers size for all splat models
142267
+ * @param size Positive size value (implementation-specific units)
142268
+ */
142269
+ setSplatCenterSize(size) {
142270
+ if (!this._core) {
142271
+ throw new Error('SplatViewerElement: Core not initialized. Call connectedCallback first.');
142272
+ }
142273
+ this._core.setSplatCenterSize(size);
142274
+ }
142275
+ /**
142276
+ * Get current centers size value last set via API
142277
+ */
142278
+ getSplatCenterSize() {
142279
+ if (!this._core) {
142280
+ throw new Error('SplatViewerElement: Core not initialized. Call connectedCallback first.');
142281
+ }
142282
+ return this._core.getSplatCenterSize();
142283
+ }
142284
+ /**
142285
+ * Set spherical harmonics bands for all splat models
142286
+ * @param bands Integer band count (0-3)
142287
+ */
142288
+ setSphericalHarmonicsBands(bands) {
142289
+ if (!this._core) {
142290
+ throw new Error('SplatViewerElement: Core not initialized. Call connectedCallback first.');
142291
+ }
142292
+ this._core.setSphericalHarmonicsBands(bands);
142293
+ }
142294
+ /**
142295
+ * Get current spherical harmonics bands setting last configured via API
142296
+ */
142297
+ getSphericalHarmonicsBands() {
142298
+ if (!this._core) {
142299
+ throw new Error('SplatViewerElement: Core not initialized. Call connectedCallback first.');
142300
+ }
142301
+ return this._core.getSphericalHarmonicsBands();
142302
+ }
142060
142303
  // ==========================================
142061
142304
  // Transform System API
142062
142305
  // ==========================================