three-render-objects 1.27.4 → 1.27.6

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.
@@ -12,15 +12,12 @@ import Kapsule from 'kapsule';
12
12
  function styleInject(css, ref) {
13
13
  if (ref === void 0) ref = {};
14
14
  var insertAt = ref.insertAt;
15
-
16
15
  if (!css || typeof document === 'undefined') {
17
16
  return;
18
17
  }
19
-
20
18
  var head = document.head || document.getElementsByTagName('head')[0];
21
19
  var style = document.createElement('style');
22
20
  style.type = 'text/css';
23
-
24
21
  if (insertAt === 'top') {
25
22
  if (head.firstChild) {
26
23
  head.insertBefore(style, head.firstChild);
@@ -30,7 +27,6 @@ function styleInject(css, ref) {
30
27
  } else {
31
28
  head.appendChild(style);
32
29
  }
33
-
34
30
  if (style.styleSheet) {
35
31
  style.styleSheet.cssText = css;
36
32
  } else {
@@ -52,44 +48,33 @@ function _defineProperty(obj, key, value) {
52
48
  } else {
53
49
  obj[key] = value;
54
50
  }
55
-
56
51
  return obj;
57
52
  }
58
-
59
53
  function _slicedToArray(arr, i) {
60
54
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
61
55
  }
62
-
63
56
  function _toConsumableArray(arr) {
64
57
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
65
58
  }
66
-
67
59
  function _arrayWithoutHoles(arr) {
68
60
  if (Array.isArray(arr)) return _arrayLikeToArray(arr);
69
61
  }
70
-
71
62
  function _arrayWithHoles(arr) {
72
63
  if (Array.isArray(arr)) return arr;
73
64
  }
74
-
75
65
  function _iterableToArray(iter) {
76
66
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
77
67
  }
78
-
79
68
  function _iterableToArrayLimit(arr, i) {
80
69
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
81
-
82
70
  if (_i == null) return;
83
71
  var _arr = [];
84
72
  var _n = true;
85
73
  var _d = false;
86
-
87
74
  var _s, _e;
88
-
89
75
  try {
90
76
  for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
91
77
  _arr.push(_s.value);
92
-
93
78
  if (i && _arr.length === i) break;
94
79
  }
95
80
  } catch (err) {
@@ -102,10 +87,8 @@ function _iterableToArrayLimit(arr, i) {
102
87
  if (_d) throw _e;
103
88
  }
104
89
  }
105
-
106
90
  return _arr;
107
91
  }
108
-
109
92
  function _unsupportedIterableToArray(o, minLen) {
110
93
  if (!o) return;
111
94
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
@@ -114,19 +97,14 @@ function _unsupportedIterableToArray(o, minLen) {
114
97
  if (n === "Map" || n === "Set") return Array.from(o);
115
98
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
116
99
  }
117
-
118
100
  function _arrayLikeToArray(arr, len) {
119
101
  if (len == null || len > arr.length) len = arr.length;
120
-
121
102
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
122
-
123
103
  return arr2;
124
104
  }
125
-
126
105
  function _nonIterableSpread() {
127
106
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
128
107
  }
129
-
130
108
  function _nonIterableRest() {
131
109
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
132
110
  }
@@ -240,11 +218,9 @@ var threeRenderObjects = Kapsule({
240
218
  state.extraRenderers.forEach(function (r) {
241
219
  return r.render(state.scene, state.camera);
242
220
  });
243
-
244
221
  if (state.enablePointerInteraction) {
245
222
  // Update tooltip and trigger onHover events
246
223
  var topObject = null;
247
-
248
224
  if (state.hoverDuringDrag || !state.isPointerDragging) {
249
225
  var intersects = this.intersectingObjects(state.pointerPos.x, state.pointerPos.y).filter(function (d) {
250
226
  return state.hoverFilter(d.object);
@@ -255,14 +231,12 @@ var threeRenderObjects = Kapsule({
255
231
  topObject = topIntersect ? topIntersect.object : null;
256
232
  state.intersectionPoint = topIntersect ? topIntersect.point : null;
257
233
  }
258
-
259
234
  if (topObject !== state.hoverObj) {
260
235
  state.onHover(topObject, state.hoverObj);
261
236
  state.toolTipElem.innerHTML = topObject ? accessorFn(state.tooltipContent)(topObject) || '' : '';
262
237
  state.hoverObj = topObject;
263
238
  }
264
239
  }
265
-
266
240
  TWEEN.update(); // update camera animation tweens
267
241
  }
268
242
 
@@ -270,16 +244,17 @@ var threeRenderObjects = Kapsule({
270
244
  },
271
245
  getPointerPos: function getPointerPos(state) {
272
246
  var _state$pointerPos = state.pointerPos,
273
- x = _state$pointerPos.x,
274
- y = _state$pointerPos.y;
247
+ x = _state$pointerPos.x,
248
+ y = _state$pointerPos.y;
275
249
  return {
276
250
  x: x,
277
251
  y: y
278
252
  };
279
253
  },
280
254
  cameraPosition: function cameraPosition(state, position, lookAt, transitionDuration) {
281
- var camera = state.camera; // Setter
255
+ var camera = state.camera;
282
256
 
257
+ // Setter
283
258
  if (position && state.initialised) {
284
259
  var finalPos = position;
285
260
  var finalLookAt = lookAt || {
@@ -287,7 +262,6 @@ var threeRenderObjects = Kapsule({
287
262
  y: 0,
288
263
  z: 0
289
264
  };
290
-
291
265
  if (!transitionDuration) {
292
266
  // no animation
293
267
  setCameraPos(finalPos);
@@ -295,31 +269,31 @@ var threeRenderObjects = Kapsule({
295
269
  } else {
296
270
  var camPos = Object.assign({}, camera.position);
297
271
  var camLookAt = getLookAt();
298
- new TWEEN.Tween(camPos).to(finalPos, transitionDuration).easing(TWEEN.Easing.Quadratic.Out).onUpdate(setCameraPos).start(); // Face direction in 1/3rd of time
272
+ new TWEEN.Tween(camPos).to(finalPos, transitionDuration).easing(TWEEN.Easing.Quadratic.Out).onUpdate(setCameraPos).start();
299
273
 
274
+ // Face direction in 1/3rd of time
300
275
  new TWEEN.Tween(camLookAt).to(finalLookAt, transitionDuration / 3).easing(TWEEN.Easing.Quadratic.Out).onUpdate(setLookAt).start();
301
276
  }
302
-
303
277
  return this;
304
- } // Getter
305
-
278
+ }
306
279
 
280
+ // Getter
307
281
  return Object.assign({}, camera.position, {
308
282
  lookAt: getLookAt()
309
- }); //
283
+ });
284
+
285
+ //
310
286
 
311
287
  function setCameraPos(pos) {
312
288
  var x = pos.x,
313
- y = pos.y,
314
- z = pos.z;
289
+ y = pos.y,
290
+ z = pos.z;
315
291
  if (x !== undefined) camera.position.x = x;
316
292
  if (y !== undefined) camera.position.y = y;
317
293
  if (z !== undefined) camera.position.z = z;
318
294
  }
319
-
320
295
  function setLookAt(lookAt) {
321
296
  var lookAtVect = new three.Vector3(lookAt.x, lookAt.y, lookAt.z);
322
-
323
297
  if (state.controls.target) {
324
298
  state.controls.target = lookAtVect;
325
299
  } else {
@@ -335,11 +309,9 @@ var threeRenderObjects = Kapsule({
335
309
  zoomToFit: function zoomToFit(state) {
336
310
  var transitionDuration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
337
311
  var padding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
338
-
339
312
  for (var _len = arguments.length, bboxArgs = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
340
313
  bboxArgs[_key - 3] = arguments[_key];
341
314
  }
342
-
343
315
  return this.fitToBbox(this.getBbox.apply(this, bboxArgs), transitionDuration, padding);
344
316
  },
345
317
  fitToBbox: function fitToBbox(state, bbox) {
@@ -347,31 +319,27 @@ var threeRenderObjects = Kapsule({
347
319
  var padding = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;
348
320
  // based on https://discourse.threejs.org/t/camera-zoom-to-fit-object/936/24
349
321
  var camera = state.camera;
350
-
351
322
  if (bbox) {
352
323
  var center = new three.Vector3(0, 0, 0); // reset camera aim to center
353
-
354
324
  var maxBoxSide = Math.max.apply(Math, _toConsumableArray(Object.entries(bbox).map(function (_ref) {
355
325
  var _ref2 = _slicedToArray(_ref, 2),
356
- coordType = _ref2[0],
357
- coords = _ref2[1];
358
-
326
+ coordType = _ref2[0],
327
+ coords = _ref2[1];
359
328
  return Math.max.apply(Math, _toConsumableArray(coords.map(function (c) {
360
329
  return Math.abs(center[coordType] - c);
361
330
  })));
362
- }))) * 2; // find distance that fits whole bbox within padded fov
331
+ }))) * 2;
363
332
 
333
+ // find distance that fits whole bbox within padded fov
364
334
  var paddedFov = (1 - padding * 2 / state.height) * camera.fov;
365
335
  var fitHeightDistance = maxBoxSide / Math.atan(paddedFov * Math.PI / 180);
366
336
  var fitWidthDistance = fitHeightDistance / camera.aspect;
367
337
  var distance = Math.max(fitHeightDistance, fitWidthDistance);
368
-
369
338
  if (distance > 0) {
370
339
  var newCameraPosition = center.clone().sub(camera.position).normalize().multiplyScalar(-distance);
371
340
  this.cameraPosition(newCameraPosition, center, transitionDuration);
372
341
  }
373
342
  }
374
-
375
343
  return this;
376
344
  },
377
345
  getBbox: function getBbox(state) {
@@ -383,8 +351,9 @@ var threeRenderObjects = Kapsule({
383
351
  if (!objs.length) return null;
384
352
  objs.forEach(function (obj) {
385
353
  return box.expandByObject(obj);
386
- }); // extract global x,y,z min/max
354
+ });
387
355
 
356
+ // extract global x,y,z min/max
388
357
  return Object.assign.apply(Object, _toConsumableArray(['x', 'y', 'z'].map(function (c) {
389
358
  return _defineProperty({}, c, [box.min[c], box.max[c]]);
390
359
  })));
@@ -392,7 +361,6 @@ var threeRenderObjects = Kapsule({
392
361
  getScreenCoords: function getScreenCoords(state, x, y, z) {
393
362
  var vec = new three.Vector3(x, y, z);
394
363
  vec.project(this.camera()); // project to the camera plane
395
-
396
364
  return {
397
365
  // align relative pos to canvas dimensions
398
366
  x: (vec.x + 1) * state.width / 2,
@@ -410,7 +378,6 @@ var threeRenderObjects = Kapsule({
410
378
  var relCoords = new three.Vector2(x / state.width * 2 - 1, -(y / state.height) * 2 + 1);
411
379
  var raycaster = new three.Raycaster();
412
380
  raycaster.params.Line.threshold = state.lineHoverPrecision; // set linePrecision
413
-
414
381
  raycaster.setFromCamera(relCoords, state.camera);
415
382
  return raycaster.intersectObjects(state.objects, true);
416
383
  },
@@ -432,8 +399,8 @@ var threeRenderObjects = Kapsule({
432
399
  tbControls: function tbControls(state) {
433
400
  return state.controls;
434
401
  } // to be deprecated
435
-
436
402
  },
403
+
437
404
  stateInit: function stateInit() {
438
405
  return {
439
406
  scene: new three.Scene(),
@@ -443,22 +410,23 @@ var threeRenderObjects = Kapsule({
443
410
  },
444
411
  init: function init(domNode, state) {
445
412
  var _ref4 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
446
- _ref4$controlType = _ref4.controlType,
447
- controlType = _ref4$controlType === void 0 ? 'trackball' : _ref4$controlType,
448
- _ref4$rendererConfig = _ref4.rendererConfig,
449
- rendererConfig = _ref4$rendererConfig === void 0 ? {} : _ref4$rendererConfig,
450
- _ref4$extraRenderers = _ref4.extraRenderers,
451
- extraRenderers = _ref4$extraRenderers === void 0 ? [] : _ref4$extraRenderers,
452
- _ref4$waitForLoadComp = _ref4.waitForLoadComplete,
453
- waitForLoadComplete = _ref4$waitForLoadComp === void 0 ? true : _ref4$waitForLoadComp;
454
-
413
+ _ref4$controlType = _ref4.controlType,
414
+ controlType = _ref4$controlType === void 0 ? 'trackball' : _ref4$controlType,
415
+ _ref4$rendererConfig = _ref4.rendererConfig,
416
+ rendererConfig = _ref4$rendererConfig === void 0 ? {} : _ref4$rendererConfig,
417
+ _ref4$extraRenderers = _ref4.extraRenderers,
418
+ extraRenderers = _ref4$extraRenderers === void 0 ? [] : _ref4$extraRenderers,
419
+ _ref4$waitForLoadComp = _ref4.waitForLoadComplete,
420
+ waitForLoadComplete = _ref4$waitForLoadComp === void 0 ? true : _ref4$waitForLoadComp;
455
421
  // Wipe DOM
456
- domNode.innerHTML = ''; // Add relative container
422
+ domNode.innerHTML = '';
457
423
 
424
+ // Add relative container
458
425
  domNode.appendChild(state.container = document.createElement('div'));
459
426
  state.container.className = 'scene-container';
460
- state.container.style.position = 'relative'; // Add nav info section
427
+ state.container.style.position = 'relative';
461
428
 
429
+ // Add nav info section
462
430
  state.container.appendChild(state.navInfo = document.createElement('div'));
463
431
  state.navInfo.className = 'scene-nav-info';
464
432
  state.navInfo.textContent = {
@@ -466,44 +434,46 @@ var threeRenderObjects = Kapsule({
466
434
  trackball: 'Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan',
467
435
  fly: 'WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw'
468
436
  }[controlType] || '';
469
- state.navInfo.style.display = state.showNavInfo ? null : 'none'; // Setup tooltip
437
+ state.navInfo.style.display = state.showNavInfo ? null : 'none';
470
438
 
439
+ // Setup tooltip
471
440
  state.toolTipElem = document.createElement('div');
472
441
  state.toolTipElem.classList.add('scene-tooltip');
473
- state.container.appendChild(state.toolTipElem); // Capture pointer coords on move or touchstart
442
+ state.container.appendChild(state.toolTipElem);
474
443
 
444
+ // Capture pointer coords on move or touchstart
475
445
  state.pointerPos = new three.Vector2();
476
446
  state.pointerPos.x = -2; // Initialize off canvas
477
-
478
447
  state.pointerPos.y = -2;
479
448
  ['pointermove', 'pointerdown'].forEach(function (evType) {
480
449
  return state.container.addEventListener(evType, function (ev) {
481
450
  // track click state
482
- evType === 'pointerdown' && (state.isPointerPressed = true); // detect point drag
451
+ evType === 'pointerdown' && (state.isPointerPressed = true);
483
452
 
453
+ // detect point drag
484
454
  !state.isPointerDragging && ev.type === 'pointermove' && (ev.pressure > 0 || state.isPointerPressed) // ev.pressure always 0 on Safari, so we used the isPointerPressed tracker
485
455
  && (ev.pointerType !== 'touch' || ev.movementX === undefined || [ev.movementX, ev.movementY].some(function (m) {
486
456
  return Math.abs(m) > 1;
487
457
  })) // relax drag trigger sensitivity on touch events
488
458
  && (state.isPointerDragging = true);
489
-
490
459
  if (state.enablePointerInteraction) {
491
460
  // update the pointer pos
492
461
  var offset = getOffset(state.container);
493
462
  state.pointerPos.x = ev.pageX - offset.left;
494
- state.pointerPos.y = ev.pageY - offset.top; // Move tooltip
463
+ state.pointerPos.y = ev.pageY - offset.top;
495
464
 
465
+ // Move tooltip
496
466
  state.toolTipElem.style.top = "".concat(state.pointerPos.y, "px");
497
- state.toolTipElem.style.left = "".concat(state.pointerPos.x, "px"); // adjust horizontal position to not exceed canvas boundaries
498
-
499
- state.toolTipElem.style.transform = "translate(-".concat(state.pointerPos.x / state.width * 100, "%, ").concat( // flip to above if near bottom
467
+ state.toolTipElem.style.left = "".concat(state.pointerPos.x, "px");
468
+ // adjust horizontal position to not exceed canvas boundaries
469
+ state.toolTipElem.style.transform = "translate(-".concat(state.pointerPos.x / state.width * 100, "%, ").concat(
470
+ // flip to above if near bottom
500
471
  state.height - state.pointerPos.y < 100 ? 'calc(-100% - 8px)' : '21px', ")");
501
472
  }
502
-
503
473
  function getOffset(el) {
504
474
  var rect = el.getBoundingClientRect(),
505
- scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,
506
- scrollTop = window.pageYOffset || document.documentElement.scrollTop;
475
+ scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,
476
+ scrollTop = window.pageYOffset || document.documentElement.scrollTop;
507
477
  return {
508
478
  top: rect.top + scrollTop,
509
479
  left: rect.left + scrollLeft
@@ -512,11 +482,11 @@ var threeRenderObjects = Kapsule({
512
482
  }, {
513
483
  passive: true
514
484
  });
515
- }); // Handle click events on objs
485
+ });
516
486
 
487
+ // Handle click events on objs
517
488
  state.container.addEventListener('pointerup', function (ev) {
518
489
  state.isPointerPressed = false;
519
-
520
490
  if (state.isPointerDragging) {
521
491
  state.isPointerDragging = false;
522
492
  if (!state.clickAfterDrag) return; // don't trigger onClick after pointer drag (camera motion via controls)
@@ -541,16 +511,17 @@ var threeRenderObjects = Kapsule({
541
511
 
542
512
  state.container.addEventListener('contextmenu', function (ev) {
543
513
  if (state.onRightClick) ev.preventDefault(); // prevent default contextmenu behavior and allow pointerup to fire instead
544
- }); // Setup renderer, camera and controls
514
+ });
545
515
 
516
+ // Setup renderer, camera and controls
546
517
  state.renderer = new three.WebGLRenderer(Object.assign({
547
518
  antialias: true,
548
519
  alpha: true
549
520
  }, rendererConfig));
550
521
  state.renderer.setPixelRatio(Math.min(2, window.devicePixelRatio)); // clamp device pixel ratio
522
+ state.container.appendChild(state.renderer.domElement);
551
523
 
552
- state.container.appendChild(state.renderer.domElement); // Setup extra renderers
553
-
524
+ // Setup extra renderers
554
525
  state.extraRenderers = extraRenderers;
555
526
  state.extraRenderers.forEach(function (r) {
556
527
  // overlay them on top of main renderer
@@ -558,24 +529,23 @@ var threeRenderObjects = Kapsule({
558
529
  r.domElement.style.top = '0px';
559
530
  r.domElement.style.pointerEvents = 'none';
560
531
  state.container.appendChild(r.domElement);
561
- }); // configure post-processing composer
532
+ });
562
533
 
534
+ // configure post-processing composer
563
535
  state.postProcessingComposer = new EffectComposer(state.renderer);
564
536
  state.postProcessingComposer.addPass(new RenderPass(state.scene, state.camera)); // render scene as first pass
565
- // configure controls
566
537
 
538
+ // configure controls
567
539
  state.controls = new {
568
540
  trackball: TrackballControls,
569
541
  orbit: OrbitControls,
570
542
  fly: FlyControls
571
543
  }[controlType](state.camera, state.renderer.domElement);
572
-
573
544
  if (controlType === 'fly') {
574
545
  state.controls.movementSpeed = 300;
575
546
  state.controls.rollSpeed = Math.PI / 6;
576
547
  state.controls.dragToLook = true;
577
548
  }
578
-
579
549
  if (controlType === 'trackball' || controlType === 'orbit') {
580
550
  state.controls.minDistance = 0.1;
581
551
  state.controls.maxDistance = state.skyRadius;
@@ -592,14 +562,14 @@ var threeRenderObjects = Kapsule({
592
562
  state.controlsDragging = false;
593
563
  });
594
564
  }
595
-
596
565
  [state.renderer, state.postProcessingComposer].concat(_toConsumableArray(state.extraRenderers)).forEach(function (r) {
597
566
  return r.setSize(state.width, state.height);
598
567
  });
599
568
  state.camera.aspect = state.width / state.height;
600
569
  state.camera.updateProjectionMatrix();
601
- state.camera.position.z = 1000; // add sky
570
+ state.camera.position.z = 1000;
602
571
 
572
+ // add sky
603
573
  state.scene.add(state.skysphere = new three.Mesh());
604
574
  state.skysphere.visible = false;
605
575
  state.loadComplete = state.scene.visible = !waitForLoadComplete;
@@ -616,20 +586,17 @@ var threeRenderObjects = Kapsule({
616
586
  state.camera.aspect = state.width / state.height;
617
587
  state.camera.updateProjectionMatrix();
618
588
  }
619
-
620
589
  if (changedProps.hasOwnProperty('skyRadius') && state.skyRadius) {
621
590
  state.controls.hasOwnProperty('maxDistance') && changedProps.skyRadius && (state.controls.maxDistance = Math.min(state.controls.maxDistance, state.skyRadius));
622
591
  state.camera.far = state.skyRadius * 2.5;
623
592
  state.camera.updateProjectionMatrix();
624
593
  state.skysphere.geometry = new three.SphereGeometry(state.skyRadius);
625
594
  }
626
-
627
595
  if (changedProps.hasOwnProperty('backgroundColor')) {
628
596
  var alpha = parseToRgb(state.backgroundColor).alpha;
629
597
  if (alpha === undefined) alpha = 1;
630
598
  state.renderer.setClearColor(new three.Color(opacify(1, state.backgroundColor)), alpha);
631
599
  }
632
-
633
600
  if (changedProps.hasOwnProperty('backgroundImageUrl')) {
634
601
  if (!state.backgroundImageUrl) {
635
602
  state.skysphere.visible = false;
@@ -641,26 +608,25 @@ var threeRenderObjects = Kapsule({
641
608
  map: texture,
642
609
  side: three.BackSide
643
610
  });
644
- state.skysphere.visible = true; // triggered when background image finishes loading (asynchronously to allow 1 frame to load texture)
611
+ state.skysphere.visible = true;
645
612
 
613
+ // triggered when background image finishes loading (asynchronously to allow 1 frame to load texture)
646
614
  state.onBackgroundImageLoaded && setTimeout(state.onBackgroundImageLoaded);
647
615
  !state.loadComplete && finishLoad();
648
616
  });
649
617
  }
650
618
  }
651
-
652
619
  changedProps.hasOwnProperty('showNavInfo') && (state.navInfo.style.display = state.showNavInfo ? null : 'none');
653
-
654
620
  if (changedProps.hasOwnProperty('objects')) {
655
621
  (changedProps.objects || []).forEach(function (obj) {
656
622
  return state.scene.remove(obj);
657
623
  }); // Clear the place
658
-
659
624
  state.objects.forEach(function (obj) {
660
625
  return state.scene.add(obj);
661
626
  }); // Add to scene
662
- } //
627
+ }
663
628
 
629
+ //
664
630
 
665
631
  function finishLoad() {
666
632
  state.loadComplete = state.scene.visible = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-render-objects",
3
- "version": "1.27.4",
3
+ "version": "1.27.6",
4
4
  "description": "Easy way to render ThreeJS objects with built-in interaction defaults",
5
5
  "license": "MIT",
6
6
  "unpkg": "dist/three-render-objects.min.js",
@@ -35,7 +35,7 @@
35
35
  ],
36
36
  "scripts": {
37
37
  "build": "rimraf dist && rollup -c",
38
- "dev": "rollup -w -c rollup.config.dev.js",
38
+ "dev": "rollup -w -c rollup.config.dev.mjs",
39
39
  "prepare": "npm run build"
40
40
  },
41
41
  "dependencies": {
@@ -48,20 +48,20 @@
48
48
  "three": "*"
49
49
  },
50
50
  "devDependencies": {
51
- "@babel/core": "^7.19.1",
51
+ "@babel/core": "^7.20.2",
52
52
  "@babel/plugin-proposal-class-properties": "^7.18.6",
53
- "@babel/plugin-proposal-object-rest-spread": "^7.18.9",
54
- "@babel/preset-env": "^7.19.1",
55
- "@rollup/plugin-babel": "^5.3.1",
56
- "@rollup/plugin-commonjs": "^22.0.2",
57
- "@rollup/plugin-node-resolve": "^14.1.0",
58
- "postcss": "^8.4.16",
53
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.2",
54
+ "@babel/preset-env": "^7.20.2",
55
+ "@rollup/plugin-babel": "^6.0.2",
56
+ "@rollup/plugin-commonjs": "^23.0.2",
57
+ "@rollup/plugin-node-resolve": "^15.0.1",
58
+ "postcss": "^8.4.18",
59
59
  "rimraf": "^3.0.2",
60
- "rollup": "^2.79.1",
61
- "rollup-plugin-dts": "^4.2.2",
60
+ "rollup": "^3.2.5",
61
+ "rollup-plugin-dts": "^5.0.0",
62
62
  "rollup-plugin-postcss": "^4.0.2",
63
63
  "rollup-plugin-terser": "^7.0.2",
64
- "three": "^0.144.0",
65
- "typescript": "^4.8.3"
64
+ "three": "^0.146.0",
65
+ "typescript": "^4.8.4"
66
66
  }
67
67
  }