redhotmagma-visualization 1.28.5 → 1.29.2

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.
Files changed (88) hide show
  1. package/AlignTargetProvider.js +129 -0
  2. package/CommonUtils/Deferred.js +135 -0
  3. package/CommonUtils/Observable.js +126 -0
  4. package/CommonUtils/PropertyObserver.js +61 -0
  5. package/CommonUtils/SyncCurrentFunction.js +59 -0
  6. package/CommonUtils/SyncObservableEvent.js +19 -0
  7. package/CommonUtils/pointerEvent.js +415 -0
  8. package/Constants.js +23 -0
  9. package/DevApp.js +1049 -0
  10. package/ExposedModules.js +26 -0
  11. package/FallbackVisualization.js +26 -0
  12. package/PrintingEffects/ColorEmbossingEffect.js +58 -0
  13. package/PrintingEffects/DomingEffect.js +150 -0
  14. package/PrintingEffects/EmbossingEffect.js +65 -0
  15. package/PrintingEffects/EmbroideryEffect.js +541 -0
  16. package/PrintingEffects/EngravingEffect.js +65 -0
  17. package/PrintingEffects/PrintingEffects.js +117 -0
  18. package/PrintingEffects/PrintingEffectsUtils.js +53 -0
  19. package/PrintingEffects/resources/embroidery_multiply.jpg +0 -0
  20. package/PrintingEffects/resources/embroidery_screen.jpg +0 -0
  21. package/README.md +11 -4
  22. package/React/ReactBase.js +111 -0
  23. package/Three/Controls/OrbitControls.js +745 -0
  24. package/Three/Exporters/glTFExporter.js +48 -0
  25. package/Three/Loaders/ColladaLoader.js +2916 -0
  26. package/Three/Loaders/MTLLoader.js +449 -0
  27. package/Three/Loaders/OBJLoader.js +548 -0
  28. package/Three/Three2D.js +1790 -0
  29. package/Three/Three2DLayers.js +504 -0
  30. package/Three/Three3D.js +1412 -0
  31. package/Three/Three3DScene.js +1432 -0
  32. package/Three/ThreeBase.js +724 -0
  33. package/Utils/DesignArea/getDesignAreaCanvasSize.js +32 -0
  34. package/Utils/TextureBuilder/createTextureBuilder.js +334 -0
  35. package/Utils/TextureBuilder/textureBuilderFunctions.js +87 -0
  36. package/Utils/alignToElement.js +58 -0
  37. package/Utils/createAlphaMapFromAlphaChannel.js +50 -0
  38. package/Utils/createCache.js +46 -0
  39. package/Utils/createCanvas.js +29 -0
  40. package/Utils/createImageRepository.js +124 -0
  41. package/Utils/disposeMaterial.js +41 -0
  42. package/Utils/getImageSize.js +15 -0
  43. package/Utils/imagePreloader.js +76 -0
  44. package/Utils/initTextureCanvas.js +49 -0
  45. package/Utils/isMobileDevice.js +19 -0
  46. package/Utils/optimizeTextureImage.js +73 -0
  47. package/Utils/rememberCameraViewOffset.js +21 -0
  48. package/Utils/removeObject.js +22 -0
  49. package/Utils/restrictCameraMovement.js +45 -0
  50. package/Utils/setOrthographicCameraSize.js +16 -0
  51. package/Utils/updateFitSizeToElement.js +39 -0
  52. package/VisualizationContainer.js +279 -0
  53. package/VisualizationInterface.js +298 -0
  54. package/VisualizationProvider.js +38 -0
  55. package/__mocks__/exportedSample.svg +45 -0
  56. package/index.js +16 -0
  57. package/package.json +10 -70
  58. package/scripts/cpPublic.js +9 -12
  59. package/scripts/cpPublicLocal.js +30 -0
  60. package/src/CommonUtils/Observable.js +1 -0
  61. package/src/CommonUtils/pointerEvent.js +2 -1
  62. package/src/DevApp.js +2 -1
  63. package/src/FallbackVisualization.js +1 -5
  64. package/src/PrintingEffects/DomingEffect.js +1 -0
  65. package/src/PrintingEffects/EmbroideryEffect.js +3 -2
  66. package/src/React/ReactBase.js +1 -1
  67. package/src/Three/Controls/OrbitControls.js +2 -0
  68. package/src/Three/Loaders/ColladaLoader.js +111 -294
  69. package/src/Three/Loaders/MTLLoader.js +2 -0
  70. package/src/Three/Loaders/OBJLoader.js +2 -0
  71. package/src/Three/Three2D.js +18 -11
  72. package/src/Three/Three3D.js +9 -1
  73. package/src/Three/ThreeBase.js +14 -2
  74. package/src/Utils/DesignArea/getDesignAreaCanvasSize.js +1 -0
  75. package/src/Utils/TextureBuilder/createTextureBuilder.js +2 -0
  76. package/src/Utils/imagePreloader.js +1 -0
  77. package/src/Utils/initTextureCanvas.js +3 -0
  78. package/src/Utils/isMobileDevice.js +2 -0
  79. package/src/Utils/optimizeTextureImage.js +1 -0
  80. package/src/VisualizationContainer.js +3 -1
  81. package/src/VisualizationInterface.js +10 -1
  82. package/visualizationAdapterCreator.js +76 -0
  83. package/babel.config.js +0 -41
  84. package/scripts/cpPath.js +0 -151
  85. package/scripts/moveLibToPackageRoot.js +0 -44
  86. package/scripts/utils/fileSystem.js +0 -69
  87. package/scripts/utils/process.js +0 -19
  88. package/tsconfig.json +0 -22
@@ -1,3 +1,5 @@
1
+ /* eslint-disable */
2
+
1
3
  // original source: three/examples/js/loaders/ColladaLoader
2
4
 
3
5
  import * as THREE_imp from "three";
@@ -23,10 +25,7 @@ THREE.ColladaLoader.prototype = {
23
25
  load: function(url, onLoad, onProgress, onError) {
24
26
  var scope = this;
25
27
 
26
- var path =
27
- scope.path === undefined
28
- ? THREE.LoaderUtils.extractUrlBase(url)
29
- : scope.path;
28
+ var path = scope.path === undefined ? THREE.LoaderUtils.extractUrlBase(url) : scope.path;
30
29
 
31
30
  var loader = new THREE.FileLoader(scope.manager);
32
31
  loader.setPath(scope.path);
@@ -55,7 +54,7 @@ THREE.ColladaLoader.prototype = {
55
54
  console.warn(
56
55
  "THREE.ColladaLoader: options.convertUpAxis() has been removed. Up axis is converted automatically."
57
56
  );
58
- }
57
+ },
59
58
  },
60
59
 
61
60
  setCrossOrigin: function(value) {
@@ -137,7 +136,7 @@ THREE.ColladaLoader.prototype = {
137
136
  function parseAsset(xml) {
138
137
  return {
139
138
  unit: parseAssetUnit(getElementsByTagName(xml, "unit")[0]),
140
- upAxis: parseAssetUpAxis(getElementsByTagName(xml, "up_axis")[0])
139
+ upAxis: parseAssetUpAxis(getElementsByTagName(xml, "up_axis")[0]),
141
140
  };
142
141
  }
143
142
 
@@ -190,7 +189,7 @@ THREE.ColladaLoader.prototype = {
190
189
  var data = {
191
190
  sources: {},
192
191
  samplers: {},
193
- channels: {}
192
+ channels: {},
194
193
  };
195
194
 
196
195
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -226,7 +225,7 @@ THREE.ColladaLoader.prototype = {
226
225
 
227
226
  function parseAnimationSampler(xml) {
228
227
  var data = {
229
- inputs: {}
228
+ inputs: {},
230
229
  };
231
230
 
232
231
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -311,11 +310,7 @@ THREE.ColladaLoader.prototype = {
311
310
  var inputSource = sources[inputId];
312
311
  var outputSource = sources[outputId];
313
312
 
314
- var animation = buildAnimationChannel(
315
- channel,
316
- inputSource,
317
- outputSource
318
- );
313
+ var animation = buildAnimationChannel(channel, inputSource, outputSource);
319
314
 
320
315
  createKeyframeTracks(animation, tracks);
321
316
  }
@@ -391,7 +386,7 @@ THREE.ColladaLoader.prototype = {
391
386
 
392
387
  var animation = {
393
388
  name: object3D.uuid,
394
- keyframes: keyframes
389
+ keyframes: keyframes,
395
390
  };
396
391
 
397
392
  return animation;
@@ -449,31 +444,16 @@ THREE.ColladaLoader.prototype = {
449
444
 
450
445
  times.push(time);
451
446
  positionData.push(position.x, position.y, position.z);
452
- quaternionData.push(
453
- quaternion.x,
454
- quaternion.y,
455
- quaternion.z,
456
- quaternion.w
457
- );
447
+ quaternionData.push(quaternion.x, quaternion.y, quaternion.z, quaternion.w);
458
448
  scaleData.push(scale.x, scale.y, scale.z);
459
449
  }
460
450
 
461
451
  if (positionData.length > 0)
462
- tracks.push(
463
- new THREE.VectorKeyframeTrack(name + ".position", times, positionData)
464
- );
452
+ tracks.push(new THREE.VectorKeyframeTrack(name + ".position", times, positionData));
465
453
  if (quaternionData.length > 0)
466
- tracks.push(
467
- new THREE.QuaternionKeyframeTrack(
468
- name + ".quaternion",
469
- times,
470
- quaternionData
471
- )
472
- );
454
+ tracks.push(new THREE.QuaternionKeyframeTrack(name + ".quaternion", times, quaternionData));
473
455
  if (scaleData.length > 0)
474
- tracks.push(
475
- new THREE.VectorKeyframeTrack(name + ".scale", times, scaleData)
476
- );
456
+ tracks.push(new THREE.VectorKeyframeTrack(name + ".scale", times, scaleData));
477
457
 
478
458
  return tracks;
479
459
  }
@@ -567,8 +547,7 @@ THREE.ColladaLoader.prototype = {
567
547
  }
568
548
 
569
549
  key.value[property] =
570
- ((key.time - prev.time) *
571
- (next.value[property] - prev.value[property])) /
550
+ ((key.time - prev.time) * (next.value[property] - prev.value[property])) /
572
551
  (next.time - prev.time) +
573
552
  prev.value[property];
574
553
  }
@@ -580,7 +559,7 @@ THREE.ColladaLoader.prototype = {
580
559
  name: xml.getAttribute("id") || "default",
581
560
  start: parseFloat(xml.getAttribute("start") || 0),
582
561
  end: parseFloat(xml.getAttribute("end") || 0),
583
- animations: []
562
+ animations: [],
584
563
  };
585
564
 
586
565
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -639,9 +618,7 @@ THREE.ColladaLoader.prototype = {
639
618
 
640
619
  case "morph":
641
620
  data.id = parseId(child.getAttribute("source"));
642
- console.warn(
643
- "THREE.ColladaLoader: Morph target animation not supported yet."
644
- );
621
+ console.warn("THREE.ColladaLoader: Morph target animation not supported yet.");
645
622
  break;
646
623
  }
647
624
  }
@@ -651,7 +628,7 @@ THREE.ColladaLoader.prototype = {
651
628
 
652
629
  function parseSkin(xml) {
653
630
  var data = {
654
- sources: {}
631
+ sources: {},
655
632
  };
656
633
 
657
634
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -684,7 +661,7 @@ THREE.ColladaLoader.prototype = {
684
661
 
685
662
  function parseJoints(xml) {
686
663
  var data = {
687
- inputs: {}
664
+ inputs: {},
688
665
  };
689
666
 
690
667
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -706,7 +683,7 @@ THREE.ColladaLoader.prototype = {
706
683
 
707
684
  function parseVertexWeights(xml) {
708
685
  var data = {
709
- inputs: {}
686
+ inputs: {},
710
687
  };
711
688
 
712
689
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -737,7 +714,7 @@ THREE.ColladaLoader.prototype = {
737
714
 
738
715
  function buildController(data) {
739
716
  var build = {
740
- id: data.id
717
+ id: data.id,
741
718
  };
742
719
 
743
720
  var geometry = library.geometries[build.id];
@@ -761,12 +738,12 @@ THREE.ColladaLoader.prototype = {
761
738
  joints: [], // this must be an array to preserve the joint order
762
739
  indices: {
763
740
  array: [],
764
- stride: BONE_LIMIT
741
+ stride: BONE_LIMIT,
765
742
  },
766
743
  weights: {
767
744
  array: [],
768
- stride: BONE_LIMIT
769
- }
745
+ stride: BONE_LIMIT,
746
+ },
770
747
  };
771
748
 
772
749
  var sources = data.sources;
@@ -825,9 +802,7 @@ THREE.ColladaLoader.prototype = {
825
802
  // setup bind matrix
826
803
 
827
804
  if (data.bindShapeMatrix) {
828
- build.bindMatrix = new THREE.Matrix4()
829
- .fromArray(data.bindShapeMatrix)
830
- .transpose();
805
+ build.bindMatrix = new THREE.Matrix4().fromArray(data.bindShapeMatrix).transpose();
831
806
  } else {
832
807
  build.bindMatrix = new THREE.Matrix4().identity();
833
808
  }
@@ -860,7 +835,7 @@ THREE.ColladaLoader.prototype = {
860
835
 
861
836
  function parseImage(xml) {
862
837
  var data = {
863
- init_from: getElementsByTagName(xml, "init_from")[0].textContent
838
+ init_from: getElementsByTagName(xml, "init_from")[0].textContent,
864
839
  };
865
840
 
866
841
  library.images[xml.getAttribute("id")] = data;
@@ -907,7 +882,7 @@ THREE.ColladaLoader.prototype = {
907
882
  function parseEffectProfileCOMMON(xml) {
908
883
  var data = {
909
884
  surfaces: {},
910
- samplers: {}
885
+ samplers: {},
911
886
  };
912
887
 
913
888
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -1032,7 +1007,7 @@ THREE.ColladaLoader.prototype = {
1032
1007
  case "transparent":
1033
1008
  data[child.nodeName] = {
1034
1009
  opaque: child.getAttribute("opaque"),
1035
- data: parseEffectParameter(child)
1010
+ data: parseEffectParameter(child),
1036
1011
  };
1037
1012
  break;
1038
1013
  }
@@ -1061,7 +1036,7 @@ THREE.ColladaLoader.prototype = {
1061
1036
  case "texture":
1062
1037
  data[child.nodeName] = {
1063
1038
  id: child.getAttribute("texture"),
1064
- extra: parseEffectParameterTexture(child)
1039
+ extra: parseEffectParameterTexture(child),
1065
1040
  };
1066
1041
  break;
1067
1042
  }
@@ -1072,7 +1047,7 @@ THREE.ColladaLoader.prototype = {
1072
1047
 
1073
1048
  function parseEffectParameterTexture(xml) {
1074
1049
  var data = {
1075
- technique: {}
1050
+ technique: {},
1076
1051
  };
1077
1052
 
1078
1053
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -1183,7 +1158,7 @@ THREE.ColladaLoader.prototype = {
1183
1158
 
1184
1159
  function parseMaterial(xml) {
1185
1160
  var data = {
1186
- name: xml.getAttribute("name")
1161
+ name: xml.getAttribute("name"),
1187
1162
  };
1188
1163
 
1189
1164
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -1276,21 +1251,11 @@ THREE.ColladaLoader.prototype = {
1276
1251
  ) {
1277
1252
  var technique = extra.technique;
1278
1253
 
1279
- texture.wrapS = technique.wrapU
1280
- ? THREE.RepeatWrapping
1281
- : THREE.ClampToEdgeWrapping;
1282
- texture.wrapT = technique.wrapV
1283
- ? THREE.RepeatWrapping
1284
- : THREE.ClampToEdgeWrapping;
1254
+ texture.wrapS = technique.wrapU ? THREE.RepeatWrapping : THREE.ClampToEdgeWrapping;
1255
+ texture.wrapT = technique.wrapV ? THREE.RepeatWrapping : THREE.ClampToEdgeWrapping;
1285
1256
 
1286
- texture.offset.set(
1287
- technique.offsetU || 0,
1288
- technique.offsetV || 0
1289
- );
1290
- texture.repeat.set(
1291
- technique.repeatU || 1,
1292
- technique.repeatV || 1
1293
- );
1257
+ texture.offset.set(technique.offsetU || 0, technique.offsetV || 0);
1258
+ texture.repeat.set(technique.repeatU || 1, technique.repeatV || 1);
1294
1259
  } else {
1295
1260
  texture.wrapS = THREE.RepeatWrapping;
1296
1261
  texture.wrapT = THREE.RepeatWrapping;
@@ -1298,18 +1263,12 @@ THREE.ColladaLoader.prototype = {
1298
1263
 
1299
1264
  return texture;
1300
1265
  } else {
1301
- console.warn(
1302
- "THREE.ColladaLoader: Loader for texture %s not found.",
1303
- image
1304
- );
1266
+ console.warn("THREE.ColladaLoader: Loader for texture %s not found.", image);
1305
1267
 
1306
1268
  return null;
1307
1269
  }
1308
1270
  } else {
1309
- console.warn(
1310
- "THREE.ColladaLoader: Couldn't create texture with ID:",
1311
- textureObject.id
1312
- );
1271
+ console.warn("THREE.ColladaLoader: Couldn't create texture with ID:", textureObject.id);
1313
1272
 
1314
1273
  return null;
1315
1274
  }
@@ -1326,28 +1285,21 @@ THREE.ColladaLoader.prototype = {
1326
1285
  if (parameter.texture) material.map = getTexture(parameter.texture);
1327
1286
  break;
1328
1287
  case "specular":
1329
- if (parameter.color && material.specular)
1330
- material.specular.fromArray(parameter.color);
1331
- if (parameter.texture)
1332
- material.specularMap = getTexture(parameter.texture);
1288
+ if (parameter.color && material.specular) material.specular.fromArray(parameter.color);
1289
+ if (parameter.texture) material.specularMap = getTexture(parameter.texture);
1333
1290
  break;
1334
1291
  case "bump":
1335
- if (parameter.texture)
1336
- material.normalMap = getTexture(parameter.texture);
1292
+ if (parameter.texture) material.normalMap = getTexture(parameter.texture);
1337
1293
  break;
1338
1294
  case "ambient":
1339
- if (parameter.texture)
1340
- material.lightMap = getTexture(parameter.texture);
1295
+ if (parameter.texture) material.lightMap = getTexture(parameter.texture);
1341
1296
  break;
1342
1297
  case "shininess":
1343
- if (parameter.float && material.shininess)
1344
- material.shininess = parameter.float;
1298
+ if (parameter.float && material.shininess) material.shininess = parameter.float;
1345
1299
  break;
1346
1300
  case "emission":
1347
- if (parameter.color && material.emissive)
1348
- material.emissive.fromArray(parameter.color);
1349
- if (parameter.texture)
1350
- material.emissiveMap = getTexture(parameter.texture);
1301
+ if (parameter.color && material.emissive) material.emissive.fromArray(parameter.color);
1302
+ if (parameter.texture) material.emissiveMap = getTexture(parameter.texture);
1351
1303
  break;
1352
1304
  }
1353
1305
  }
@@ -1361,7 +1313,7 @@ THREE.ColladaLoader.prototype = {
1361
1313
 
1362
1314
  if (transparency === undefined && transparent) {
1363
1315
  transparency = {
1364
- float: 1
1316
+ float: 1,
1365
1317
  };
1366
1318
  }
1367
1319
 
@@ -1371,8 +1323,8 @@ THREE.ColladaLoader.prototype = {
1371
1323
  transparent = {
1372
1324
  opaque: "A_ONE",
1373
1325
  data: {
1374
- color: [1, 1, 1, 1]
1375
- }
1326
+ color: [1, 1, 1, 1],
1327
+ },
1376
1328
  };
1377
1329
  }
1378
1330
 
@@ -1431,7 +1383,7 @@ THREE.ColladaLoader.prototype = {
1431
1383
 
1432
1384
  function parseCamera(xml) {
1433
1385
  var data = {
1434
- name: xml.getAttribute("name")
1386
+ name: xml.getAttribute("name"),
1435
1387
  };
1436
1388
 
1437
1389
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -1674,7 +1626,7 @@ THREE.ColladaLoader.prototype = {
1674
1626
  name: xml.getAttribute("name"),
1675
1627
  sources: {},
1676
1628
  vertices: {},
1677
- primitives: []
1629
+ primitives: [],
1678
1630
  };
1679
1631
 
1680
1632
  var mesh = getElementsByTagName(xml, "mesh")[0];
@@ -1700,10 +1652,7 @@ THREE.ColladaLoader.prototype = {
1700
1652
  break;
1701
1653
 
1702
1654
  case "polygons":
1703
- console.warn(
1704
- "THREE.ColladaLoader: Unsupported primitive type: ",
1705
- child.nodeName
1706
- );
1655
+ console.warn("THREE.ColladaLoader: Unsupported primitive type: ", child.nodeName);
1707
1656
  break;
1708
1657
 
1709
1658
  case "lines":
@@ -1724,7 +1673,7 @@ THREE.ColladaLoader.prototype = {
1724
1673
  function parseSource(xml) {
1725
1674
  var data = {
1726
1675
  array: [],
1727
- stride: 3
1676
+ stride: 3,
1728
1677
  };
1729
1678
 
1730
1679
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -1762,9 +1711,7 @@ THREE.ColladaLoader.prototype = {
1762
1711
 
1763
1712
  if (child.nodeType !== 1) continue;
1764
1713
 
1765
- data[child.getAttribute("semantic")] = parseId(
1766
- child.getAttribute("source")
1767
- );
1714
+ data[child.getAttribute("semantic")] = parseId(child.getAttribute("source"));
1768
1715
  }
1769
1716
 
1770
1717
  return data;
@@ -1777,7 +1724,7 @@ THREE.ColladaLoader.prototype = {
1777
1724
  count: parseInt(xml.getAttribute("count")),
1778
1725
  inputs: {},
1779
1726
  stride: 0,
1780
- hasUV: false
1727
+ hasUV: false,
1781
1728
  };
1782
1729
 
1783
1730
  for (var i = 0, l = xml.childNodes.length; i < l; i++) {
@@ -1927,10 +1874,7 @@ THREE.ColladaLoader.prototype = {
1927
1874
  break;
1928
1875
 
1929
1876
  default:
1930
- console.warn(
1931
- "THREE.ColladaLoader: Unknow primitive type:",
1932
- primitive.type
1933
- );
1877
+ console.warn("THREE.ColladaLoader: Unknow primitive type:", primitive.type);
1934
1878
  }
1935
1879
 
1936
1880
  geometry.addGroup(start, count, p);
@@ -1955,12 +1899,7 @@ THREE.ColladaLoader.prototype = {
1955
1899
  switch (key) {
1956
1900
  case "POSITION":
1957
1901
  var prevLength = position.array.length;
1958
- buildGeometryData(
1959
- primitive,
1960
- sources[id],
1961
- input.offset,
1962
- position.array
1963
- );
1902
+ buildGeometryData(primitive, sources[id], input.offset, position.array);
1964
1903
  position.stride = sources[id].stride;
1965
1904
 
1966
1905
  if (sources.skinWeights && sources.skinIndices) {
@@ -1980,12 +1919,8 @@ THREE.ColladaLoader.prototype = {
1980
1919
 
1981
1920
  // see #3803
1982
1921
 
1983
- if (
1984
- primitive.hasUV === false &&
1985
- primitives.uvsNeedsFix === true
1986
- ) {
1987
- var count =
1988
- (position.array.length - prevLength) / position.stride;
1922
+ if (primitive.hasUV === false && primitives.uvsNeedsFix === true) {
1923
+ var count = (position.array.length - prevLength) / position.stride;
1989
1924
 
1990
1925
  for (var i = 0; i < count; i++) {
1991
1926
  // fill missing uv coordinates
@@ -1996,42 +1931,22 @@ THREE.ColladaLoader.prototype = {
1996
1931
  break;
1997
1932
 
1998
1933
  case "NORMAL":
1999
- buildGeometryData(
2000
- primitive,
2001
- sources[id],
2002
- input.offset,
2003
- normal.array
2004
- );
1934
+ buildGeometryData(primitive, sources[id], input.offset, normal.array);
2005
1935
  normal.stride = sources[id].stride;
2006
1936
  break;
2007
1937
 
2008
1938
  case "COLOR":
2009
- buildGeometryData(
2010
- primitive,
2011
- sources[id],
2012
- input.offset,
2013
- color.array
2014
- );
1939
+ buildGeometryData(primitive, sources[id], input.offset, color.array);
2015
1940
  color.stride = sources[id].stride;
2016
1941
  break;
2017
1942
 
2018
1943
  case "TEXCOORD":
2019
- buildGeometryData(
2020
- primitive,
2021
- sources[id],
2022
- input.offset,
2023
- uv.array
2024
- );
1944
+ buildGeometryData(primitive, sources[id], input.offset, uv.array);
2025
1945
  uv.stride = sources[id].stride;
2026
1946
  break;
2027
1947
 
2028
1948
  case "TEXCOORD1":
2029
- buildGeometryData(
2030
- primitive,
2031
- sources[id],
2032
- input.offset,
2033
- uv2.array
2034
- );
1949
+ buildGeometryData(primitive, sources[id], input.offset, uv2.array);
2035
1950
  uv.stride = sources[id].stride;
2036
1951
  break;
2037
1952
 
@@ -2045,42 +1960,22 @@ THREE.ColladaLoader.prototype = {
2045
1960
  break;
2046
1961
 
2047
1962
  case "NORMAL":
2048
- buildGeometryData(
2049
- primitive,
2050
- sources[input.id],
2051
- input.offset,
2052
- normal.array
2053
- );
1963
+ buildGeometryData(primitive, sources[input.id], input.offset, normal.array);
2054
1964
  normal.stride = sources[input.id].stride;
2055
1965
  break;
2056
1966
 
2057
1967
  case "COLOR":
2058
- buildGeometryData(
2059
- primitive,
2060
- sources[input.id],
2061
- input.offset,
2062
- color.array
2063
- );
1968
+ buildGeometryData(primitive, sources[input.id], input.offset, color.array);
2064
1969
  color.stride = sources[input.id].stride;
2065
1970
  break;
2066
1971
 
2067
1972
  case "TEXCOORD":
2068
- buildGeometryData(
2069
- primitive,
2070
- sources[input.id],
2071
- input.offset,
2072
- uv.array
2073
- );
1973
+ buildGeometryData(primitive, sources[input.id], input.offset, uv.array);
2074
1974
  uv.stride = sources[input.id].stride;
2075
1975
  break;
2076
1976
 
2077
1977
  case "TEXCOORD1":
2078
- buildGeometryData(
2079
- primitive,
2080
- sources[input.id],
2081
- input.offset,
2082
- uv2.array
2083
- );
1978
+ buildGeometryData(primitive, sources[input.id], input.offset, uv2.array);
2084
1979
  uv2.stride = sources[input.id].stride;
2085
1980
  break;
2086
1981
  }
@@ -2100,20 +1995,11 @@ THREE.ColladaLoader.prototype = {
2100
1995
  new THREE.Float32BufferAttribute(normal.array, normal.stride)
2101
1996
  );
2102
1997
  if (color.array.length > 0)
2103
- geometry.addAttribute(
2104
- "color",
2105
- new THREE.Float32BufferAttribute(color.array, color.stride)
2106
- );
1998
+ geometry.addAttribute("color", new THREE.Float32BufferAttribute(color.array, color.stride));
2107
1999
  if (uv.array.length > 0)
2108
- geometry.addAttribute(
2109
- "uv",
2110
- new THREE.Float32BufferAttribute(uv.array, uv.stride)
2111
- );
2000
+ geometry.addAttribute("uv", new THREE.Float32BufferAttribute(uv.array, uv.stride));
2112
2001
  if (uv2.array.length > 0)
2113
- geometry.addAttribute(
2114
- "uv2",
2115
- new THREE.Float32BufferAttribute(uv2.array, uv2.stride)
2116
- );
2002
+ geometry.addAttribute("uv2", new THREE.Float32BufferAttribute(uv2.array, uv2.stride));
2117
2003
 
2118
2004
  if (skinIndex.array.length > 0)
2119
2005
  geometry.addAttribute(
@@ -2207,7 +2093,7 @@ THREE.ColladaLoader.prototype = {
2207
2093
  var data = {
2208
2094
  name: xml.getAttribute("name") || "",
2209
2095
  joints: {},
2210
- links: []
2096
+ links: [],
2211
2097
  };
2212
2098
 
2213
2099
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -2243,9 +2129,7 @@ THREE.ColladaLoader.prototype = {
2243
2129
 
2244
2130
  switch (child.nodeName) {
2245
2131
  case "joint":
2246
- data.joints[child.getAttribute("sid")] = parseKinematicsJoint(
2247
- child
2248
- );
2132
+ data.joints[child.getAttribute("sid")] = parseKinematicsJoint(child);
2249
2133
  break;
2250
2134
 
2251
2135
  case "link":
@@ -2281,12 +2165,12 @@ THREE.ColladaLoader.prototype = {
2281
2165
  axis: new THREE.Vector3(),
2282
2166
  limits: {
2283
2167
  min: 0,
2284
- max: 0
2168
+ max: 0,
2285
2169
  },
2286
2170
  type: xml.nodeName,
2287
2171
  static: false,
2288
2172
  zeroPosition: 0,
2289
- middlePosition: 0
2173
+ middlePosition: 0,
2290
2174
  };
2291
2175
 
2292
2176
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -2327,7 +2211,7 @@ THREE.ColladaLoader.prototype = {
2327
2211
  sid: xml.getAttribute("sid"),
2328
2212
  name: xml.getAttribute("name") || "",
2329
2213
  attachments: [],
2330
- transforms: []
2214
+ transforms: [],
2331
2215
  };
2332
2216
 
2333
2217
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -2358,7 +2242,7 @@ THREE.ColladaLoader.prototype = {
2358
2242
  .split("/")
2359
2243
  .pop(),
2360
2244
  transforms: [],
2361
- links: []
2245
+ links: [],
2362
2246
  };
2363
2247
 
2364
2248
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -2384,7 +2268,7 @@ THREE.ColladaLoader.prototype = {
2384
2268
 
2385
2269
  function parseKinematicsTransform(xml) {
2386
2270
  var data = {
2387
- type: xml.nodeName
2271
+ type: xml.nodeName,
2388
2272
  };
2389
2273
 
2390
2274
  var array = parseFloats(xml.textContent);
@@ -2415,7 +2299,7 @@ THREE.ColladaLoader.prototype = {
2415
2299
  function parsePhysicsModel(xml) {
2416
2300
  var data = {
2417
2301
  name: xml.getAttribute("name") || "",
2418
- rigidBodies: {}
2302
+ rigidBodies: {},
2419
2303
  };
2420
2304
 
2421
2305
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -2426,10 +2310,7 @@ THREE.ColladaLoader.prototype = {
2426
2310
  switch (child.nodeName) {
2427
2311
  case "rigid_body":
2428
2312
  data.rigidBodies[child.getAttribute("name")] = {};
2429
- parsePhysicsRigidBody(
2430
- child,
2431
- data.rigidBodies[child.getAttribute("name")]
2432
- );
2313
+ parsePhysicsRigidBody(child, data.rigidBodies[child.getAttribute("name")]);
2433
2314
  break;
2434
2315
  }
2435
2316
  }
@@ -2473,7 +2354,7 @@ THREE.ColladaLoader.prototype = {
2473
2354
 
2474
2355
  function parseKinematicsScene(xml) {
2475
2356
  var data = {
2476
- bindJointAxis: []
2357
+ bindJointAxis: [],
2477
2358
  };
2478
2359
 
2479
2360
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -2496,7 +2377,7 @@ THREE.ColladaLoader.prototype = {
2496
2377
  target: xml
2497
2378
  .getAttribute("target")
2498
2379
  .split("/")
2499
- .pop()
2380
+ .pop(),
2500
2381
  };
2501
2382
 
2502
2383
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -2535,8 +2416,7 @@ THREE.ColladaLoader.prototype = {
2535
2416
  var kinematicsSceneId = Object.keys(library.kinematicsScenes)[0];
2536
2417
  var visualSceneId = Object.keys(library.visualScenes)[0];
2537
2418
 
2538
- if (kinematicsModelId === undefined || kinematicsSceneId === undefined)
2539
- return;
2419
+ if (kinematicsModelId === undefined || kinematicsSceneId === undefined) return;
2540
2420
 
2541
2421
  var kinematicsModel = getKinematicsModel(kinematicsModelId);
2542
2422
  var kinematicsScene = getKinematicsScene(kinematicsSceneId);
@@ -2550,9 +2430,7 @@ THREE.ColladaLoader.prototype = {
2550
2430
 
2551
2431
  // the result of the following query is an element of type 'translate', 'rotate','scale' or 'matrix'
2552
2432
 
2553
- var targetElement = collada.querySelector(
2554
- '[sid="' + axis.target + '"]'
2555
- );
2433
+ var targetElement = collada.querySelector('[sid="' + axis.target + '"]');
2556
2434
 
2557
2435
  if (targetElement) {
2558
2436
  // get the parent of the transfrom element
@@ -2561,10 +2439,7 @@ THREE.ColladaLoader.prototype = {
2561
2439
 
2562
2440
  // connect the joint of the kinematics model with the element in the visual scene
2563
2441
 
2564
- connect(
2565
- axis.jointIndex,
2566
- parentVisualElement
2567
- );
2442
+ connect(axis.jointIndex, parentVisualElement);
2568
2443
  }
2569
2444
  }
2570
2445
 
@@ -2578,7 +2453,7 @@ THREE.ColladaLoader.prototype = {
2578
2453
  object: object,
2579
2454
  transforms: buildTransformList(visualElement),
2580
2455
  joint: joint,
2581
- position: joint.zeroPosition
2456
+ position: joint.zeroPosition,
2582
2457
  };
2583
2458
  }
2584
2459
  });
@@ -2595,9 +2470,7 @@ THREE.ColladaLoader.prototype = {
2595
2470
  if (jointData) {
2596
2471
  return jointData.position;
2597
2472
  } else {
2598
- console.warn(
2599
- "THREE.ColladaLoader: Joint " + jointIndex + " doesn't exist."
2600
- );
2473
+ console.warn("THREE.ColladaLoader: Joint " + jointIndex + " doesn't exist.");
2601
2474
  }
2602
2475
  },
2603
2476
 
@@ -2620,9 +2493,7 @@ THREE.ColladaLoader.prototype = {
2620
2493
  ")."
2621
2494
  );
2622
2495
  } else if (joint.static) {
2623
- console.warn(
2624
- "THREE.ColladaLoader: Joint " + jointIndex + " is static."
2625
- );
2496
+ console.warn("THREE.ColladaLoader: Joint " + jointIndex + " is static.");
2626
2497
  } else {
2627
2498
  var object = jointData.object;
2628
2499
  var axis = joint.axis;
@@ -2640,25 +2511,17 @@ THREE.ColladaLoader.prototype = {
2640
2511
  if (transform.sid && transform.sid.indexOf(jointIndex) !== -1) {
2641
2512
  switch (joint.type) {
2642
2513
  case "revolute":
2643
- matrix.multiply(
2644
- m0.makeRotationAxis(axis, THREE.Math.degToRad(value))
2645
- );
2514
+ matrix.multiply(m0.makeRotationAxis(axis, THREE.Math.degToRad(value)));
2646
2515
  break;
2647
2516
 
2648
2517
  case "prismatic":
2649
2518
  matrix.multiply(
2650
- m0.makeTranslation(
2651
- axis.x * value,
2652
- axis.y * value,
2653
- axis.z * value
2654
- )
2519
+ m0.makeTranslation(axis.x * value, axis.y * value, axis.z * value)
2655
2520
  );
2656
2521
  break;
2657
2522
 
2658
2523
  default:
2659
- console.warn(
2660
- "THREE.ColladaLoader: Unknown joint type: " + joint.type
2661
- );
2524
+ console.warn("THREE.ColladaLoader: Unknown joint type: " + joint.type);
2662
2525
  break;
2663
2526
  }
2664
2527
  } else {
@@ -2669,11 +2532,7 @@ THREE.ColladaLoader.prototype = {
2669
2532
 
2670
2533
  case "translate":
2671
2534
  matrix.multiply(
2672
- m0.makeTranslation(
2673
- transform.obj.x,
2674
- transform.obj.y,
2675
- transform.obj.z
2676
- )
2535
+ m0.makeTranslation(transform.obj.x, transform.obj.y, transform.obj.z)
2677
2536
  );
2678
2537
  break;
2679
2538
 
@@ -2682,29 +2541,21 @@ THREE.ColladaLoader.prototype = {
2682
2541
  break;
2683
2542
 
2684
2543
  case "rotate":
2685
- matrix.multiply(
2686
- m0.makeRotationAxis(transform.obj, transform.angle)
2687
- );
2544
+ matrix.multiply(m0.makeRotationAxis(transform.obj, transform.angle));
2688
2545
  break;
2689
2546
  }
2690
2547
  }
2691
2548
  }
2692
2549
 
2693
2550
  object.matrix.copy(matrix);
2694
- object.matrix.decompose(
2695
- object.position,
2696
- object.quaternion,
2697
- object.scale
2698
- );
2551
+ object.matrix.decompose(object.position, object.quaternion, object.scale);
2699
2552
 
2700
2553
  jointMap[jointIndex].position = value;
2701
2554
  }
2702
2555
  } else {
2703
- console.log(
2704
- "THREE.ColladaLoader: " + jointIndex + " does not exist."
2705
- );
2556
+ console.log("THREE.ColladaLoader: " + jointIndex + " does not exist.");
2706
2557
  }
2707
- }
2558
+ },
2708
2559
  };
2709
2560
  }
2710
2561
 
@@ -2725,7 +2576,7 @@ THREE.ColladaLoader.prototype = {
2725
2576
  transforms.push({
2726
2577
  sid: child.getAttribute("sid"),
2727
2578
  type: child.nodeName,
2728
- obj: matrix
2579
+ obj: matrix,
2729
2580
  });
2730
2581
  break;
2731
2582
 
@@ -2736,7 +2587,7 @@ THREE.ColladaLoader.prototype = {
2736
2587
  transforms.push({
2737
2588
  sid: child.getAttribute("sid"),
2738
2589
  type: child.nodeName,
2739
- obj: vector
2590
+ obj: vector,
2740
2591
  });
2741
2592
  break;
2742
2593
 
@@ -2748,7 +2599,7 @@ THREE.ColladaLoader.prototype = {
2748
2599
  sid: child.getAttribute("sid"),
2749
2600
  type: child.nodeName,
2750
2601
  obj: vector,
2751
- angle: angle
2602
+ angle: angle,
2752
2603
  });
2753
2604
  break;
2754
2605
  }
@@ -2789,7 +2640,7 @@ THREE.ColladaLoader.prototype = {
2789
2640
  instanceLights: [],
2790
2641
  instanceGeometries: [],
2791
2642
  instanceNodes: [],
2792
- transforms: {}
2643
+ transforms: {},
2793
2644
  };
2794
2645
 
2795
2646
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -2832,18 +2683,14 @@ THREE.ColladaLoader.prototype = {
2832
2683
  case "translate":
2833
2684
  var array = parseFloats(child.textContent);
2834
2685
  vector.fromArray(array);
2835
- data.matrix.multiply(
2836
- matrix.makeTranslation(vector.x, vector.y, vector.z)
2837
- );
2686
+ data.matrix.multiply(matrix.makeTranslation(vector.x, vector.y, vector.z));
2838
2687
  data.transforms[child.getAttribute("sid")] = child.nodeName;
2839
2688
  break;
2840
2689
 
2841
2690
  case "rotate":
2842
2691
  var array = parseFloats(child.textContent);
2843
2692
  var angle = THREE.Math.degToRad(array[3]);
2844
- data.matrix.multiply(
2845
- matrix.makeRotationAxis(vector.fromArray(array), angle)
2846
- );
2693
+ data.matrix.multiply(matrix.makeRotationAxis(vector.fromArray(array), angle));
2847
2694
  data.transforms[child.getAttribute("sid")] = child.nodeName;
2848
2695
  break;
2849
2696
 
@@ -2877,7 +2724,7 @@ THREE.ColladaLoader.prototype = {
2877
2724
  var data = {
2878
2725
  id: parseId(xml.getAttribute("url")),
2879
2726
  materials: {},
2880
- skeletons: []
2727
+ skeletons: [],
2881
2728
  };
2882
2729
 
2883
2730
  for (var i = 0; i < xml.childNodes.length; i++) {
@@ -3019,7 +2866,7 @@ THREE.ColladaLoader.prototype = {
3019
2866
  boneData.push({
3020
2867
  bone: object,
3021
2868
  boneInverse: boneInverse,
3022
- processed: false
2869
+ processed: false,
3023
2870
  });
3024
2871
  }
3025
2872
  });
@@ -3160,10 +3007,7 @@ THREE.ColladaLoader.prototype = {
3160
3007
  for (var type in geometries) {
3161
3008
  var geometry = geometries[type];
3162
3009
 
3163
- var materials = resolveMaterialBinding(
3164
- geometry.materialKeys,
3165
- instanceMaterials
3166
- );
3010
+ var materials = resolveMaterialBinding(geometry.materialKeys, instanceMaterials);
3167
3011
 
3168
3012
  // handle case if no materials are defined
3169
3013
 
@@ -3231,7 +3075,7 @@ THREE.ColladaLoader.prototype = {
3231
3075
  function parseVisualScene(xml) {
3232
3076
  var data = {
3233
3077
  name: xml.getAttribute("name"),
3234
- children: []
3078
+ children: [],
3235
3079
  };
3236
3080
 
3237
3081
  prepareNodes(xml);
@@ -3316,9 +3160,7 @@ THREE.ColladaLoader.prototype = {
3316
3160
 
3317
3161
  var asset = parseAsset(getElementsByTagName(collada, "asset")[0]);
3318
3162
  var textureLoader = new THREE.TextureLoader(this.manager);
3319
- textureLoader
3320
- .setPath(this.resourcePath || path)
3321
- .setCrossOrigin(this.crossOrigin);
3163
+ textureLoader.setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin);
3322
3164
 
3323
3165
  var tgaLoader;
3324
3166
 
@@ -3349,16 +3191,11 @@ THREE.ColladaLoader.prototype = {
3349
3191
  visualScenes: {},
3350
3192
  kinematicsModels: {},
3351
3193
  physicsModels: {},
3352
- kinematicsScenes: {}
3194
+ kinematicsScenes: {},
3353
3195
  };
3354
3196
 
3355
3197
  parseLibrary(collada, "library_animations", "animation", parseAnimation);
3356
- parseLibrary(
3357
- collada,
3358
- "library_animation_clips",
3359
- "animation_clip",
3360
- parseAnimationClip
3361
- );
3198
+ parseLibrary(collada, "library_animation_clips", "animation_clip", parseAnimationClip);
3362
3199
  parseLibrary(collada, "library_controllers", "controller", parseController);
3363
3200
  parseLibrary(collada, "library_images", "image", parseImage);
3364
3201
  parseLibrary(collada, "library_effects", "effect", parseEffect);
@@ -3367,30 +3204,10 @@ THREE.ColladaLoader.prototype = {
3367
3204
  parseLibrary(collada, "library_lights", "light", parseLight);
3368
3205
  parseLibrary(collada, "library_geometries", "geometry", parseGeometry);
3369
3206
  parseLibrary(collada, "library_nodes", "node", parseNode);
3370
- parseLibrary(
3371
- collada,
3372
- "library_visual_scenes",
3373
- "visual_scene",
3374
- parseVisualScene
3375
- );
3376
- parseLibrary(
3377
- collada,
3378
- "library_kinematics_models",
3379
- "kinematics_model",
3380
- parseKinematicsModel
3381
- );
3382
- parseLibrary(
3383
- collada,
3384
- "library_physics_models",
3385
- "physics_model",
3386
- parsePhysicsModel
3387
- );
3388
- parseLibrary(
3389
- collada,
3390
- "scene",
3391
- "instance_kinematics_scene",
3392
- parseKinematicsScene
3393
- );
3207
+ parseLibrary(collada, "library_visual_scenes", "visual_scene", parseVisualScene);
3208
+ parseLibrary(collada, "library_kinematics_models", "kinematics_model", parseKinematicsModel);
3209
+ parseLibrary(collada, "library_physics_models", "physics_model", parsePhysicsModel);
3210
+ parseLibrary(collada, "scene", "instance_kinematics_scene", parseKinematicsScene);
3394
3211
 
3395
3212
  buildLibrary(library.animations, buildAnimation);
3396
3213
  buildLibrary(library.clips, buildAnimationClip);
@@ -3418,9 +3235,9 @@ THREE.ColladaLoader.prototype = {
3418
3235
  animations: animations,
3419
3236
  kinematics: kinematics,
3420
3237
  library: library,
3421
- scene: scene
3238
+ scene: scene,
3422
3239
  };
3423
- }
3240
+ },
3424
3241
  };
3425
3242
 
3426
3243
  // important: don't forget to export it