zincjs 1.0.13 → 1.0.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.
Files changed (45) hide show
  1. package/build/zinc.frontend.js +1 -1
  2. package/build/zinc.js +43 -35
  3. package/build/zinc.js.map +1 -1
  4. package/package.json +3 -3
  5. package/src/assets/disc.png +0 -0
  6. package/src/assets/mapMarker.svg +11 -0
  7. package/src/controls.js +1594 -0
  8. package/src/geometryCSG.js +148 -0
  9. package/src/glyphsetCSG.js +84 -0
  10. package/src/loaders/GLTFToZincJSLoader.js +85 -0
  11. package/src/loaders/JSONLoader.js +697 -0
  12. package/src/loaders/OBJLoader.js +911 -0
  13. package/src/loaders/STLLoader.js +399 -0
  14. package/src/loaders/primitivesLoader.js +46 -0
  15. package/src/minimap.js +82 -0
  16. package/src/primitives/augmentShader.js +22 -0
  17. package/src/primitives/geometry.js +109 -0
  18. package/src/primitives/glyph.js +150 -0
  19. package/src/primitives/glyphset.js +657 -0
  20. package/src/primitives/label.js +51 -0
  21. package/src/primitives/lines.js +35 -0
  22. package/src/primitives/marker.js +88 -0
  23. package/src/primitives/pointset.js +53 -0
  24. package/src/primitives/texturePrimitive.js +16 -0
  25. package/src/primitives/textureSlides.js +118 -0
  26. package/src/primitives/zincObject.js +573 -0
  27. package/src/region.js +554 -0
  28. package/src/renderer.js +612 -0
  29. package/src/scene.js +963 -0
  30. package/src/sceneExporter.js +32 -0
  31. package/src/sceneLoader.js +842 -0
  32. package/src/texture/texture.js +57 -0
  33. package/src/texture/textureArray.js +85 -0
  34. package/src/three/GLTFExporter.js +2448 -0
  35. package/src/three/Geometry.js +2084 -0
  36. package/src/three/Loader.js +344 -0
  37. package/src/three/Points.js +223 -0
  38. package/src/three/line/Line.js +293 -0
  39. package/src/three/line/LineSegments.js +65 -0
  40. package/src/three-js-csg.js +564 -0
  41. package/src/utilities.js +321 -0
  42. package/src/videoHandler.js +92 -0
  43. package/src/workers/geometryCSG.worker.js +73 -0
  44. package/src/workers/geometryCSGInternal.js +58 -0
  45. package/src/zinc.js +38 -0
@@ -0,0 +1,57 @@
1
+ const THREE = require('three');
2
+
3
+ const Texture = function() {
4
+ this.isTexture = true;
5
+ this.impl = undefined;
6
+ this.isLoading = false;
7
+ this.size = {
8
+ width: 1,
9
+ height: 1,
10
+ depth: 0
11
+ };
12
+ }
13
+
14
+ Texture.prototype.loadImage = function(img, src) {
15
+ return new Promise((resolve, reject) => {
16
+ img.onload = () => resolve(img);
17
+ img.onerror = reject;
18
+ img.src = src;
19
+ })
20
+ }
21
+
22
+ Texture.prototype.imageToUint8Array = async function(img, src, canvas) {
23
+ await this.loadImage(img, src);
24
+ canvas.width = img.width;
25
+ canvas.height = img.height;
26
+ const ctx = canvas.getContext("2d");
27
+ ctx.drawImage(img, 0, 0);
28
+ return {
29
+ array: new Uint8Array(ctx.getImageData(0, 0, canvas.width, canvas.height).data.buffer),
30
+ width: canvas.width,
31
+ height: canvas.height
32
+ };
33
+ }
34
+
35
+ Texture.prototype.loadFromImages = async function(srcArrays) {
36
+ return
37
+ }
38
+
39
+ Texture.prototype.isReady = function() {
40
+ if (this.impl && !this.isLoading)
41
+ return true;
42
+ return false;
43
+ }
44
+
45
+ Texture.prototype.getMaterial = function() {
46
+ if (this.impl) {
47
+ return new THREE.MeshBasicMaterial({
48
+ color : new THREE.Color(1, 1, 1),
49
+ transparent : false,
50
+ opacity : 1.0,
51
+ map : this.impl,
52
+ side : THREE.DoubleSide
53
+ });
54
+ }
55
+ }
56
+
57
+ exports.Texture = Texture;
@@ -0,0 +1,85 @@
1
+ const THREE = require('three');
2
+
3
+ const TextureArray = function() {
4
+ (require('./texture').Texture).call(this);
5
+ this.isTextureArray = true;
6
+
7
+ this.loadFromImages = async function(srcArrays) {
8
+ let w = 1;
9
+ let h = 1;
10
+ let d = 0;
11
+ if (srcArrays && srcArrays.length) {
12
+ this.isLoading = true;
13
+ const image = new Image();
14
+ image.crossOrigin = "Anonymous";
15
+ const canvas = document.createElement("canvas");
16
+ let length = 0;
17
+ const dataStacks = new Array(srcArrays.length);
18
+ for (let i = 0; i < srcArrays.length; i++) {
19
+ const data = await this.imageToUint8Array(image, srcArrays[i], canvas);
20
+ if (data && data.array) {
21
+ w = data.width;
22
+ h = data.height;
23
+ dataStacks[d] = data.array;
24
+ length += dataStacks[d].length;
25
+ d++;
26
+ }
27
+ }
28
+ const fullArray = new Uint8Array(length);
29
+ length = 0;
30
+ dataStacks.forEach(data => {
31
+ fullArray.set(data, length);
32
+ length += data.length;
33
+ });
34
+
35
+ this.impl = new THREE.DataTexture2DArray( fullArray, w, h, d );
36
+ this.size = {
37
+ width: w,
38
+ height: h,
39
+ depth: d
40
+ };
41
+ this.isLoading = false;
42
+ }
43
+ }
44
+
45
+ this.getMaterial = function(options) {
46
+ if (this.impl) {
47
+ let material = undefined;
48
+ if (options) {
49
+ if (options.vs && options.fs) {
50
+ let transparent = true;
51
+ if (options.transparent)
52
+ transparent = options.transparent;
53
+ let side = THREE.FrontSide;
54
+ if (options.side)
55
+ side = options.side;
56
+ material = new THREE.ShaderMaterial( {
57
+ transparent,
58
+ uniforms: options.uniforms,
59
+ vertexShader: options.vs,
60
+ fragmentShader: options.fs,
61
+ side
62
+ } );
63
+ if (options.glslVersion) {
64
+ material.glslVersion = options.glslVersion;
65
+ }
66
+ }
67
+ } else {
68
+ material = new THREE.MeshBasicMaterial({
69
+ color : new THREE.Color(1, 1, 1),
70
+ transparent : false,
71
+ opacity : 1.0,
72
+ map : this.impl,
73
+ side : THREE.DoubleSide
74
+ });
75
+ }
76
+ if (material) {
77
+ material.needsUpdate = true;
78
+ return material;
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ TextureArray.prototype = Object.create((require('./texture').Texture).prototype);
85
+ exports.TextureArray = TextureArray;