@xviewer.js/debug 1.0.0-alpha.4 → 1.0.0-alpha.40

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/module.js CHANGED
@@ -1,4 +1,4 @@
1
- import { MeshBasicMaterial, MeshStandardMaterial, ShaderMaterial, Material } from 'three';
1
+ import { Material, MeshBasicMaterial, MeshStandardMaterial, ShaderMaterial } from 'three';
2
2
  import { property, Plugin, PropertyManager, Component, ObjectInstance } from '@xviewer.js/core';
3
3
 
4
4
  var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
@@ -449,14 +449,14 @@ class NumberController extends Controller {
449
449
  return false;
450
450
  }
451
451
  updateDisplay() {
452
- const value = this.getValue();
452
+ const value = this._snap(this.getValue());
453
453
  if (this._hasSlider) {
454
454
  let percent = (value - this._min) / (this._max - this._min);
455
455
  percent = Math.max(0, Math.min(percent, 1));
456
456
  this.$fill.style.width = percent * 100 + '%';
457
457
  }
458
458
  if (!this._inputFocused) {
459
- this.$input.value = value;
459
+ this.$input.value = "" + value;
460
460
  }
461
461
  return this;
462
462
  }
@@ -929,67 +929,34 @@ class ColorController extends Controller {
929
929
  }
930
930
  }
931
931
 
932
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
933
- try {
934
- var info = gen[key](arg);
935
- var value = info.value;
936
- } catch (error) {
937
- reject(error);
938
- return;
939
- }
940
- if (info.done) resolve(value);
941
- else Promise.resolve(value).then(_next, _throw);
942
- }
943
- function _async_to_generator(fn) {
944
- return function() {
945
- var self = this, args = arguments;
946
-
947
- return new Promise(function(resolve, reject) {
948
- var gen = fn.apply(self, args);
949
-
950
- function _next(value) {
951
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
952
- }
953
-
954
- function _throw(err) {
955
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
956
- }
957
-
958
- _next(undefined);
959
- });
960
- };
961
- }
962
-
963
932
  class ImageController extends Controller {
964
- static toDataURL(img) {
965
- return _async_to_generator(function*() {
966
- if (img instanceof HTMLImageElement) {
967
- return img.src;
968
- } else {
969
- if (img) {
970
- let url = ImageController._imageMap.get(img);
971
- if (url) return url;
972
- const w = Math.min(img.width, 256);
973
- const h = Math.min(img.height, 256);
974
- if (ImageController._context == null) {
975
- ImageController._context = document.createElement('canvas').getContext("2d");
976
- }
977
- ImageController._context.canvas.width = w;
978
- ImageController._context.canvas.height = h;
979
- if (img.data) {
980
- let imageData = ImageController._context.createImageData(img.width, img.height);
981
- imageData.data.set(img.data);
982
- img = yield createImageBitmap(imageData);
983
- }
984
- if (img instanceof ImageBitmap) {
985
- ImageController._context.drawImage(img, 0, 0, img.width, img.height, 0, 0, w, h);
986
- ImageController._imageMap.set(img, url = ImageController._context.canvas.toDataURL());
987
- return url;
988
- }
933
+ static async toDataURL(img) {
934
+ if (img instanceof HTMLImageElement) {
935
+ return img.src;
936
+ } else {
937
+ if (img) {
938
+ let url = ImageController._imageMap.get(img);
939
+ if (url) return url;
940
+ const w = Math.min(img.width, 256);
941
+ const h = Math.min(img.height, 256);
942
+ if (ImageController._context == null) {
943
+ ImageController._context = document.createElement('canvas').getContext("2d");
944
+ }
945
+ ImageController._context.canvas.width = w;
946
+ ImageController._context.canvas.height = h;
947
+ if (img.data) {
948
+ let imageData = ImageController._context.createImageData(img.width, img.height);
949
+ imageData.data.set(img.data);
950
+ img = await createImageBitmap(imageData);
951
+ }
952
+ if (img instanceof ImageBitmap) {
953
+ ImageController._context.drawImage(img, 0, 0, img.width, img.height, 0, 0, w, h);
954
+ ImageController._imageMap.set(img, url = ImageController._context.canvas.toDataURL());
955
+ return url;
989
956
  }
990
- return "";
991
957
  }
992
- })();
958
+ return "";
959
+ }
993
960
  }
994
961
  updateDisplay() {
995
962
  ImageController.toDataURL(this.getValue()).then((url)=>this.$img.src = url);
@@ -1092,8 +1059,8 @@ class UINumber extends UIElement {
1092
1059
  return this;
1093
1060
  }
1094
1061
  updateDisplay() {
1095
- let value = this.getValue();
1096
- this.dom.value = "" + this._snap(value);
1062
+ let value = this._snap(this.getValue());
1063
+ this.dom.value = "" + value;
1097
1064
  if (this.unit !== '') this.dom.value += ' ' + this.unit;
1098
1065
  }
1099
1066
  _getImplicitStep(value) {
@@ -2322,7 +2289,10 @@ class InspectorPlugin extends Plugin {
2322
2289
  }
2323
2290
  _updateFolders() {
2324
2291
  const statesMap = this._statesMap;
2325
- const setState = (v)=>statesMap.set(v, statesMap.has(v) ? 0 : 1);
2292
+ const setState = (v)=>{
2293
+ if (statesMap.get(v) === -1) statesMap.set(v, 0);
2294
+ if (statesMap.get(v) === undefined) statesMap.set(v, 1);
2295
+ };
2326
2296
  statesMap.forEach((_, k, map)=>map.set(k, -1));
2327
2297
  this.viewer.traversePlugins(setState);
2328
2298
  this.viewer.traverseComponents(setState);
@@ -2339,7 +2309,7 @@ class InspectorPlugin extends Plugin {
2339
2309
  }
2340
2310
  _getPropertiesList(target) {
2341
2311
  const list = [];
2342
- let props = PropertyManager._getMergedProperties(target);
2312
+ let props = PropertyManager._getMergedProperties(target.constructor);
2343
2313
  if (props) {
2344
2314
  list.push(props);
2345
2315
  this._targetMap.set(props, target);
@@ -2398,7 +2368,7 @@ class InspectorPlugin extends Plugin {
2398
2368
  if (prop.dir) {
2399
2369
  folder = folder.getFolder(prop.dir) || folder.addFolder(prop.dir).close();
2400
2370
  }
2401
- if (PropertyManager._hasProperties(value)) {
2371
+ if (PropertyManager._hasProperties(value.constructor)) {
2402
2372
  this._addPropsListGUI(folder, this._getPropertiesList(value), target, k);
2403
2373
  }
2404
2374
  const type = typeof value;
@@ -2528,6 +2498,29 @@ __decorate([
2528
2498
  step: 0.01
2529
2499
  })
2530
2500
  ], ViewerExtension.prototype, "backgroundBlurriness", null);
2501
+ const materialProperties = {
2502
+ visible: {},
2503
+ transparent: {},
2504
+ side: {
2505
+ value: {
2506
+ FrontSide: 0,
2507
+ BackSide: 1,
2508
+ DoubleSide: 2
2509
+ }
2510
+ },
2511
+ color: {
2512
+ dir: "diffuse"
2513
+ },
2514
+ opacity: {
2515
+ dir: "diffuse",
2516
+ min: 0,
2517
+ max: 1,
2518
+ step: 0.01
2519
+ }
2520
+ };
2521
+ for(let k in materialProperties){
2522
+ property(materialProperties[k])(Material.prototype, k);
2523
+ }
2531
2524
  const meshBasicMaterislProperties = {
2532
2525
  map: {
2533
2526
  dir: "diffuse"
@@ -2560,18 +2553,6 @@ for(let k in meshBasicMaterislProperties){
2560
2553
  property(meshBasicMaterislProperties[k])(MeshBasicMaterial.prototype, k);
2561
2554
  }
2562
2555
  const meshStandardMaterialProperties = {
2563
- visible: {},
2564
- transparent: {},
2565
- side: {
2566
- value: {
2567
- FrontSide: 0,
2568
- BackSide: 1,
2569
- DoubleSide: 2
2570
- }
2571
- },
2572
- color: {
2573
- dir: "diffuse"
2574
- },
2575
2556
  opacity: {
2576
2557
  dir: "diffuse",
2577
2558
  min: 0,