zincjs 1.11.3 → 1.11.4
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.js
CHANGED
|
@@ -32,7 +32,7 @@ module.exports = require("url-polyfill");
|
|
|
32
32
|
/***/ ((module) => {
|
|
33
33
|
|
|
34
34
|
"use strict";
|
|
35
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"zincjs","version":"1.11.
|
|
35
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"zincjs","version":"1.11.4","description":"ZincJS (Web-based-Zinc-Visualisation)","main":"build/zinc.js","directories":{"doc":"docs"},"files":["package.json","LICENSE","README.md","src/*","build/zinc.js","build/zinc.frontend.js","build/zinc.js.map","webpack.config.js"],"scripts":{"build-bundle":"webpack --config webpack.frontend.js; webpack --config webpack.backend.js","build-backend":"webpack --config webpack.backend.js","test":"npm --prefix ./test install && npm --prefix ./test run test-ci","changelog":"auto-changelog -p --output CHANGELOG.md --template keepachangelog","jsdoc":"jsdoc -c jsdoc_conf.json","version":"npm run build-bundle;npm run jsdoc;npm run changelog; git add CHANGELOG.md docs","release:beta":"npm version prerelease --preid=beta; npm publish --tag beta","release:minor":"npm version minor; npm publish","release:patch":"npm version patch; npm publish"},"repository":{"type":"git","url":"git+https://github.com/alan-wu/ZincJS.git"},"keywords":["library","webgl","3d","zincjs"],"author":"Alan Wu <alan.wu@auckland.ac.nz>","license":"MIT","bugs":{"url":"https://github.com/alan-wu/ZincJS/issues"},"homepage":"http://alan-wu.github.io/ZincJS/","devDependencies":{"@babel/core":"^7.23.9","@babel/preset-env":"^7.23.9","auto-changelog":"^2.4.0","babel-loader":"^9.1.3","babel-preset-minify":"^0.5.1","file-loader":"^6.2.0","jsdoc":"^4.0.2","raw-loader":"^4.0.2","webpack":"^5.90.3","webpack-cli":"^5.1.4","webpack-node-externals":"^3.0.0"},"dependencies":{"css-element-queries":"^1.2.2","lodash":"^4.17.19","promise-polyfill":"^8.1.3","three":"^0.130.1","three-spritetext":"1.6.2","url-loader":"^4.1.1","url-polyfill":"^1.1.7","webworkify-webpack":"^2.1.5"}}');
|
|
36
36
|
|
|
37
37
|
/***/ }),
|
|
38
38
|
/* 3 */
|
|
@@ -112,7 +112,7 @@ if(oldAttribute.isInterleavedBufferAttribute?attribute=new THREE.BufferAttribute
|
|
|
112
112
|
var cons=Uint8Array;newIndices.length>=Math.pow(2,8)&&(cons=Uint16Array),newIndices.length>=Math.pow(2,16)&&(cons=Uint32Array);var newIndexBuffer=new cons(newIndices),newIndices=null;return null===indices?newIndices=new THREE.BufferAttribute(newIndexBuffer,1):(newIndices=geometry.getIndex().clone(),newIndices.setArray(newIndexBuffer)),result.setIndex(newIndices),result};function PhongToToon(materialIn){if(materialIn.isMeshPhongMaterial){var material=new THREE.MeshToonMaterial({color:materialIn.color.clone(),morphTargets:materialIn.morphTargets,morphNormals:materialIn.morphNormals,vertexColors:materialIn.vertexColors,transparent:materialIn.transparent,opacity:materialIn.opacity,side:materialIn.side});return materialIn.map&&(material.map=materialIn.map),material}return materialIn}/**
|
|
113
113
|
* Create and return a new buffer geometry with the size of length,
|
|
114
114
|
* and initial coords.
|
|
115
|
-
*/function createBufferGeometry(length,coords){if(coords&&length>=coords.length){var geometry=new THREE.BufferGeometry,vertices=new Float32Array(3*length),i=0;return coords.forEach(coord=>{vertices[i++]=coord[0],vertices[i++]=coord[1],vertices[i++]=coord[2]}),geometry.setAttribute("position",new THREE.BufferAttribute(vertices,3)),geometry.setDrawRange(0,coords.length),geometry}}function getCircularTexture(){var image=new Image;image.src=__webpack_require__(8);var texture=new THREE.Texture;return texture.image=image,texture.needsUpdate=!0,texture}function createNewSpriteText(text,height,colour,font,pixel,weight){var sprite=new SpriteText(text,height,colour,font,pixel,weight);return sprite.material.sizeAttenuation=!1,sprite.material.alphaTest=.5,sprite.material.transparent=!0,sprite.material.depthWrite=!1,sprite.material.depthTest=!1,sprite.center.set(.5,-1.2),sprite.renderOrder=1e4,sprite}exports.getBoundingBox=getBoundingBox,exports.createNewURL=createNewURL,exports.createBufferGeometry=createBufferGeometry,exports.getCircularTexture=getCircularTexture,exports.resolveURL=resolveURL,exports.loadExternalFile=loadExternalFile,exports.loadExternalFiles=loadExternalFiles,exports.PhongToToon=PhongToToon,exports.createNewSpriteText=createNewSpriteText;
|
|
115
|
+
*/function createBufferGeometry(length,coords){if(coords&&length>=coords.length){var geometry=new THREE.BufferGeometry,vertices=new Float32Array(3*length),i=0;return coords.forEach(coord=>{vertices[i++]=coord[0],vertices[i++]=coord[1],vertices[i++]=coord[2]}),geometry.setAttribute("position",new THREE.BufferAttribute(vertices,3)),geometry.setDrawRange(0,coords.length),geometry}}function getCircularTexture(){var image=new Image;image.src=__webpack_require__(8);var texture=new THREE.Texture;return texture.image=image,texture.needsUpdate=!0,texture}function createNewSpriteText(text,height,colour,font,pixel,weight){var sprite=new SpriteText(text,height,colour,font,pixel,weight);return sprite.fontFace=font,sprite.fontSize=pixel,sprite.fontWeight=weight,sprite.material.map.generateMipmaps=!1,sprite.material.map.anisotropy=4,sprite.material.sizeAttenuation=!1,sprite.material.alphaTest=.5,sprite.material.transparent=!0,sprite.material.depthWrite=!1,sprite.material.depthTest=!1,sprite.center.set(.5,-1.2),sprite.renderOrder=1e4,sprite}exports.getBoundingBox=getBoundingBox,exports.createNewURL=createNewURL,exports.createBufferGeometry=createBufferGeometry,exports.getCircularTexture=getCircularTexture,exports.resolveURL=resolveURL,exports.loadExternalFile=loadExternalFile,exports.loadExternalFiles=loadExternalFiles,exports.PhongToToon=PhongToToon,exports.createNewSpriteText=createNewSpriteText;
|
|
116
116
|
|
|
117
117
|
/***/ }),
|
|
118
118
|
/* 6 */
|
|
@@ -497,7 +497,7 @@ var THREE=__webpack_require__(4),markerImage=new Image(128,128);markerImage.src=
|
|
|
497
497
|
* Enable and visualise the marker.
|
|
498
498
|
*/ /**
|
|
499
499
|
* Disable and hide the marker.
|
|
500
|
-
*/this.updateVisual=(min,max)=>{var scale=1,porportion=0;min!==max&&(porportion=1-(this.ndc.z-min)/(max-min),scale=.6+.4*porportion),this.setSpriteSize(scale)},this.updateNDC=camera=>(this.ndc.copy(this.morph.position),this.ndc.project(camera),this.ndc.z=Math.min(Math.max(this.ndc.z,0),1),this.ndc),this.setPosition=(x,y,z)=>{this.morph.position.set(x,y,z)},this.setSpriteSize=size=>{sprite.scale.set(.015,.02,1),sprite.scale.multiplyScalar(size)},this.setUserSprite=()=>{userSprite&&(this.morph.add(userSprite),defaultDisplay&&(this.morph.remove(sprite),label&&this.morph.remove(label),defaultDisplay=!1))},this.setImageForUserSprite=(image,size)=>{userSprite&&(this.morph.remove(userSprite),userSprite=void 0),userTexture&&userTexture.dispose(),userMaterial&&userMaterial.dispose(),userTexture=new THREE.Texture,userTexture.image=image,userTexture.needsUpdate=!0,userMaterial=new THREE.SpriteMaterial({map:userTexture,alphaTest:.5,transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}),size||(size=[.05,.05,1]),userSprite=new THREE.Sprite(userMaterial),userSprite.center.set(.5,0),userSprite.scale.set(size[0],size[1],size[2]),userSprite.userData=this,this.setUserSprite()},this.setDefaultSprite=()=>{defaultDisplay||(defaultDisplay=!0,this.morph.add(sprite),userSprite&&this.morph.remove(userSprite),label&&this.morph.add(label))},this.loadUserSprite=(url,size)=>{if(url)if(url!==userUrl){userUrl=url;var userImage=new Image(128,128);userImage.crossOrigin="anonymous",userImage.onload=()=>{this.setImageForUserSprite(userImage,size)},userImage.src=url}else this.setUserSprite()},this.dispose=()=>{this.morph&&this.morph.clear(),sprite&&(sprite.clear(),sprite=void 0),label&&(label.material.map.dispose(),label.material.dispose(),label=void 0)},this.isEnabled=()=>enabled,this.setNumber=numberIn=>{(!numberIn||number!=numberIn)&&label&&(this.morph.remove(label),label.material.map.dispose(),label.material.dispose(),label=void 0),!label&&numberIn&&(label=createNewSpriteText(numberIn,.012,"black","Asap",
|
|
500
|
+
*/this.updateVisual=(min,max)=>{var scale=1,porportion=0;min!==max&&(porportion=1-(this.ndc.z-min)/(max-min),scale=.6+.4*porportion),this.setSpriteSize(scale)},this.updateNDC=camera=>(this.ndc.copy(this.morph.position),this.ndc.project(camera),this.ndc.z=Math.min(Math.max(this.ndc.z,0),1),this.ndc),this.setPosition=(x,y,z)=>{this.morph.position.set(x,y,z)},this.setSpriteSize=size=>{sprite.scale.set(.015,.02,1),sprite.scale.multiplyScalar(size)},this.setUserSprite=()=>{userSprite&&(this.morph.add(userSprite),defaultDisplay&&(this.morph.remove(sprite),label&&this.morph.remove(label),defaultDisplay=!1))},this.setImageForUserSprite=(image,size)=>{userSprite&&(this.morph.remove(userSprite),userSprite=void 0),userTexture&&userTexture.dispose(),userMaterial&&userMaterial.dispose(),userTexture=new THREE.Texture,userTexture.image=image,userTexture.needsUpdate=!0,userMaterial=new THREE.SpriteMaterial({map:userTexture,alphaTest:.5,transparent:!0,depthTest:!1,depthWrite:!1,sizeAttenuation:!1}),size||(size=[.05,.05,1]),userSprite=new THREE.Sprite(userMaterial),userSprite.center.set(.5,0),userSprite.scale.set(size[0],size[1],size[2]),userSprite.userData=this,this.setUserSprite()},this.setDefaultSprite=()=>{defaultDisplay||(defaultDisplay=!0,this.morph.add(sprite),userSprite&&this.morph.remove(userSprite),label&&this.morph.add(label))},this.loadUserSprite=(url,size)=>{if(url)if(url!==userUrl){userUrl=url;var userImage=new Image(128,128);userImage.crossOrigin="anonymous",userImage.onload=()=>{this.setImageForUserSprite(userImage,size)},userImage.src=url}else this.setUserSprite()},this.dispose=()=>{this.morph&&this.morph.clear(),sprite&&(sprite.clear(),sprite=void 0),label&&(label.material.map.dispose(),label.material.dispose(),label=void 0)},this.isEnabled=()=>enabled,this.setNumber=numberIn=>{(!numberIn||number!=numberIn)&&label&&(this.morph.remove(label),label.material.map.dispose(),label.material.dispose(),label=void 0),!label&&numberIn&&(label=createNewSpriteText(numberIn,.012,"black","Asap",120,700),this.morph.add(label)),number=numberIn},this.getNumber=()=>number?number:1,this.setVisibility=function(visible){visible!==this.visible&&(this.visible=visible,this.group.visible=visible,this.parent.region&&(this.parent.region.pickableUpdateRequired=!0))},this.enable=()=>{enabled=!0,this.morph.visible=!0,this.visible=!0},this.disable=()=>{enabled=!1,this.morph.visible=!1,this.visible=!1},initialise()};/**
|
|
501
501
|
* A special graphics type with a tear drop shape.
|
|
502
502
|
* It is currently used to mark the location of a
|
|
503
503
|
* {@link zincObject}.
|
|
@@ -611,7 +611,7 @@ var SpriteText=(__webpack_require__(7)["default"]);/**
|
|
|
611
611
|
* Get the text.
|
|
612
612
|
*
|
|
613
613
|
* @return {String}
|
|
614
|
-
*/sprite=colour?new SpriteText(text,.015,colour.getStyle()):new SpriteText(text,.015),sprite.material.sizeAttenuation=!1,sprite.center.x=-.05,sprite.center.y=0,this.getPosition=()=>sprite?[sprite.position.x,sprite.position.y,sprite.position.z]:[0,0,0],this.setPosition=(x,y,z)=>{sprite&&sprite.position.set(x,y,z)},this.setColour=colour=>{sprite.color=colour.getStyle()},this.setScale=scaling=>{sprite&&0<scaling&&sprite.scale.set(scaling,scaling,1)},this.dispose=()=>{sprite.dispose()},this.getSprite=()=>sprite,this.getString=()=>text};
|
|
614
|
+
*/sprite=colour?new SpriteText(text,.015,colour.getStyle()):new SpriteText(text,.015),sprite.fontFace="Asap",sprite.fontWeight=700,sprite.material.map.generateMipmaps=!1,sprite.material.sizeAttenuation=!1,sprite.center.x=-.05,sprite.center.y=0,this.getPosition=()=>sprite?[sprite.position.x,sprite.position.y,sprite.position.z]:[0,0,0],this.setPosition=(x,y,z)=>{sprite&&sprite.position.set(x,y,z)},this.setColour=colour=>{sprite.color=colour.getStyle()},this.setScale=scaling=>{sprite&&0<scaling&&sprite.scale.set(scaling,scaling,1)},this.dispose=()=>{sprite.dispose()},this.getSprite=()=>sprite,this.getString=()=>text};
|
|
615
615
|
|
|
616
616
|
/***/ }),
|
|
617
617
|
/* 18 */
|
|
@@ -1180,7 +1180,7 @@ function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var
|
|
|
1180
1180
|
* @param {Number} size - size to be set.
|
|
1181
1181
|
*/this.setSpriteSize=size=>{sprite.scale.set(.015,.02,1),sprite.scale.multiplyScalar(size)},this.clear=()=>{this.group.clear(),this.markers={}},this.dispose=()=>{this.clear(),this.morph&&this.morph.clear()};var createNewSprite=index=>{//Group is needed to set the position after scaling
|
|
1182
1182
|
//the sprite
|
|
1183
|
-
var localGroup=new THREE.Group,sprite=new THREE.Sprite(spriteMaterial);return sprite.clusterIndex=index,sprite.center.set(.5,0),sprite.position.set(0,0,0),sprite.renderOrder=1e4,sprite.scale.set(size[0],size[1],size[2]),sprite.userData=this,localGroup.add(sprite),this.group.add(localGroup),{group:localGroup,marker:sprite,label:void 0,number:0,min:[0,0,0],max:[1,1,1]}},activateSpriteForCluster=(sprite,cluster,number)=>{sprite.group.visible=!0,sprite.group.position.set(cluster.coords[0],cluster.coords[1],cluster.coords[2]),(sprite.label===void 0||number!==sprite.number)&&(sprite.label&&(sprite.group.remove(sprite.label),sprite.label.material.map.dispose(),sprite.label.material.dispose()),sprite.label=createNewSpriteText(number,.012,"black","Asap",
|
|
1183
|
+
var localGroup=new THREE.Group,sprite=new THREE.Sprite(spriteMaterial);return sprite.clusterIndex=index,sprite.center.set(.5,0),sprite.position.set(0,0,0),sprite.renderOrder=1e4,sprite.scale.set(size[0],size[1],size[2]),sprite.userData=this,localGroup.add(sprite),this.group.add(localGroup),{group:localGroup,marker:sprite,label:void 0,number:0,min:[0,0,0],max:[1,1,1]}},activateSpriteForCluster=(sprite,cluster,number)=>{sprite.group.visible=!0,sprite.group.position.set(cluster.coords[0],cluster.coords[1],cluster.coords[2]),(sprite.label===void 0||number!==sprite.number)&&(sprite.label&&(sprite.group.remove(sprite.label),sprite.label.material.map.dispose(),sprite.label.material.dispose()),sprite.label=createNewSpriteText(number,.012,"black","Asap",120,700),sprite.number=number,sprite.group.add(sprite.label)),sprite.min=cluster.min,sprite.max=cluster.max},drawClusters=clusters=>{var currentIndex=0;for(clusters.forEach(cluster=>{var length=cluster.members.length,number=0;1===length?cluster.members[0].setVisibility(!0):(cluster.members.forEach(marker=>{number+=marker.getNumber(),marker.setVisibility(!1)}),!sprites[currentIndex]&&sprites.push(createNewSprite(currentIndex)),activateSpriteForCluster(sprites[currentIndex],cluster,number),currentIndex++)}),currentIndex;currentIndex<sprites.length;currentIndex++)sprites[currentIndex].group.visible=!1},getCluster=(markersObj,clusters)=>{var first=!0,newCluster={members:[],coords:[0,0,0],min:[0,0,0],max:[1,1,1]},dist=0;for(var prop in markersObj)first?(_v21.set(markersObj[prop].ndc.x,markersObj[prop].ndc.y),this._b1.setFromPoints([markersObj[prop].morph.position]),first=!1,newCluster.members.push(markersObj[prop]),newCluster.coords=[markersObj[prop].morph.position.x,markersObj[prop].morph.position.y,markersObj[prop].morph.position.z],clusters.push(newCluster),delete markersObj[prop]):(_v22.set(markersObj[prop].ndc.x,markersObj[prop].ndc.y),dist=_v21.distanceTo(_v22),.1>dist&&(newCluster.members.push(markersObj[prop]),this._b1.expandByPoint(markersObj[prop].morph.position),delete markersObj[prop]));newCluster.min=[this._b1.min.x,this._b1.min.y,this._b1.min.z],newCluster.max=[this._b1.max.x,this._b1.max.y,this._b1.max.z],!0!=first&&getCluster(markersObj,clusters)};//Get clusters based on the ndc coordinate for each cluster.
|
|
1184
1184
|
/**
|
|
1185
1185
|
* Enable and visualise the marker.
|
|
1186
1186
|
*/ /**
|