@inweb/viewer-visualize 25.3.13 → 25.3.15

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.
@@ -352,6 +352,334 @@ class Options {
352
352
 
353
353
  const CANVAS_EVENTS = [ "click", "dblclick", "mousedown", "mousemove", "mouseup", "mouseleave", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "wheel", "touchstart", "touchmove", "touchend", "touchcancel" ];
354
354
 
355
+ const composeMatrixFromTransform = (translate, rotate, scale, modelCenter, matrix) => {
356
+ const translateMatrix = matrix.setTranslation([ translate.x, translate.y, translate.z ]);
357
+ const rotateMatrix = matrix.setToRotation(rotate.angle, [ rotate.x, rotate.y, rotate.z ], modelCenter);
358
+ const scaleMatrix = matrix.setToScaling(scale, modelCenter);
359
+ return translateMatrix.postMultBy(rotateMatrix).postMultBy(scaleMatrix);
360
+ };
361
+
362
+ function applyModelTransform(viewer, model) {
363
+ var _a;
364
+ if (!viewer.visualizeJs) return;
365
+ if (!model.getModelTransformMatrix) return;
366
+ const visLib = viewer.visLib();
367
+ const visViewer = visLib.getViewer();
368
+ const modelItr = visViewer.getModelIterator();
369
+ for (;!modelItr.done(); modelItr.step()) {
370
+ const modelPtr = modelItr.getModel();
371
+ const transform = model.getModelTransformMatrix(modelPtr.getDatabaseHandle());
372
+ if (transform) {
373
+ const extents = modelPtr.getExtents();
374
+ const matrix = composeMatrixFromTransform(transform.translate, transform.rotation, transform.scale, extents.center(), new visLib.Matrix3d);
375
+ modelPtr.setModelingMatrix(matrix, true);
376
+ }
377
+ }
378
+ modelItr.delete();
379
+ (_a = visViewer.clearViewExtentsCache) === null || _a === void 0 ? void 0 : _a.call(visViewer);
380
+ viewer.update();
381
+ }
382
+
383
+ commands("VisualizeJS").registerCommand("applyModelTransform", applyModelTransform);
384
+
385
+ commands("VisualizeJS").registerCommand("clearMarkup", (viewer => viewer.clearOverlay()));
386
+
387
+ commands("VisualizeJS").registerCommandAlias("clearMarkup", "clearOverlay");
388
+
389
+ commands("VisualizeJS").registerCommand("clearSlices", (viewer => viewer.clearSlices()));
390
+
391
+ function createPreview(viewer, type = "image/jpeg", encoderOptions = .25) {
392
+ var _a;
393
+ if (!viewer.visualizeJs) return "";
394
+ return ((_a = viewer.canvas) === null || _a === void 0 ? void 0 : _a.toDataURL(type, encoderOptions)) || "";
395
+ }
396
+
397
+ commands("VisualizeJS").registerCommand("createPreview", createPreview);
398
+
399
+ function explode(viewer, index = 0) {
400
+ if (!viewer.visualizeJs) return;
401
+ const visViewer = viewer.visViewer();
402
+ visViewer.explode(index);
403
+ viewer.update();
404
+ viewer.emit({
405
+ type: "explode",
406
+ data: index
407
+ });
408
+ }
409
+
410
+ commands("VisualizeJS").registerCommand("explode", explode);
411
+
412
+ commands("VisualizeJS").registerCommand("collect", (viewer => explode(viewer, 0)));
413
+
414
+ function getDefaultViewPositions(viewer) {
415
+ if (!viewer.visualizeJs) return [];
416
+ const visLib = viewer.visLib();
417
+ const defViewPos = visLib.DefaultViewPosition;
418
+ return Object.keys(defViewPos).filter((x => x !== "values"));
419
+ }
420
+
421
+ commands("VisualizeJS").registerCommand("getDefaultViewPositions", getDefaultViewPositions);
422
+
423
+ function getModels(viewer) {
424
+ if (!viewer.visualizeJs) return [];
425
+ const visViewer = viewer.visViewer();
426
+ const handles = [];
427
+ const modelItr = visViewer.getModelIterator();
428
+ for (;!modelItr.done(); modelItr.step()) {
429
+ const modelPtr = modelItr.getModel();
430
+ if (modelPtr.getName()[0] !== "$") handles.push(modelPtr.getDatabaseHandle());
431
+ }
432
+ modelItr.delete();
433
+ return handles;
434
+ }
435
+
436
+ commands("VisualizeJS").registerCommand("getModels", getModels);
437
+
438
+ function getSelected(viewer) {
439
+ if (!viewer.visualizeJs) return [];
440
+ const visViewer = viewer.visViewer();
441
+ const handles = [];
442
+ const selectionSet = visViewer.getSelected();
443
+ if (!selectionSet.isNull() && selectionSet.numItems() !== 0) {
444
+ const itr = selectionSet.getIterator();
445
+ for (;!itr.done(); itr.step()) {
446
+ const entityId = itr.getEntity();
447
+ const entityPtr = entityId.getType() === 1 ? entityId.openObject() : entityId.getType() === 2 ? entityId.openObjectAsInsert() : null;
448
+ if (entityPtr) {
449
+ const handle = entityPtr.getNativeDatabaseHandle();
450
+ if (handle !== "-1") handles.push(handle);
451
+ entityPtr.delete();
452
+ }
453
+ }
454
+ itr.delete();
455
+ }
456
+ return handles;
457
+ }
458
+
459
+ commands("VisualizeJS").registerCommand("getSelected", getSelected);
460
+
461
+ function hideSelected(viewer) {
462
+ if (!viewer.visualizeJs) return;
463
+ const visViewer = viewer.visViewer();
464
+ visViewer.hideSelectedObjects(false);
465
+ viewer.update();
466
+ viewer.emit({
467
+ type: "hide"
468
+ });
469
+ }
470
+
471
+ commands("VisualizeJS").registerCommand("hideSelected", hideSelected);
472
+
473
+ function isolateSelected(viewer) {
474
+ if (!viewer.visualizeJs) return;
475
+ const visViewer = viewer.visViewer();
476
+ visViewer.isolateSelectedObjects(false);
477
+ viewer.update();
478
+ viewer.emit({
479
+ type: "isolate"
480
+ });
481
+ }
482
+
483
+ commands("VisualizeJS").registerCommand("isolateSelected", isolateSelected);
484
+
485
+ function regenerateAll(viewer) {
486
+ if (!viewer.visualizeJs) return;
487
+ const visViewer = viewer.visViewer();
488
+ visViewer.regenAll();
489
+ viewer.update();
490
+ viewer.emit({
491
+ type: "regenerateall"
492
+ });
493
+ }
494
+
495
+ commands("VisualizeJS").registerCommand("regenerateAll", regenerateAll);
496
+
497
+ function resetView(viewer) {
498
+ if (!viewer.visualizeJs) return;
499
+ viewer.executeCommand("setActiveDragger", "");
500
+ viewer.executeCommand("clearSlices");
501
+ viewer.executeCommand("clearOverlay");
502
+ viewer.executeCommand("setMarkupColor");
503
+ viewer.executeCommand("unselect");
504
+ viewer.executeCommand("showAll");
505
+ viewer.executeCommand("explode", 0);
506
+ viewer.executeCommand("zoomToExtents", true);
507
+ viewer.executeCommand("k3DViewSW");
508
+ viewer.emit({
509
+ type: "resetview"
510
+ });
511
+ }
512
+
513
+ commands("VisualizeJS").registerCommand("resetView", resetView);
514
+
515
+ function selectModel(viewer, handle) {
516
+ if (!viewer.visualizeJs) return;
517
+ const visViewer = viewer.visViewer();
518
+ const activeView = visViewer.activeView;
519
+ const modelItr = visViewer.getModelIterator();
520
+ for (;!modelItr.done(); modelItr.step()) {
521
+ const modelPtr = modelItr.getModel();
522
+ if (modelPtr.getDatabaseHandle() === handle) {
523
+ const selectionSet = activeView.selectCrossing([ 0, 9999, 9999, 0 ], modelPtr);
524
+ visViewer.setSelected(selectionSet);
525
+ const handles = viewer.getSelected();
526
+ viewer.update();
527
+ viewer.emitEvent({
528
+ type: "select",
529
+ data: selectionSet,
530
+ handles: handles
531
+ });
532
+ selectionSet.delete();
533
+ break;
534
+ }
535
+ }
536
+ modelItr.delete();
537
+ }
538
+
539
+ commands("VisualizeJS").registerCommand("selectModel", selectModel);
540
+
541
+ commands("VisualizeJS").registerCommand("setActiveDragger", ((viewer, dragger = "") => {
542
+ viewer.setActiveDragger(dragger);
543
+ }));
544
+
545
+ function setDefaultViewPosition(viewer, position = "") {
546
+ if (!viewer.visualizeJs) return;
547
+ const visLib = viewer.visLib();
548
+ const visViewer = viewer.visViewer();
549
+ const defViewPos = visLib.DefaultViewPosition;
550
+ visViewer.setDefaultViewPositionWithAnimation(defViewPos[position]);
551
+ viewer.update();
552
+ viewer.emit({
553
+ type: "viewposition",
554
+ data: position
555
+ });
556
+ }
557
+
558
+ commands("VisualizeJS").registerCommand("setDefaultViewPosition", setDefaultViewPosition);
559
+
560
+ commands("VisualizeJS").registerCommand("k3DViewTop", (viewer => setDefaultViewPosition(viewer, "k3DViewTop")));
561
+
562
+ commands("VisualizeJS").registerCommand("k3DViewBottom", (viewer => setDefaultViewPosition(viewer, "k3DViewBottom")));
563
+
564
+ commands("VisualizeJS").registerCommand("k3DViewLeft", (viewer => setDefaultViewPosition(viewer, "k3DViewLeft")));
565
+
566
+ commands("VisualizeJS").registerCommand("k3DViewRight", (viewer => setDefaultViewPosition(viewer, "k3DViewRight")));
567
+
568
+ commands("VisualizeJS").registerCommand("k3DViewFront", (viewer => setDefaultViewPosition(viewer, "k3DViewFront")));
569
+
570
+ commands("VisualizeJS").registerCommand("k3DViewBack", (viewer => setDefaultViewPosition(viewer, "k3DViewBack")));
571
+
572
+ commands("VisualizeJS").registerCommand("k3DViewSE", (viewer => setDefaultViewPosition(viewer, "k3DViewSE")));
573
+
574
+ commands("VisualizeJS").registerCommand("k3DViewSW", (viewer => setDefaultViewPosition(viewer, "k3DViewSW")));
575
+
576
+ commands("VisualizeJS").registerCommand("k3DViewNE", (viewer => setDefaultViewPosition(viewer, "k3DViewNE")));
577
+
578
+ commands("VisualizeJS").registerCommand("k3DViewNW", (viewer => setDefaultViewPosition(viewer, "k3DViewNW")));
579
+
580
+ commands("VisualizeJS").registerCommand("setMarkupColor", ((viewer, r = 255, g = 0, b = 0) => {
581
+ viewer.setMarkupColor(r, g, b);
582
+ }));
583
+
584
+ function setSelected(viewer, handles = []) {
585
+ if (!viewer.visualizeJs) return;
586
+ const visLib = viewer.visLib();
587
+ const visViewer = visLib.getViewer();
588
+ const selectionSet = new visLib.OdTvSelectionSet;
589
+ handles === null || handles === void 0 ? void 0 : handles.forEach((handle => {
590
+ const entityId = visViewer.getEntityByOriginalHandle(handle + "");
591
+ if (!entityId.isNull()) selectionSet.appendEntity(entityId);
592
+ }));
593
+ visViewer.setSelected(selectionSet);
594
+ viewer.update();
595
+ viewer.emitEvent({
596
+ type: "select",
597
+ data: selectionSet,
598
+ handles: handles
599
+ });
600
+ selectionSet.delete();
601
+ }
602
+
603
+ commands("VisualizeJS").registerCommand("setSelected", setSelected);
604
+
605
+ function showAll(viewer) {
606
+ if (!viewer.visualizeJs) return;
607
+ const visViewer = viewer.visViewer();
608
+ visViewer.unisolateSelectedObjects(false);
609
+ viewer.update();
610
+ viewer.emit({
611
+ type: "showall"
612
+ });
613
+ }
614
+
615
+ commands("VisualizeJS").registerCommand("showAll", showAll);
616
+
617
+ function unselect(viewer) {
618
+ if (!viewer.visualizeJs) return;
619
+ const visViewer = viewer.visViewer();
620
+ visViewer.unselect();
621
+ viewer.update();
622
+ viewer.emitEvent({
623
+ type: "select",
624
+ data: visViewer.getSelected(),
625
+ handles: []
626
+ });
627
+ }
628
+
629
+ commands("VisualizeJS").registerCommand("unselect", unselect);
630
+
631
+ function zoomToExtents(viewer, force = false, animate = viewer.options.cameraAnimation) {
632
+ if (!viewer.visualizeJs) return;
633
+ const visViewer = viewer.visViewer();
634
+ const saveEnableAmination = visViewer.getEnableAnimation();
635
+ visViewer.setEnableAnimation(animate);
636
+ visViewer.zoomExtents(force);
637
+ visViewer.update();
638
+ visViewer.setEnableAnimation(saveEnableAmination);
639
+ viewer.update();
640
+ viewer.emitEvent({
641
+ type: "zoom"
642
+ });
643
+ }
644
+
645
+ commands("VisualizeJS").registerCommand("zoomToExtents", zoomToExtents);
646
+
647
+ commands("VisualizeJS").registerCommandAlias("zoomToExtents", "zoomExtents");
648
+
649
+ function zoomToObjects(viewer, handles = []) {
650
+ var _a;
651
+ if (!viewer.visualizeJs) return;
652
+ const visLib = viewer.visLib();
653
+ const visViewer = viewer.visViewer();
654
+ const selectionSet = new visLib.OdTvSelectionSet;
655
+ handles.forEach((handle => {
656
+ const entityId = visViewer.getEntityByOriginalHandle(handle + "");
657
+ if (!entityId.isNull()) selectionSet.appendEntity(entityId);
658
+ }));
659
+ (_a = visViewer.zoomToObjects) === null || _a === void 0 ? void 0 : _a.call(visViewer, selectionSet);
660
+ viewer.update();
661
+ viewer.emitEvent({
662
+ type: "zoom"
663
+ });
664
+ selectionSet.delete();
665
+ }
666
+
667
+ commands("VisualizeJS").registerCommand("zoomToObjects", zoomToObjects);
668
+
669
+ function zoomToSelected(viewer) {
670
+ var _a;
671
+ if (!viewer.visualizeJs) return;
672
+ const visViewer = viewer.visViewer();
673
+ const selectionSet = visViewer.getSelected();
674
+ (_a = visViewer.zoomToObjects) === null || _a === void 0 ? void 0 : _a.call(visViewer, selectionSet);
675
+ viewer.update();
676
+ viewer.emitEvent({
677
+ type: "zoom"
678
+ });
679
+ }
680
+
681
+ commands("VisualizeJS").registerCommand("zoomToSelected", zoomToSelected);
682
+
355
683
  class EventEmitter2 {
356
684
  constructor() {
357
685
  this._listeners = undefined;