string-tune-3d 0.0.3 → 0.0.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.
package/dist/index.d.mts CHANGED
@@ -61,6 +61,8 @@ interface I3DObject {
61
61
  interface I3DMesh extends I3DObject {
62
62
  geometry: I3DGeometry;
63
63
  material: I3DMaterial | I3DMaterial[];
64
+ castShadow: boolean;
65
+ receiveShadow: boolean;
64
66
  }
65
67
  interface I3DGeometry {
66
68
  dispose(): void;
@@ -75,6 +77,13 @@ interface I3DMaterial {
75
77
  interface I3DLight extends I3DObject {
76
78
  color: any;
77
79
  intensity: number;
80
+ castShadow?: boolean;
81
+ shadow?: any;
82
+ target?: I3DObject;
83
+ distance?: number;
84
+ decay?: number;
85
+ angle?: number;
86
+ penumbra?: number;
78
87
  }
79
88
  interface I3DCamera extends I3DObject {
80
89
  aspect: number;
@@ -103,6 +112,11 @@ interface I3DRenderer {
103
112
  setPixelRatio(ratio: number): void;
104
113
  render(scene: I3DScene, camera: I3DCamera): void;
105
114
  dispose(): void;
115
+ outputEncoding: any;
116
+ shadowMap: {
117
+ enabled: boolean;
118
+ type: any;
119
+ };
106
120
  }
107
121
  interface I3DTextureLoader {
108
122
  load(url: string, onLoad?: (texture: any) => void): any;
@@ -134,6 +148,8 @@ interface I3DEngine {
134
148
  createMeshBasicMaterial(params?: any): I3DMaterial;
135
149
  createMeshStandardMaterial(params?: any): I3DMaterial;
136
150
  createPointLight(color?: string | number, intensity?: number, distance?: number, decay?: number): I3DLight;
151
+ createSpotLight(color?: string | number, intensity?: number, distance?: number, angle?: number, penumbra?: number, decay?: number): I3DLight;
152
+ createHemisphereLight(skyColor?: string | number, groundColor?: string | number, intensity?: number): I3DLight;
137
153
  createAmbientLight(color?: string | number, intensity?: number): I3DLight;
138
154
  createDirectionalLight(color?: string | number, intensity?: number): I3DLight;
139
155
  createTextureLoader(): I3DTextureLoader;
@@ -152,6 +168,12 @@ interface String3DOptions {
152
168
  hideHTML?: boolean;
153
169
  container?: string | HTMLElement;
154
170
  zIndex?: number;
171
+ modelLoaderType?: string;
172
+ modelLoader?: I3DModelLoader;
173
+ modelLoaderFactory?: (engine: I3DEngine, type?: string) => I3DModelLoader;
174
+ useDirtySync?: boolean;
175
+ useTransformWorker?: boolean;
176
+ transformWorkerWasmUrl?: string;
155
177
  }
156
178
  declare class String3D extends StringModule {
157
179
  private static provider;
@@ -163,18 +185,50 @@ declare class String3D extends StringModule {
163
185
  private canvasContainer;
164
186
  private isLoading;
165
187
  private options;
188
+ private useDirtySync;
189
+ private dirtyElements;
190
+ private observedElements;
191
+ private resizeObserver;
192
+ private mutationObserver;
193
+ private lastSyncData;
194
+ private transformWorker;
195
+ private workerHasResult;
196
+ private workerObjectMap;
197
+ private domVersion;
198
+ private lastSubmittedVersion;
199
+ private scrollTicking;
200
+ private onScrollBound;
166
201
  static setProvider(provider: I3DEngineProvider): void;
167
- constructor(context: StringContext, options?: String3DOptions);
202
+ constructor(context: StringContext);
168
203
  canConnect(object: StringObject): boolean;
169
204
  initializeObject(globalId: number, object: StringObject, element: HTMLElement, attributes: Record<string, any>): void;
170
205
  onResize(): void;
171
206
  onInit(): void;
207
+ onSettingsChange(): void;
208
+ private buildOptionsFromSettings;
209
+ private getSettingValue;
210
+ private resolveModelLoader;
211
+ private resolveModelLoaderFactory;
172
212
  private createOrGetContainer;
173
213
  private applyContainerStyles;
174
214
  onObjectConnected(object: StringObject): void;
175
215
  onFrame(data: StringData): void;
176
216
  private syncRecursive;
177
217
  private injectCSS;
218
+ private registerTypedProperties;
219
+ private setupObservers;
220
+ private setupScrollListeners;
221
+ private removeScrollListeners;
222
+ private handleScroll;
223
+ private observeElement;
224
+ private observeSceneElements;
225
+ private observeRecursive;
226
+ private markDirty;
227
+ private markAllDirty;
228
+ private readNumberStyle;
229
+ private buildWorkerCameraData;
230
+ private collectWorkerInputs;
231
+ private applyWorkerResults;
178
232
  destroy(): void;
179
233
  }
180
234
 
@@ -202,6 +256,8 @@ declare class String3DCamera {
202
256
  getScaleAtZ(z: number, viewportHeight: number): number;
203
257
  clearScaleCache(): void;
204
258
  getMode(): CameraMode;
259
+ getPerspectiveFov(): number;
260
+ getPositionZ(): number;
205
261
  }
206
262
 
207
263
  declare class String3DObject {
@@ -220,7 +276,11 @@ declare class String3DObject {
220
276
  private _children;
221
277
  private engine;
222
278
  get children(): String3DObject[];
223
- constructor(id: string, type: string, object: I3DObject, engine: I3DEngine);
279
+ constructor(id: string, type: string, object: I3DObject, engine: I3DEngine, options?: {
280
+ material?: I3DMaterial;
281
+ geometry?: I3DGeometry;
282
+ texture?: any;
283
+ });
224
284
  get object(): I3DObject;
225
285
  get material(): I3DMaterial | undefined;
226
286
  get originalSize(): I3DVector3;
@@ -239,19 +299,28 @@ declare class String3DObject {
239
299
  set metalness(value: number);
240
300
  set roughness(value: number);
241
301
  set texture(texture: any);
302
+ set material(material: I3DMaterial | undefined);
303
+ set geometry(geometry: I3DGeometry | undefined);
242
304
  updateBoundingBox(): void;
243
305
  destroy(): void;
306
+ private disposeObjectResources;
244
307
  }
245
308
 
309
+ interface String3DSceneOptions {
310
+ modelLoader?: I3DModelLoader;
311
+ modelLoaderFactory?: (engine: I3DEngine, type?: string) => I3DModelLoader;
312
+ }
246
313
  declare class String3DScene {
247
314
  private _scene;
248
315
  private _objects;
249
316
  private _rootObjects;
250
317
  private _elementMap;
251
318
  private engine;
252
- private _modelLoader;
319
+ private _modelLoader?;
320
+ private _modelLoaderFactory?;
321
+ private _modelLoaderCache;
253
322
  get rootObjects(): String3DObject[];
254
- constructor(engine: I3DEngine, modelLoader?: any);
323
+ constructor(engine: I3DEngine, options?: String3DSceneOptions);
255
324
  getScene(): I3DScene;
256
325
  getObject(id: string): String3DObject | undefined;
257
326
  hasObject(id: string): boolean;
@@ -259,13 +328,21 @@ declare class String3DScene {
259
328
  createFromElement(object: StringObject): void;
260
329
  private createGroup;
261
330
  private createLight;
331
+ private applyShadowProps;
262
332
  private createBox;
263
333
  private createSphere;
264
334
  private createPlane;
265
335
  private createCylinder;
266
336
  private createModel;
337
+ private resolveModelLoader;
338
+ private centerObject;
339
+ private getBoxCenter;
267
340
  private createMaterialFromObject;
341
+ private createMaterialFromElement;
268
342
  private loadTexture;
343
+ private parseFlipY;
344
+ private shouldOverrideModelMaterial;
345
+ private applyModelTextureRemap;
269
346
  destroy(): void;
270
347
  }
271
348
 
@@ -323,6 +400,8 @@ declare class ThreeJSEngine implements I3DEngine {
323
400
  createMeshBasicMaterial(params?: any): I3DMaterial;
324
401
  createMeshStandardMaterial(params?: any): I3DMaterial;
325
402
  createPointLight(color?: string | number, intensity?: number, distance?: number, decay?: number): I3DLight;
403
+ createSpotLight(color?: string | number, intensity?: number, distance?: number, angle?: number, penumbra?: number, decay?: number): I3DLight;
404
+ createHemisphereLight(skyColor?: string | number, groundColor?: string | number, intensity?: number): I3DLight;
326
405
  createAmbientLight(color?: string | number, intensity?: number): I3DLight;
327
406
  createDirectionalLight(color?: string | number, intensity?: number): I3DLight;
328
407
  createTextureLoader(): I3DTextureLoader;
package/dist/index.d.ts CHANGED
@@ -61,6 +61,8 @@ interface I3DObject {
61
61
  interface I3DMesh extends I3DObject {
62
62
  geometry: I3DGeometry;
63
63
  material: I3DMaterial | I3DMaterial[];
64
+ castShadow: boolean;
65
+ receiveShadow: boolean;
64
66
  }
65
67
  interface I3DGeometry {
66
68
  dispose(): void;
@@ -75,6 +77,13 @@ interface I3DMaterial {
75
77
  interface I3DLight extends I3DObject {
76
78
  color: any;
77
79
  intensity: number;
80
+ castShadow?: boolean;
81
+ shadow?: any;
82
+ target?: I3DObject;
83
+ distance?: number;
84
+ decay?: number;
85
+ angle?: number;
86
+ penumbra?: number;
78
87
  }
79
88
  interface I3DCamera extends I3DObject {
80
89
  aspect: number;
@@ -103,6 +112,11 @@ interface I3DRenderer {
103
112
  setPixelRatio(ratio: number): void;
104
113
  render(scene: I3DScene, camera: I3DCamera): void;
105
114
  dispose(): void;
115
+ outputEncoding: any;
116
+ shadowMap: {
117
+ enabled: boolean;
118
+ type: any;
119
+ };
106
120
  }
107
121
  interface I3DTextureLoader {
108
122
  load(url: string, onLoad?: (texture: any) => void): any;
@@ -134,6 +148,8 @@ interface I3DEngine {
134
148
  createMeshBasicMaterial(params?: any): I3DMaterial;
135
149
  createMeshStandardMaterial(params?: any): I3DMaterial;
136
150
  createPointLight(color?: string | number, intensity?: number, distance?: number, decay?: number): I3DLight;
151
+ createSpotLight(color?: string | number, intensity?: number, distance?: number, angle?: number, penumbra?: number, decay?: number): I3DLight;
152
+ createHemisphereLight(skyColor?: string | number, groundColor?: string | number, intensity?: number): I3DLight;
137
153
  createAmbientLight(color?: string | number, intensity?: number): I3DLight;
138
154
  createDirectionalLight(color?: string | number, intensity?: number): I3DLight;
139
155
  createTextureLoader(): I3DTextureLoader;
@@ -152,6 +168,12 @@ interface String3DOptions {
152
168
  hideHTML?: boolean;
153
169
  container?: string | HTMLElement;
154
170
  zIndex?: number;
171
+ modelLoaderType?: string;
172
+ modelLoader?: I3DModelLoader;
173
+ modelLoaderFactory?: (engine: I3DEngine, type?: string) => I3DModelLoader;
174
+ useDirtySync?: boolean;
175
+ useTransformWorker?: boolean;
176
+ transformWorkerWasmUrl?: string;
155
177
  }
156
178
  declare class String3D extends StringModule {
157
179
  private static provider;
@@ -163,18 +185,50 @@ declare class String3D extends StringModule {
163
185
  private canvasContainer;
164
186
  private isLoading;
165
187
  private options;
188
+ private useDirtySync;
189
+ private dirtyElements;
190
+ private observedElements;
191
+ private resizeObserver;
192
+ private mutationObserver;
193
+ private lastSyncData;
194
+ private transformWorker;
195
+ private workerHasResult;
196
+ private workerObjectMap;
197
+ private domVersion;
198
+ private lastSubmittedVersion;
199
+ private scrollTicking;
200
+ private onScrollBound;
166
201
  static setProvider(provider: I3DEngineProvider): void;
167
- constructor(context: StringContext, options?: String3DOptions);
202
+ constructor(context: StringContext);
168
203
  canConnect(object: StringObject): boolean;
169
204
  initializeObject(globalId: number, object: StringObject, element: HTMLElement, attributes: Record<string, any>): void;
170
205
  onResize(): void;
171
206
  onInit(): void;
207
+ onSettingsChange(): void;
208
+ private buildOptionsFromSettings;
209
+ private getSettingValue;
210
+ private resolveModelLoader;
211
+ private resolveModelLoaderFactory;
172
212
  private createOrGetContainer;
173
213
  private applyContainerStyles;
174
214
  onObjectConnected(object: StringObject): void;
175
215
  onFrame(data: StringData): void;
176
216
  private syncRecursive;
177
217
  private injectCSS;
218
+ private registerTypedProperties;
219
+ private setupObservers;
220
+ private setupScrollListeners;
221
+ private removeScrollListeners;
222
+ private handleScroll;
223
+ private observeElement;
224
+ private observeSceneElements;
225
+ private observeRecursive;
226
+ private markDirty;
227
+ private markAllDirty;
228
+ private readNumberStyle;
229
+ private buildWorkerCameraData;
230
+ private collectWorkerInputs;
231
+ private applyWorkerResults;
178
232
  destroy(): void;
179
233
  }
180
234
 
@@ -202,6 +256,8 @@ declare class String3DCamera {
202
256
  getScaleAtZ(z: number, viewportHeight: number): number;
203
257
  clearScaleCache(): void;
204
258
  getMode(): CameraMode;
259
+ getPerspectiveFov(): number;
260
+ getPositionZ(): number;
205
261
  }
206
262
 
207
263
  declare class String3DObject {
@@ -220,7 +276,11 @@ declare class String3DObject {
220
276
  private _children;
221
277
  private engine;
222
278
  get children(): String3DObject[];
223
- constructor(id: string, type: string, object: I3DObject, engine: I3DEngine);
279
+ constructor(id: string, type: string, object: I3DObject, engine: I3DEngine, options?: {
280
+ material?: I3DMaterial;
281
+ geometry?: I3DGeometry;
282
+ texture?: any;
283
+ });
224
284
  get object(): I3DObject;
225
285
  get material(): I3DMaterial | undefined;
226
286
  get originalSize(): I3DVector3;
@@ -239,19 +299,28 @@ declare class String3DObject {
239
299
  set metalness(value: number);
240
300
  set roughness(value: number);
241
301
  set texture(texture: any);
302
+ set material(material: I3DMaterial | undefined);
303
+ set geometry(geometry: I3DGeometry | undefined);
242
304
  updateBoundingBox(): void;
243
305
  destroy(): void;
306
+ private disposeObjectResources;
244
307
  }
245
308
 
309
+ interface String3DSceneOptions {
310
+ modelLoader?: I3DModelLoader;
311
+ modelLoaderFactory?: (engine: I3DEngine, type?: string) => I3DModelLoader;
312
+ }
246
313
  declare class String3DScene {
247
314
  private _scene;
248
315
  private _objects;
249
316
  private _rootObjects;
250
317
  private _elementMap;
251
318
  private engine;
252
- private _modelLoader;
319
+ private _modelLoader?;
320
+ private _modelLoaderFactory?;
321
+ private _modelLoaderCache;
253
322
  get rootObjects(): String3DObject[];
254
- constructor(engine: I3DEngine, modelLoader?: any);
323
+ constructor(engine: I3DEngine, options?: String3DSceneOptions);
255
324
  getScene(): I3DScene;
256
325
  getObject(id: string): String3DObject | undefined;
257
326
  hasObject(id: string): boolean;
@@ -259,13 +328,21 @@ declare class String3DScene {
259
328
  createFromElement(object: StringObject): void;
260
329
  private createGroup;
261
330
  private createLight;
331
+ private applyShadowProps;
262
332
  private createBox;
263
333
  private createSphere;
264
334
  private createPlane;
265
335
  private createCylinder;
266
336
  private createModel;
337
+ private resolveModelLoader;
338
+ private centerObject;
339
+ private getBoxCenter;
267
340
  private createMaterialFromObject;
341
+ private createMaterialFromElement;
268
342
  private loadTexture;
343
+ private parseFlipY;
344
+ private shouldOverrideModelMaterial;
345
+ private applyModelTextureRemap;
269
346
  destroy(): void;
270
347
  }
271
348
 
@@ -323,6 +400,8 @@ declare class ThreeJSEngine implements I3DEngine {
323
400
  createMeshBasicMaterial(params?: any): I3DMaterial;
324
401
  createMeshStandardMaterial(params?: any): I3DMaterial;
325
402
  createPointLight(color?: string | number, intensity?: number, distance?: number, decay?: number): I3DLight;
403
+ createSpotLight(color?: string | number, intensity?: number, distance?: number, angle?: number, penumbra?: number, decay?: number): I3DLight;
404
+ createHemisphereLight(skyColor?: string | number, groundColor?: string | number, intensity?: number): I3DLight;
326
405
  createAmbientLight(color?: string | number, intensity?: number): I3DLight;
327
406
  createDirectionalLight(color?: string | number, intensity?: number): I3DLight;
328
407
  createTextureLoader(): I3DTextureLoader;