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.
- package/build/zinc.frontend.js +1 -1
- package/build/zinc.js +43 -35
- package/build/zinc.js.map +1 -1
- package/package.json +3 -3
- package/src/assets/disc.png +0 -0
- package/src/assets/mapMarker.svg +11 -0
- package/src/controls.js +1594 -0
- package/src/geometryCSG.js +148 -0
- package/src/glyphsetCSG.js +84 -0
- package/src/loaders/GLTFToZincJSLoader.js +85 -0
- package/src/loaders/JSONLoader.js +697 -0
- package/src/loaders/OBJLoader.js +911 -0
- package/src/loaders/STLLoader.js +399 -0
- package/src/loaders/primitivesLoader.js +46 -0
- package/src/minimap.js +82 -0
- package/src/primitives/augmentShader.js +22 -0
- package/src/primitives/geometry.js +109 -0
- package/src/primitives/glyph.js +150 -0
- package/src/primitives/glyphset.js +657 -0
- package/src/primitives/label.js +51 -0
- package/src/primitives/lines.js +35 -0
- package/src/primitives/marker.js +88 -0
- package/src/primitives/pointset.js +53 -0
- package/src/primitives/texturePrimitive.js +16 -0
- package/src/primitives/textureSlides.js +118 -0
- package/src/primitives/zincObject.js +573 -0
- package/src/region.js +554 -0
- package/src/renderer.js +612 -0
- package/src/scene.js +963 -0
- package/src/sceneExporter.js +32 -0
- package/src/sceneLoader.js +842 -0
- package/src/texture/texture.js +57 -0
- package/src/texture/textureArray.js +85 -0
- package/src/three/GLTFExporter.js +2448 -0
- package/src/three/Geometry.js +2084 -0
- package/src/three/Loader.js +344 -0
- package/src/three/Points.js +223 -0
- package/src/three/line/Line.js +293 -0
- package/src/three/line/LineSegments.js +65 -0
- package/src/three-js-csg.js +564 -0
- package/src/utilities.js +321 -0
- package/src/videoHandler.js +92 -0
- package/src/workers/geometryCSG.worker.js +73 -0
- package/src/workers/geometryCSGInternal.js +58 -0
- 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;
|