@combeenation/3d-viewer 4.1.0 → 4.1.1-alpha1
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/lib-cjs/api/classes/viewer.d.ts +8 -3
- package/dist/lib-cjs/api/classes/viewer.js +82 -41
- package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
- package/dist/lib-cjs/api/util/globalTypes.d.ts +5 -0
- package/package.json +1 -1
- package/src/api/classes/viewer.ts +82 -45
- package/src/api/util/globalTypes.ts +6 -1
|
@@ -99,9 +99,6 @@ export declare class Viewer extends EventBroadcaster {
|
|
|
99
99
|
* Calculates the bounding box from all visible meshes on the scene.
|
|
100
100
|
*/
|
|
101
101
|
calculateBoundingBox(): Promise<Mesh>;
|
|
102
|
-
/**
|
|
103
|
-
* Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning.
|
|
104
|
-
*/
|
|
105
102
|
autofocusActiveCamera(settings?: AutofocusSettings): Promise<void>;
|
|
106
103
|
/**
|
|
107
104
|
* Resets everything by calling {@link destroy} to clear all references and {@link bootstrap} to setup a clean
|
|
@@ -128,4 +125,12 @@ export declare class Viewer extends EventBroadcaster {
|
|
|
128
125
|
* Batch creation of multiple {@link VariantInstance} objects with a {@link SetupJson} object passed
|
|
129
126
|
*/
|
|
130
127
|
protected createVariantInstances(): Promise<VariantInstance[]>;
|
|
128
|
+
/**
|
|
129
|
+
* Help function for focusing a helper camera exactly onto the given bounding box
|
|
130
|
+
*/
|
|
131
|
+
private getFocusedHelperCamera;
|
|
132
|
+
/**
|
|
133
|
+
* Help function for applying the relevant data of the focused helper camera to the real camera
|
|
134
|
+
*/
|
|
135
|
+
private applyFocusedHelperCameraData;
|
|
131
136
|
}
|
|
@@ -345,57 +345,32 @@ var Viewer = /** @class */ (function (_super) {
|
|
|
345
345
|
});
|
|
346
346
|
});
|
|
347
347
|
};
|
|
348
|
-
/**
|
|
349
|
-
* Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning.
|
|
350
|
-
*/
|
|
351
348
|
Viewer.prototype.autofocusActiveCamera = function (settings) {
|
|
352
|
-
var _a;
|
|
353
349
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
354
|
-
var activeCamera,
|
|
355
|
-
return tslib_1.__generator(this, function (
|
|
356
|
-
switch (
|
|
350
|
+
var activeCamera, cameraClsName, boundingBox, helperCamera;
|
|
351
|
+
return tslib_1.__generator(this, function (_a) {
|
|
352
|
+
switch (_a.label) {
|
|
357
353
|
case 0:
|
|
358
354
|
activeCamera = this.scene.activeCamera;
|
|
359
355
|
if (!activeCamera) {
|
|
360
|
-
throw new Error(
|
|
356
|
+
throw new Error("No active camera found when using autofocus feature.");
|
|
357
|
+
}
|
|
358
|
+
if (!(activeCamera instanceof arcRotateCamera_1.ArcRotateCamera)) {
|
|
359
|
+
cameraClsName = activeCamera.getClassName();
|
|
360
|
+
throw new Error("Camera of type \"" + cameraClsName + "\" is not implemented yet to use autofocus feature.");
|
|
361
361
|
}
|
|
362
|
-
if (!(activeCamera instanceof arcRotateCamera_1.ArcRotateCamera)) return [3 /*break*/, 2];
|
|
363
362
|
return [4 /*yield*/, this.calculateBoundingBox()];
|
|
364
363
|
case 1:
|
|
365
|
-
boundingBox =
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
helperCamera.useFramingBehavior = true;
|
|
373
|
-
helperCamera.setTarget(boundingBox);
|
|
374
|
-
// translate values from helper to active camera
|
|
375
|
-
activeCamera.setTarget(mesh_1.Mesh.Center([boundingBox]));
|
|
376
|
-
activeCamera.alpha = helperCamera.alpha;
|
|
377
|
-
activeCamera.beta = helperCamera.beta;
|
|
378
|
-
activeCamera.minZ = helperCamera.minZ;
|
|
379
|
-
activeCamera.maxZ = helperCamera.maxZ;
|
|
380
|
-
activeCamera.radius = helperCamera.radius;
|
|
381
|
-
activeCamera.lowerRadiusLimit = helperCamera.lowerRadiusLimit;
|
|
382
|
-
activeCamera.upperRadiusLimit = helperCamera.upperRadiusLimit;
|
|
383
|
-
if ((settings === null || settings === void 0 ? void 0 : settings.adjustWheelPrecision) !== false) {
|
|
384
|
-
activeCamera.wheelPrecision = helperCamera.wheelPrecision;
|
|
385
|
-
}
|
|
386
|
-
if ((settings === null || settings === void 0 ? void 0 : settings.adjustPanningSensibility) !== false) {
|
|
387
|
-
activeCamera.panningSensibility = helperCamera.panningSensibility;
|
|
388
|
-
}
|
|
389
|
-
if ((settings === null || settings === void 0 ? void 0 : settings.adjustPinchPrecision) !== false) {
|
|
390
|
-
activeCamera.pinchPrecision = helperCamera.pinchPrecision;
|
|
391
|
-
}
|
|
364
|
+
boundingBox = _a.sent();
|
|
365
|
+
helperCamera = this.getFocusedHelperCamera(boundingBox, settings);
|
|
366
|
+
return [4 /*yield*/, this.applyFocusedHelperCameraData(activeCamera, helperCamera, settings)
|
|
367
|
+
// remove the helper camera
|
|
368
|
+
];
|
|
369
|
+
case 2:
|
|
370
|
+
_a.sent();
|
|
392
371
|
// remove the helper camera
|
|
393
372
|
helperCamera.dispose();
|
|
394
|
-
return [
|
|
395
|
-
case 2:
|
|
396
|
-
cameraClsName = activeCamera.getClassName();
|
|
397
|
-
throw new Error("Camera of type \"" + cameraClsName + "\" is not implemented yet to use autofocus feature.");
|
|
398
|
-
case 3: return [2 /*return*/];
|
|
373
|
+
return [2 /*return*/];
|
|
399
374
|
}
|
|
400
375
|
});
|
|
401
376
|
});
|
|
@@ -561,6 +536,72 @@ var Viewer = /** @class */ (function (_super) {
|
|
|
561
536
|
});
|
|
562
537
|
});
|
|
563
538
|
};
|
|
539
|
+
/**
|
|
540
|
+
* Help function for focusing a helper camera exactly onto the given bounding box
|
|
541
|
+
*/
|
|
542
|
+
Viewer.prototype.getFocusedHelperCamera = function (boundingBox, settings) {
|
|
543
|
+
var _a, _b;
|
|
544
|
+
// use helper camera to get some default values and set the values of the real camera accordingly
|
|
545
|
+
var helperCamera = new arcRotateCamera_1.ArcRotateCamera("__helper_camera__", 0, // camera angles will be overwritten after the target has been set
|
|
546
|
+
0, 0, // radius will be calculated, so we can set to 0 here
|
|
547
|
+
math_vector_1.Vector3.Zero(), this.scene);
|
|
548
|
+
// this is required for automatically calculating the `lowerRadiusLimit`, so that we don't "dive" into meshes
|
|
549
|
+
// see https://doc.babylonjs.com/divingDeeper/behaviors/cameraBehaviors#framing-behavior
|
|
550
|
+
helperCamera.useFramingBehavior = true;
|
|
551
|
+
// `minZ` is the camera distance beyond which the mesh will be clipped
|
|
552
|
+
// this should be very low, but can't be zero
|
|
553
|
+
// a good value seems to be 1% of the bounding box size (= radius), whereas the value shouldn't go above 1, which is also the default value
|
|
554
|
+
var radius = boundingBox.getBoundingInfo().boundingSphere.radius;
|
|
555
|
+
helperCamera.minZ = Math.min(radius / 100, 1);
|
|
556
|
+
// set desired camera data, these won't be changed by the autofocus function!
|
|
557
|
+
// default values should focus the element exactly from the front (= XY Plane)
|
|
558
|
+
helperCamera.setTarget(boundingBox, true);
|
|
559
|
+
helperCamera.alpha = ((_a = settings === null || settings === void 0 ? void 0 : settings.alpha) !== null && _a !== void 0 ? _a : -90) * (Math.PI / 180);
|
|
560
|
+
helperCamera.beta = ((_b = settings === null || settings === void 0 ? void 0 : settings.beta) !== null && _b !== void 0 ? _b : 90) * (Math.PI / 180);
|
|
561
|
+
// finally zoom to the bounding box
|
|
562
|
+
// also apply a zoom factor, this adjusts the borders around the model in the viewport
|
|
563
|
+
helperCamera.zoomOnFactor = (settings === null || settings === void 0 ? void 0 : settings.radiusFactor) || 1;
|
|
564
|
+
helperCamera.zoomOn([boundingBox], true);
|
|
565
|
+
return helperCamera;
|
|
566
|
+
};
|
|
567
|
+
/**
|
|
568
|
+
* Help function for applying the relevant data of the focused helper camera to the real camera
|
|
569
|
+
*/
|
|
570
|
+
Viewer.prototype.applyFocusedHelperCameraData = function (activeCamera, helperCamera, settings) {
|
|
571
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
572
|
+
var newCameraPosition;
|
|
573
|
+
return tslib_1.__generator(this, function (_a) {
|
|
574
|
+
switch (_a.label) {
|
|
575
|
+
case 0:
|
|
576
|
+
// limits
|
|
577
|
+
activeCamera.minZ = helperCamera.minZ;
|
|
578
|
+
activeCamera.maxZ = helperCamera.maxZ;
|
|
579
|
+
activeCamera.lowerRadiusLimit = helperCamera.lowerRadiusLimit;
|
|
580
|
+
activeCamera.upperRadiusLimit = helperCamera.upperRadiusLimit;
|
|
581
|
+
// additional settings
|
|
582
|
+
if ((settings === null || settings === void 0 ? void 0 : settings.adjustWheelPrecision) !== false) {
|
|
583
|
+
activeCamera.wheelPrecision = helperCamera.wheelPrecision;
|
|
584
|
+
}
|
|
585
|
+
if ((settings === null || settings === void 0 ? void 0 : settings.adjustPanningSensibility) !== false) {
|
|
586
|
+
activeCamera.panningSensibility = helperCamera.panningSensibility;
|
|
587
|
+
}
|
|
588
|
+
if ((settings === null || settings === void 0 ? void 0 : settings.adjustPinchPrecision) !== false) {
|
|
589
|
+
activeCamera.pinchPrecision = helperCamera.pinchPrecision;
|
|
590
|
+
}
|
|
591
|
+
newCameraPosition = {
|
|
592
|
+
alpha: helperCamera.alpha,
|
|
593
|
+
beta: helperCamera.beta,
|
|
594
|
+
radius: helperCamera.radius,
|
|
595
|
+
target: helperCamera.target
|
|
596
|
+
};
|
|
597
|
+
return [4 /*yield*/, this.animationManager.animateToPlacement(activeCamera, newCameraPosition, settings === null || settings === void 0 ? void 0 : settings.animation)];
|
|
598
|
+
case 1:
|
|
599
|
+
_a.sent();
|
|
600
|
+
return [2 /*return*/];
|
|
601
|
+
}
|
|
602
|
+
});
|
|
603
|
+
});
|
|
604
|
+
};
|
|
564
605
|
Viewer.version = buildinfo_json_1.version;
|
|
565
606
|
return Viewer;
|
|
566
607
|
}(eventBroadcaster_1.EventBroadcaster));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../../../src/api/classes/viewer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../../../src/api/classes/viewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -212,6 +212,11 @@ declare type AutofocusSettings = {
|
|
|
212
212
|
adjustWheelPrecision?: boolean;
|
|
213
213
|
adjustPanningSensibility?: boolean;
|
|
214
214
|
adjustPinchPrecision?: boolean;
|
|
215
|
+
/** Desired camera angles, these won't be overwritten by the autofocus function, only the camera radius is adjusted */
|
|
216
|
+
alpha?: number;
|
|
217
|
+
beta?: number;
|
|
218
|
+
/** Optional animation for the focusing camera movement */
|
|
219
|
+
animation?: string | AnimationDefinition;
|
|
215
220
|
};
|
|
216
221
|
declare type LightDefinitions = {
|
|
217
222
|
[name: string]: LightDefinition | string;
|
package/package.json
CHANGED
|
@@ -302,57 +302,26 @@ export class Viewer extends EventBroadcaster {
|
|
|
302
302
|
return boundingBox;
|
|
303
303
|
}
|
|
304
304
|
|
|
305
|
-
/**
|
|
306
|
-
* Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning.
|
|
307
|
-
*/
|
|
308
305
|
public async autofocusActiveCamera( settings?: AutofocusSettings ) {
|
|
306
|
+
// first check some preconditions
|
|
309
307
|
const activeCamera = this.scene.activeCamera;
|
|
310
|
-
if( !activeCamera ) {
|
|
311
|
-
throw new Error(
|
|
308
|
+
if ( !activeCamera ) {
|
|
309
|
+
throw new Error("No active camera found when using autofocus feature.");
|
|
312
310
|
}
|
|
313
|
-
if( activeCamera instanceof ArcRotateCamera ) {
|
|
314
|
-
// calculate some values
|
|
315
|
-
const boundingBox = await this.calculateBoundingBox();
|
|
316
|
-
const size = boundingBox.getBoundingInfo().maximum.subtract( boundingBox.getBoundingInfo().minimum );
|
|
317
|
-
let radius = size.length() * (settings?.radiusFactor ?? 1.5);
|
|
318
|
-
if( !isFinite( radius ) ) {
|
|
319
|
-
radius = 1;
|
|
320
|
-
}
|
|
321
|
-
// use helper camera to get some default values
|
|
322
|
-
const helperCamera = new ArcRotateCamera(
|
|
323
|
-
'__helper_camera__',
|
|
324
|
-
Math.PI / -2,
|
|
325
|
-
Math.PI / 2,
|
|
326
|
-
radius,
|
|
327
|
-
Vector3.Zero(),
|
|
328
|
-
this.scene
|
|
329
|
-
);
|
|
330
|
-
helperCamera.useFramingBehavior = true;
|
|
331
|
-
helperCamera.setTarget( boundingBox );
|
|
332
|
-
// translate values from helper to active camera
|
|
333
|
-
activeCamera.setTarget( Mesh.Center( [boundingBox] ) );
|
|
334
|
-
activeCamera.alpha = helperCamera.alpha;
|
|
335
|
-
activeCamera.beta = helperCamera.beta;
|
|
336
|
-
activeCamera.minZ = helperCamera.minZ;
|
|
337
|
-
activeCamera.maxZ = helperCamera.maxZ;
|
|
338
|
-
activeCamera.radius = helperCamera.radius;
|
|
339
|
-
activeCamera.lowerRadiusLimit = helperCamera.lowerRadiusLimit;
|
|
340
|
-
activeCamera.upperRadiusLimit = helperCamera.upperRadiusLimit;
|
|
341
|
-
if( settings?.adjustWheelPrecision !== false ) {
|
|
342
|
-
activeCamera.wheelPrecision = helperCamera.wheelPrecision;
|
|
343
|
-
}
|
|
344
|
-
if( settings?.adjustPanningSensibility !== false ) {
|
|
345
|
-
activeCamera.panningSensibility = helperCamera.panningSensibility;
|
|
346
|
-
}
|
|
347
|
-
if( settings?.adjustPinchPrecision !== false ) {
|
|
348
|
-
activeCamera.pinchPrecision = helperCamera.pinchPrecision;
|
|
349
|
-
}
|
|
350
|
-
// remove the helper camera
|
|
351
|
-
helperCamera.dispose();
|
|
352
|
-
} else {
|
|
311
|
+
if ( !( activeCamera instanceof ArcRotateCamera ) ) {
|
|
353
312
|
const cameraClsName = activeCamera.getClassName();
|
|
354
313
|
throw new Error( `Camera of type "${cameraClsName}" is not implemented yet to use autofocus feature.` );
|
|
355
314
|
}
|
|
315
|
+
|
|
316
|
+
// get bounding box of all visible meshes, this is the base for the autofocus algorithm
|
|
317
|
+
const boundingBox = await this.calculateBoundingBox();
|
|
318
|
+
|
|
319
|
+
// focus the helper camera and set the calculated camera data to the real camera
|
|
320
|
+
const helperCamera = this.getFocusedHelperCamera( boundingBox, settings )
|
|
321
|
+
await this.applyFocusedHelperCameraData( activeCamera, helperCamera, settings )
|
|
322
|
+
|
|
323
|
+
// remove the helper camera
|
|
324
|
+
helperCamera.dispose();
|
|
356
325
|
}
|
|
357
326
|
|
|
358
327
|
/**
|
|
@@ -485,4 +454,72 @@ export class Viewer extends EventBroadcaster {
|
|
|
485
454
|
return instances;
|
|
486
455
|
}
|
|
487
456
|
|
|
457
|
+
/**
|
|
458
|
+
* Help function for focusing a helper camera exactly onto the given bounding box
|
|
459
|
+
*/
|
|
460
|
+
private getFocusedHelperCamera(boundingBox: Mesh, settings?: AutofocusSettings): ArcRotateCamera {
|
|
461
|
+
// use helper camera to get some default values and set the values of the real camera accordingly
|
|
462
|
+
const helperCamera = new ArcRotateCamera(
|
|
463
|
+
"__helper_camera__",
|
|
464
|
+
0, // camera angles will be overwritten after the target has been set
|
|
465
|
+
0,
|
|
466
|
+
0, // radius will be calculated, so we can set to 0 here
|
|
467
|
+
Vector3.Zero(),
|
|
468
|
+
this.scene
|
|
469
|
+
);
|
|
470
|
+
// this is required for automatically calculating the `lowerRadiusLimit`, so that we don't "dive" into meshes
|
|
471
|
+
// see https://doc.babylonjs.com/divingDeeper/behaviors/cameraBehaviors#framing-behavior
|
|
472
|
+
helperCamera.useFramingBehavior = true;
|
|
473
|
+
|
|
474
|
+
// `minZ` is the camera distance beyond which the mesh will be clipped
|
|
475
|
+
// this should be very low, but can't be zero
|
|
476
|
+
// a good value seems to be 1% of the bounding box size (= radius), whereas the value shouldn't go above 1, which is also the default value
|
|
477
|
+
const radius = boundingBox.getBoundingInfo().boundingSphere.radius;
|
|
478
|
+
helperCamera.minZ = Math.min(radius/100, 1);
|
|
479
|
+
|
|
480
|
+
// set desired camera data, these won't be changed by the autofocus function!
|
|
481
|
+
// default values should focus the element exactly from the front (= XY Plane)
|
|
482
|
+
helperCamera.setTarget(boundingBox, true);
|
|
483
|
+
helperCamera.alpha = ( settings?.alpha ?? - 90 ) * ( Math.PI / 180 );
|
|
484
|
+
helperCamera.beta = ( settings?.beta ?? 90 ) * ( Math.PI / 180 );
|
|
485
|
+
|
|
486
|
+
// finally zoom to the bounding box
|
|
487
|
+
// also apply a zoom factor, this adjusts the borders around the model in the viewport
|
|
488
|
+
helperCamera.zoomOnFactor = settings?.radiusFactor || 1;
|
|
489
|
+
helperCamera.zoomOn( [boundingBox], true );
|
|
490
|
+
|
|
491
|
+
return helperCamera;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
/**
|
|
495
|
+
* Help function for applying the relevant data of the focused helper camera to the real camera
|
|
496
|
+
*/
|
|
497
|
+
private async applyFocusedHelperCameraData(activeCamera: ArcRotateCamera, helperCamera: ArcRotateCamera, settings?: AutofocusSettings) {
|
|
498
|
+
// limits
|
|
499
|
+
activeCamera.minZ = helperCamera.minZ;
|
|
500
|
+
activeCamera.maxZ = helperCamera.maxZ;
|
|
501
|
+
activeCamera.lowerRadiusLimit = helperCamera.lowerRadiusLimit;
|
|
502
|
+
activeCamera.upperRadiusLimit = helperCamera.upperRadiusLimit;
|
|
503
|
+
|
|
504
|
+
// additional settings
|
|
505
|
+
if( settings?.adjustWheelPrecision !== false ) {
|
|
506
|
+
activeCamera.wheelPrecision = helperCamera.wheelPrecision;
|
|
507
|
+
}
|
|
508
|
+
if( settings?.adjustPanningSensibility !== false ) {
|
|
509
|
+
activeCamera.panningSensibility = helperCamera.panningSensibility;
|
|
510
|
+
}
|
|
511
|
+
if( settings?.adjustPinchPrecision !== false ) {
|
|
512
|
+
activeCamera.pinchPrecision = helperCamera.pinchPrecision;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
// finally move the camera
|
|
516
|
+
// do this at last, so that all camera settings are already considered
|
|
517
|
+
const newCameraPosition: PlacementDefinition = {
|
|
518
|
+
alpha: helperCamera.alpha,
|
|
519
|
+
beta: helperCamera.beta,
|
|
520
|
+
radius: helperCamera.radius,
|
|
521
|
+
target: helperCamera.target
|
|
522
|
+
}
|
|
523
|
+
await this.animationManager.animateToPlacement(activeCamera, newCameraPosition, settings?.animation)
|
|
524
|
+
}
|
|
488
525
|
}
|
|
@@ -233,7 +233,12 @@ type AutofocusSettings = {
|
|
|
233
233
|
radiusFactor?: number,
|
|
234
234
|
adjustWheelPrecision?: boolean,
|
|
235
235
|
adjustPanningSensibility?: boolean,
|
|
236
|
-
adjustPinchPrecision?: boolean
|
|
236
|
+
adjustPinchPrecision?: boolean,
|
|
237
|
+
/** Desired camera angles, these won't be overwritten by the autofocus function, only the camera radius is adjusted */
|
|
238
|
+
alpha?: number;
|
|
239
|
+
beta?: number;
|
|
240
|
+
/** Optional animation for the focusing camera movement */
|
|
241
|
+
animation?: string | AnimationDefinition
|
|
237
242
|
};
|
|
238
243
|
|
|
239
244
|
type LightDefinitions = {
|