diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/index.html b/3MF_test/Web3D-Vue/Web3D_viewer/index.html index 2aea3b9..5efdbf8 100644 --- a/3MF_test/Web3D-Vue/Web3D_viewer/index.html +++ b/3MF_test/Web3D-Vue/Web3D_viewer/index.html @@ -21,11 +21,13 @@ let options ={ _dimX : X, _dimY: Y, - _fileName: "ProjectSlice.3mf", + _fileName: "Ex3.3dm", _showLimitedGrid: true, _isOrtographic: true, _modelsDir: "./src/test3/", - _fileType: '3MF' + _fileType: '3DM', + // _showFrame: true, + // _showGrid: true } console.log(options._modelsDir + options._fileName) @@ -64,6 +66,12 @@ WGL.setCameraType(); } + + document.getElementById('ck_print').onclick = function(){ + var val = document.getElementById('ck_print').checked; + WGL.showPrintDirection(val); + } + diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/package-lock.json b/3MF_test/Web3D-Vue/Web3D_viewer/package-lock.json index d1f8422..45f3707 100644 --- a/3MF_test/Web3D-Vue/Web3D_viewer/package-lock.json +++ b/3MF_test/Web3D-Vue/Web3D_viewer/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "vue": "^2.5.11", - "webgl-visualizer": "^1.2.231019-beta.1237" + "webgl-visualizer": "^1.2.231019-beta.1506" }, "devDependencies": { "babel-core": "^6.26.0", @@ -9296,9 +9296,9 @@ } }, "node_modules/webgl-visualizer": { - "version": "1.2.231019-beta.1237", - "resolved": "https://nexus.steamware.net/repository/npm-group/webgl-visualizer/-/webgl-visualizer-1.2.231019-beta.1237.tgz", - "integrity": "sha512-qjV1loIAgopaMfMr5QHuRH7mIiyHBI3obygjsKiG8CFqGwGETobhUVlEQ6GlgDuZyRTZWrKRVY4Clr7/XW5Y/A==", + "version": "1.2.231019-beta.1506", + "resolved": "https://nexus.steamware.net/repository/npm-group/webgl-visualizer/-/webgl-visualizer-1.2.231019-beta.1506.tgz", + "integrity": "sha512-iIe/E75g6IVmBSLDwSW0qVLVo890SH7U04dqFENds4dzC4ULIbhQ/GjGhW0mhjA9HrvBAgSOfPArVrRGzf7Rzw==", "license": "ISC" }, "node_modules/webpack": { diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/package.json b/3MF_test/Web3D-Vue/Web3D_viewer/package.json index 9ea81c8..419c386 100644 --- a/3MF_test/Web3D-Vue/Web3D_viewer/package.json +++ b/3MF_test/Web3D-Vue/Web3D_viewer/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "vue": "^2.5.11", - "webgl-visualizer": "^1.2.231019-beta.1237" + "webgl-visualizer": "^1.2.231019-beta.1506" }, "browserslist": [ "> 1%", diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/src/App.vue b/3MF_test/Web3D-Vue/Web3D_viewer/src/App.vue index 803a49a..a58ae63 100644 --- a/3MF_test/Web3D-Vue/Web3D_viewer/src/App.vue +++ b/3MF_test/Web3D-Vue/Web3D_viewer/src/App.vue @@ -13,6 +13,7 @@ +
diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/E1.3dm b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/E1.3dm new file mode 100644 index 0000000..4e67b63 Binary files /dev/null and b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/E1.3dm differ diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/E45.3dm b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/E45.3dm new file mode 100644 index 0000000..a1d03aa Binary files /dev/null and b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/E45.3dm differ diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex1.3mf b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex1.3mf new file mode 100644 index 0000000..323cd1c Binary files /dev/null and b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex1.3mf differ diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex3.3dm b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex3.3dm new file mode 100644 index 0000000..a22848a Binary files /dev/null and b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex3.3dm differ diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex4.3dm b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex4.3dm new file mode 100644 index 0000000..339be6e Binary files /dev/null and b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex4.3dm differ diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex5.3dm b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex5.3dm new file mode 100644 index 0000000..34ee6db Binary files /dev/null and b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex5.3dm differ diff --git a/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex6.3dm b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex6.3dm new file mode 100644 index 0000000..1722020 Binary files /dev/null and b/3MF_test/Web3D-Vue/Web3D_viewer/src/test3/Ex6.3dm differ diff --git a/WebGl/draw/webgl_drawVue.js b/WebGl/draw/webgl_drawVue.js index 6ca3c31..4ba3ba2 100644 --- a/WebGl/draw/webgl_drawVue.js +++ b/WebGl/draw/webgl_drawVue.js @@ -12,7 +12,7 @@ var m_divStartDimY = 400; var fName = "Cubo.3mf"; //var fileType = "3MF"; -var fileType = '3MF'; +var fileType = '3DM'; var m_nApproxIndex = 5; @@ -55,18 +55,13 @@ var layer_list = []; const GLBox3D = new THREE.Box3(); // Box3D globale delle geometrie //init(); class webgl_original { - async initcall({ _dimX, _dimY, _fileName, _showInfiniteGrid, _fileType, _modelsDir, _approxIndex, _showFrame, _frameLen, _frameFat, _frameType}) { + async initcall({ _dimX, _dimY, _fileName, _showInfiniteGrid, _fileType, _modelsDir}) { m_divStartDimX = _dimX; m_divStartDimY = _dimY; fName = _fileName; m_bInfGrid = _showInfiniteGrid; modelsDir = _modelsDir; fileType = _fileType; - m_nApproxIndex = _approxIndex; - m_bShowFrame = _showFrame; - m_lFrameLen = _frameLen; - m_dFrameFat = _frameFat; - m_bFrameType = _frameType; //console.log(fName) setLoaders(); if(fileType.toUpperCase() == '3MF') @@ -106,7 +101,11 @@ export { webgl_original } function setLoaders() { // - const mother = document.getElementById('WebGL-Export'); + let mother = document.getElementById('WebGL-Export'); + if(fileType.toUpperCase() == '3DM') + { + mother = document.getElementById('WebGL-Export') + } const spinContainer = document.createElement('div'); const sliderInput = document.createElement('input'); @@ -192,7 +191,7 @@ function setLoaders() { cDiv[i].style.backgroundSize = 'contain'; // cDiv[i].style.backgroundColor = '#000'; - // cDiv[i].style.backgroundImage = 'url(../node_modules/webgl-visualizer/styles/LogoClassic_NoText.png)' + cDiv[i].style.backgroundImage = 'url(../node_modules/webgl-visualizer/styles/LogoClassic_NoText.png)' } } @@ -213,10 +212,10 @@ function setLoaders() { function init3mf() { const manager = new THREE.LoadingManager(); const loader = new ThreeMFLoader(manager); - let startTime = performance.now(); + let startTime = performance.now(); return new Promise(() => { setTimeout(() => { - loader.load(modelsDir + fName, function (object) { + /*loader.load(modelsDir + fName, function (object) { object.rotation.set(-Math.PI / 2, 0, 0); object.traverse(function (child) { child.castShadow = true; @@ -232,7 +231,19 @@ function init3mf() { let endTime = performance.now(); let timeElapsed = endTime - startTime; console.log('init3mf in : ' + timeElapsed) - }); + });*/ + loader.load( modelsDir + fName, function ( object) { + object.rotation.set( -Math.PI / 2, 0, 0) ; + console.log( object) ; + for ( var i = 0 ; i < object.children.length ; ++ i) { + var child = object.children[i] ; + child.rotation.set( -Math.PI/2, 0 ,0) ; + layer_list.push( child) ; + } + // Adapting Scene to contest + AdaptSeceneToContest() ; + console.log( new Date()) ; + }) ; }, 0); }); @@ -356,18 +367,12 @@ function init3dm(){ var Zact ; var vtCoord = new THREE.Vector4( points_array[v], points_array[v+1], points_array[v+2], 1) ; vtCoord.applyMatrix4( Mat_GlobToLoc) ; - //if ( v != 0 && v < points_array.length - 3 && - // (( vtCoord.x - ptPrec.x) * ( vtCoord.x - ptPrec.x) + - // ( vtCoord.y - ptPrec.y) * ( vtCoord.y - ptPrec.y) + - // ( vtCoord.z - ptPrec.z) * ( vtCoord.z - ptPrec.z)) < 10) - // continue ; if ( v == 0) { shape.moveTo( vtCoord.x, vtCoord.y) ; Zact = vtCoord.z ; } else shape.lineTo( vtCoord.x, vtCoord.y) ; - //ptPrec = new THREE.Vector4( vtCoord.x, vtCoord.y, vtCoord.z, 1) ; } var cCol = child.material.color.clone() ; if ( nLayer%2 == 0) { @@ -455,15 +460,35 @@ function AdaptSeceneToContest() { scene.background = new THREE.Color( 0xa0a0a0) ; // Global Box ---------- - for ( var i = 0 ; i < layer_list.length ; ++ i) { - const Objbox = new THREE.Box3().setFromObject( layer_list[i]); + if(fileType == "3DM"){ + + for ( var i = 0 ; i < layer_list.length ; ++ i) { + const Objbox = new THREE.Box3().setFromObject( layer_list[i]); GLBox3D.union( Objbox) ; layer_list[i].material.side = THREE.DoubleSide ; layer_list[i].castShadow = true if ( ! layer_list[i].isArrow || m_bShowPrintDir) - scene.add( layer_list[i]) ; + scene.add( layer_list[i]) ; } - const BoxHelper = new THREE.Box3Helper( GLBox3D, 0xffff00 ) ; + } + else if(fileType == "3MF"){ + for ( var i = 0 ; i < layer_list.length ; ++ i) { + if ( layer_list[i].children[0].type == 'Mesh') { + const Objbox = new THREE.Box3().setFromObject( layer_list[i]); + GLBox3D.union( Objbox) ; + layer_list[i].children[0].material.side = THREE.DoubleSide ; + if ( typeof layer_list[i].children[0].nLayer !== "undefined") { + if ( parseInt( layer_list[i].children[0].nLayer)%2 == 0) + layer_list[i].children[0].material.color.lerp( new THREE.Color( 0x000000 ), 0.25) ; + layer_list[i].children[0].isArrow = ( layer_list[i].children[0].name == 'Arrow') + scene.add( layer_list[i]) ; + } + } + else if ( layer_list[i].type == 'Vector3') + ORIG = layer_list[i].children[0].clone() ; + } + } + // const BoxHelper = new THREE.Box3Helper( GLBox3D, 0xffff00 ) ; const vtCenter = new THREE.Vector3( 0, 0, 0) ; GLBox3D.getCenter( vtCenter) ; const vtPosition = vtCenter.clone().multiplyScalar( 5) ; @@ -528,16 +553,41 @@ function AdaptSeceneToContest() { controls.update() ; // Orig conversion ----- - const points_array = [ new THREE.Vector3( ORIG.x, ORIG.y, ORIG.z)] ; - var ORIG_Geometry = new THREE.BufferGeometry() ; + if(fileType == "3DM"){ + + const points_array = [ new THREE.Vector3( 0, 0, 0)] ; + var ORIG_Geometry = new THREE.BufferGeometry() ; ORIG_Geometry.setFromPoints( points_array) ; - var ORIG_Material = new THREE.PointsMaterial({ size: 5, sizeAttenuation : true, color : new THREE.Color( 0x000000)}) ; + var ORIG_Material = new THREE.PointsMaterial({ size: 5, sizeAttenuation : true, color : new THREE.Color( 0x000000)}); var ptORIG = new THREE.Points( ORIG_Geometry, ORIG_Material) ; ptORIG.position.x = ORIG.x ; - ptORIG.position.y = ORIG.y ; - ptORIG.position.z = ORIG.z ; + ptORIG.position.y = ORIG.z ; + ptORIG.position.z = - ORIG.y ; + + } + else if(fileType == "3MF"){ + + const points_array = [ new THREE.Vector3( 0, 0, 0)] ; + var ORIG_Geometry = new THREE.BufferGeometry() ; + ORIG_Geometry.setFromPoints( points_array) ; + var ORIG_Material = new THREE.PointsMaterial({ size: 5, sizeAttenuation : true, color : new THREE.Color( 0x000000)}); + var ptORIG = new THREE.Points( ORIG_Geometry, ORIG_Material) ; + ptORIG.position.x = ORIG.x ; + ptORIG.position.y = ORIG.z ; + ptORIG.position.z = - ORIG.y ; + + // SetOrig(ptORIG); + } + // Frame + AddFrame( ptORIG) ; + // Grid + AddGrid( ptORIG) ; + + // render + render() ; + // inputs -------------- setCameraZoom( m_bZoom) ; setCameraPan( m_bPan) ; @@ -554,18 +604,12 @@ function AdaptSeceneToContest() { // }) ; // document.getElementById( 'ck_dir').addEventListener( 'change', function( e) { // ManageSceneElements( e) ; - // }) - - // Frame - AddFrame( ptORIG) ; - - // Grid - AddGrid( ptORIG) ; - - // render - render() ; + // }) + +} +function render() { + renderer.render( scene, activeCamera) ; } - function SetOrig( ORIG) { // qui in qualche modo imposto l'origine, ora impostata secondo il BozHelper // ---- codice da cambiare @@ -577,12 +621,6 @@ function SetOrig( ORIG) { // ----------------------- //scene.add( ORIG) ; } - -function render() { - renderer.render( scene, activeCamera) ; - stats.update() ; -} - function setCameraZoom( bZoom) { controls.enableZoom = bZoom ; }