EgtExchange :

- modifica selezione qrcode e gestione delle mesh
- aggiunta comandi da tastiera.
This commit is contained in:
Riccardo Elitropi
2022-10-12 14:24:10 +02:00
parent 30785bb31f
commit 09bdbe99d6
2 changed files with 462 additions and 217 deletions
+460 -217
View File
@@ -144,6 +144,8 @@ ExportThreeJS::HeadAmbient( IEGrScene* pScene, IGeomDB* pGDB, int nId)
Vector3d vtDirCamera = FromSpherical( 1, dAngVertDeg, dAngOrizzDeg) ;
m_ptCamera = m_ptCenter + dDist * vtDirCamera ;
m_dDistance = dDist ;
m_dCameraPhi = dAngVertDeg;
m_dCameraTheta = dAngOrizzDeg;
// prelevo i parametri della griglia
double dSnapStep ;
@@ -205,7 +207,7 @@ ExportThreeJS::HeadAmbient( IEGrScene* pScene, IGeomDB* pGDB, int nId)
m_Writer.OutText( " </div>") ;
m_Writer.OutText( " <div class = 'row m-0 p-0'>") ;
m_Writer.OutText( " <div class = 'col-12 my-auto align-self-center'>") ;
m_Writer.OutText( " <div class = 'text-white justify-content-center text-center'> <i>'A new way to create between hardare and software'</i></div>") ;
m_Writer.OutText( " <div class = 'text-white justify-content-center text-center'> <i>'A new way to create between hardware and software'</i></div>") ;
m_Writer.OutText( " </div>") ;
m_Writer.OutText( " </div>");
m_Writer.OutText( " </div>") ;
@@ -291,13 +293,22 @@ ExportThreeJS::HeadAmbient( IEGrScene* pScene, IGeomDB* pGDB, int nId)
// --- Menu a destra con i controlli
m_Writer.OutText( " <div class = 'controlMenu' style = 'visibility: hidden;'>") ;
m_Writer.OutText( " <div class = 'row div_int justify-content-center m-0 p-0 mt-1 small text-white text-bold border-0'>Info</div>") ;
m_Writer.OutText( " <div class = 'row m-0 m-0 p-0 justify-content-center'>") ;
m_Writer.OutText( " <button type = 'button' class = 'col-4 mx-1 p-0 btn_controls' id = 'BTINFO' data-bs-toggle = 'tooltip' data-bs-placement = 'bottom' title = 'Informations'>") ;
m_Writer.OutText( " <i class = 'fa-solid fa-question'></i>") ;
//m_Writer.OutText( " <div class = 'row div_int justify-content-center m-0 p-0 mt-1 small text-white text-bold border-0'>Info</div>") ;
//m_Writer.OutText( " <div class = 'row m-0 m-0 p-0 justify-content-center'>") ;
//m_Writer.OutText( " <button type = 'button' class = 'col-4 mx-1 p-0 btn_controls' id = 'BTINFO' data-bs-toggle = 'tooltip' data-bs-placement = 'bottom' title = 'Informations'>") ;
//m_Writer.OutText( " <i class = 'fa-solid fa-question'></i>") ;
//m_Writer.OutText( " </button>") ;
//m_Writer.OutText( " </div>") ;
m_Writer.OutText( " <div class = 'row div_int justify-content-center m-0 p-0 mt-1 small text-white text-bold border-0'>View</div>") ;
m_Writer.OutText( " <div class = 'row m-0 m-0 p-0 justify-content-center'>") ;
m_Writer.OutText( " <button type = 'button' class = 'col-4 mx-1 p-0 btn_controls' id = 'BTORTHO' data-bs-toggle = 'tooltip' data-bs-placement = 'bottom' title = 'Orthographic view'>") ;
m_Writer.OutText( " <i class = 'fa-solid fa-grip-lines-vertical'></i>") ;
m_Writer.OutText( " </button>") ;
m_Writer.OutText( " <button type = 'button' class = 'col-4 mx-1 p-0 btn_controls' id = 'BTPERS' data-bs-toggle = 'tooltip' data-bs-placement = 'bottom' title = 'Perspective view'>") ;
m_Writer.OutText( " <i class = 'fa-solid fa-lines-leaning'></i>") ;
m_Writer.OutText( " </button>") ;
m_Writer.OutText( " </div>") ;
m_Writer.OutText( " <div class = 'row div_int justify-content-center m-0 p-0 mt-2 small text-white text-bold'>Camera</div>") ;
m_Writer.OutText( " <div class = 'row div_int justify-content-center m-0 p-0 mt-2 small text-white text-bold'>Camera</div>") ; // togliere border-0
m_Writer.OutText( " <div class = 'row m-0 m-0 p-0 justify-content-center'>") ;
m_Writer.OutText( " <button type = 'button' class = 'col-4 ml-1 p-0 btn_controls' id = 'BTRESET' data-bs-toggle = 'tooltip' data-bs-placement = 'bottom' title = 'Reset the camera'>") ;
m_Writer.OutText( " <i class = 'fa-solid fa-camera'></i>") ;
@@ -394,8 +405,20 @@ ExportThreeJS::HeadAmbient( IEGrScene* pScene, IGeomDB* pGDB, int nId)
m_Writer.OutText( " var dx = 0; var dy = 0; var dz = 0;") ; // lunghezza lungo x/y/z
m_Writer.OutText( " var GLOB_DIST = false;") ; // se il comando attuale consente di calcolare la distanza lineare tra due punti
m_Writer.OutText( " var GLOB_BOX = false;") ; // se il comando attuale consente di visualizzare il boc 3D del pezzo selezionato
m_Writer.OutText( " var markerA = new THREE.Mesh(new THREE.SphereGeometry(5, 100, 100), new THREE.MeshPhongMaterial({ color: 0xff0000, emissive : 0xff0000, emissiveIntensity : 1.25 }));") ; // Marker A
m_Writer.OutText( " var markerB = new THREE.Mesh(new THREE.SphereGeometry(5, 100, 100), new THREE.MeshPhongMaterial({ color: 0xff0000, emissive : 0xff0000, emissiveIntensity : 1.25 }));") ; // Marker B
//m_Writer.OutText( " var markerA = new THREE.Mesh(new THREE.SphereGeometry(0.5, 100, 100), new THREE.MeshPhongMaterial({ color: 0xff0000, emissive : 0xff0000, emissiveIntensity : 1.25 }));") ; // Marker A
//m_Writer.OutText( " var markerB = new THREE.Mesh(new THREE.SphereGeometry(0.5, 100, 100), new THREE.MeshPhongMaterial({ color: 0xff0000, emissive : 0xff0000, emissiveIntensity : 1.25 }));") ; // Marker B
m_Writer.OutText( " var dotMGeometry = new THREE.Geometry();") ;
m_Writer.OutText( " dotMGeometry.vertices.push(new THREE.Vector3(0, 0, 0));") ;
m_Writer.OutText( " var dotMMaterial = new THREE.PointsMaterial({ size: 5, sizeAttenuation : false, color : new THREE.Color(0xff0000) });") ;
m_Writer.OutText( " var markerA = new THREE.Points(dotMGeometry, dotMMaterial);") ;
m_Writer.OutText( " var markerB = new THREE.Points(dotMGeometry, dotMMaterial);") ;
m_Writer.OutText( " var markers = [markerA, markerB];") ;
m_Writer.OutText( " var markers = [markerA, markerB];") ; // vettore contenente i Markers
m_Writer.OutText( " var LineMarker = null;") ; // linea tra i due Markers
m_Writer.OutText( " var isMarkAinScene = false;") ; // T/F -> se il MarkerA è nella scena
@@ -420,7 +443,9 @@ ExportThreeJS::HeadAmbient( IEGrScene* pScene, IGeomDB* pGDB, int nId)
m_Writer.OutText( " var SelectedCurrG = null;") ; // gruppo selezionato
m_Writer.OutText( " var SelectedObject_id = 'none';") ; // id del gruppo selezionato
m_Writer.OutText( " var bSel = false;") ; // T/F -> se nella ricerca dei gruppi ho trovato un gruppo
m_Writer.OutText( " var entrato = false;"); // T/F -> per controllare se ho trovato un gruppo padre o no
m_Writer.OutText( " var entrato = false;") ; // T/F -> per controllare se ho trovato un gruppo padre o no
m_Writer.OutText( " var CameraView = 1;") ;
m_Writer.OutText( " var face_list = [];") ;
// funzione init() -> funzione principale che viene richiamata per la creazione della scena e dei suoi oggetti
@@ -428,7 +453,12 @@ ExportThreeJS::HeadAmbient( IEGrScene* pScene, IGeomDB* pGDB, int nId)
// codice per scena, telecamera e render
m_Writer.OutText( " scene = new THREE.Scene();") ;
// imposto telecamera ortografica (posizione, punto di focus, posizione piani di clipping e definizione della zona di viewing frustum
m_Writer.OutText( " camera = new THREE.OrthographicCamera(" + ToString( -m_dHalfWidth) + ", " + ToString( m_dHalfWidth) + ", " + ToString( m_dHalfHeight) + ", " + ToString( -m_dHalfHeight) + "," + ToString( m_ZNear) + ", " + ToString( m_ZFar) + ");") ;
m_Writer.OutText( " if(CameraView == 0){") ;
m_Writer.OutText( " camera = new THREE.OrthographicCamera(" + ToString( -m_dHalfWidth) + ", " + ToString( m_dHalfWidth) + ", " + ToString( m_dHalfHeight) + ", " + ToString( -m_dHalfHeight) + "," + ToString( m_ZNear) + ", " + ToString( m_ZFar) + ");") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " else {") ;
m_Writer.OutText( " camera = new THREE.PerspectiveCamera(45, window.screen.availWidth / window.screen.availHeight, 1, " + ToString(m_ZFar) + " * 75);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " camera.position.x = " + ToString( m_ptCamera.y) + "; camera.position.y = " + ToString( m_ptCamera.z) + "; camera.position.z = " + ToString( m_ptCamera.x) + "; ") ;
m_Writer.OutText( " var dist = camera.position.distanceTo(new THREE.Vector3(0,0,0));") ; // per Gizmo
m_Writer.OutText( " camera.lookAt(new THREE.Vector3(" + ToString( m_ptCenter.y) + ", " + ToString( m_ptCenter.z) + ", " + ToString( m_ptCenter.x) + "));") ;
@@ -521,6 +551,32 @@ ExportThreeJS::HeadAmbient( IEGrScene* pScene, IGeomDB* pGDB, int nId)
m_Writer.OutText( " orbitControls = new OrbitControls(camera, renderer.domElement);") ;
m_Writer.OutText( " orbitControls.autoRotate = true;") ;
m_Writer.OutText( " orbitControls.target = new THREE.Vector3(" + ToString(m_ptCenter.y) + ", " + ToString(m_ptCenter.z) + ", " + ToString(m_ptCenter.x) + ");") ;
//m_Writer.OutText(" orbitControls.rotateUp(0);");
//m_Writer.OutText(" orbitControls.rotateLeft(0);");
/*
if (m_dCameraPhi == 0 || (m_ptCamera.x != m_ptCenter.x && m_ptCamera.y != m_ptCenter.y)) { // se vUP = (+ 1, 0 0) => gestire rotazione della scena
//m_ptCenter.x == m_ptCamera.x && m_ptCenter.y == m_ptCamera.y
//m_Writer.OutText(" orbitControls.rotateLeft(Math.PI/4)") ;
if (m_dCameraTheta >= 180 && m_dCameraTheta <= 360) {
m_Writer.OutText(" orbitControls.rotateLeft((-" + ToString(m_dCameraTheta) + " + 360) * Math.PI/180);");
}
else {
m_Writer.OutText(" orbitControls.rotateLeft((-" + ToString(m_dCameraTheta) + ") * Math.PI/180);");
}
}
if (m_dCameraPhi == 180 || (m_ptCamera.x != m_ptCenter.x && m_ptCamera.y != m_ptCenter.y)) {
if (m_dCameraTheta >= 180 && m_dCameraTheta <= 360) {
m_Writer.OutText(" orbitControls.rotateLeft((-" + ToString(m_dCameraTheta) + " + 360) * Math.PI/180);");
}
else {
m_Writer.OutText(" orbitControls.rotateLeft((-" + ToString(m_dCameraTheta) + ") * Math.PI/180);");
}
}
*/
//m_Writer.OutText( " var controlsGizmo = new OrbitControlsGizmo(orbitControls, {size: 100, padding : 8, distance: dist});") ;
m_Writer.OutText( " var planeGeometry = new THREE.PlaneGeometry(ListPZ[ListPZ.length-1].z - ListPZ[0].z, ListPZ[ListPZ.length-1].z - ListPZ[0].z, 1, 1);") ;
m_Writer.OutText( " var planeMaterial = new THREE.MeshLambertMaterial({ color: 0xFDFEFE, transparent : true, opacity : 0.15 });") ;
@@ -577,12 +633,16 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " var box;") ;
m_Writer.OutText( " controls = {") ;
m_Writer.OutText( " element: null,") ;
m_Writer.OutText( " motion : false,") ; // per la rotation
m_Writer.OutText( " motion : true,") ; // per la rotation
m_Writer.OutText( " origin: function(){ orbitControls.target = new THREE.Vector3(0,0,0);},");
m_Writer.OutText( " tar : orbitControls.target,") ; // il target della telecamera
m_Writer.OutText( " reset : function() {") ; // per resettare la telecamera alla condizioni iniziali
//m_Writer.OutText( " zoom = 1;") ;
m_Writer.OutText( " camera = new THREE.OrthographicCamera(" + ToString( -m_dHalfWidth) + ", " + ToString( m_dHalfWidth) + ", " + ToString( m_dHalfHeight) + ", " + ToString( -m_dHalfHeight) + "," + ToString( m_ZNear) + ", " + ToString( m_ZFar) + ");") ;
m_Writer.OutText( " if(CameraView == 0){") ;
m_Writer.OutText( " camera = new THREE.OrthographicCamera(" + ToString( -m_dHalfWidth) + ", " + ToString( m_dHalfWidth) + ", " + ToString( m_dHalfHeight) + ", " + ToString( -m_dHalfHeight) + "," + ToString( m_ZNear) + ", " + ToString( m_ZFar) + ");") ;
m_Writer.OutText( " }else {") ;
m_Writer.OutText( " camera = new THREE.PerspectiveCamera(45, window.screen.availWidth / window.screen.availHeight, 1, " + ToString(m_ZFar) + " * 75);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " camera.position.x = " + ToString( m_ptCamera.y) + ";") ;
m_Writer.OutText( " camera.position.y = " + ToString( m_ptCamera.z) + ";") ;
m_Writer.OutText( " camera.position.z = " + ToString( m_ptCamera.x) + ";") ;
@@ -597,6 +657,28 @@ ExportThreeJS::FinishAmbient()
//m_Writer.OutText( " $('.obit-controls-gizmo').bind('touchstart', false);") ;
//m_Writer.OutText( " $('.obit-controls-gizmo').bind('touchend', false);") ;
//m_Writer.OutText( " $('.obit-controls-gizmo').bind('touchcancel', false);") ;
/*
if (m_dCameraPhi == 0 || (m_ptCamera.x != m_ptCenter.x && m_ptCamera.y != m_ptCenter.y)) { // se vUP = (+ 1, 0 0) => gestire rotazione della scena
//m_ptCenter.x == m_ptCamera.x && m_ptCenter.y == m_ptCamera.y
//m_Writer.OutText(" orbitControls.rotateLeft(Math.PI/4)") ;
if (m_dCameraTheta >= 180 && m_dCameraTheta <= 360) {
m_Writer.OutText(" orbitControls.rotateLeft((-" + ToString(m_dCameraTheta) + " + 360) * Math.PI/180);");
}
else {
m_Writer.OutText(" orbitControls.rotateLeft((-" + ToString(m_dCameraTheta) + ") * Math.PI/180);");
}
}
if (m_dCameraPhi == 180 || (m_ptCamera.x != m_ptCenter.x && m_ptCamera.y != m_ptCenter.y)) {
if (m_dCameraTheta >= 180 && m_dCameraTheta <= 360) {
m_Writer.OutText(" orbitControls.rotateLeft((-" + ToString(m_dCameraTheta) + " + 360) * Math.PI/180);");
}
else {
m_Writer.OutText(" orbitControls.rotateLeft((-" + ToString(m_dCameraTheta) + ") * Math.PI/180);");
}
}
*/
m_Writer.OutText( " if (boxCreated) {") ;
m_Writer.OutText( " box = new THREE.BoxHelper(controls.element, 0xff0000);") ;
m_Writer.OutText( " camera.position.y = Math.abs(" + ToString( m_ptMin.y + ( m_dimZ * 1.15)) + ");") ; //115% in valore assoluto
@@ -619,7 +701,7 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " const element = urlParams.get('id')") ;
m_Writer.OutText( " if (!booked) {") ;
//m_Writer.OutText( " booked = true;") ;
m_Writer.OutText( " findGroupByNameAndId(groupRoot, element, 0);") ;
m_Writer.OutText( " findGroupByNameAndId(groupRoot, element, 1);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " if (controls.element == null) {") ;
//m_Writer.OutText( " booked = false;") ;
@@ -635,31 +717,37 @@ ExportThreeJS::FinishAmbient()
//m_Writer.OutText( " guiBox.add(controls, 'bBox').name('Enable Box');") ;
// creazione della Scena per il cubetto
m_Writer.OutText( " const cubeRenderer = new THREE.WebGLRenderer({ antialias: true, alpha : true, transparent : true });") ;
m_Writer.OutText( " var cubeRenderer = new THREE.WebGLRenderer({ antialias: true, alpha : true, transparent : true });") ;
m_Writer.OutText( " cubeRenderer.setSize(150, 150);") ;
m_Writer.OutText( " cubeRenderer.setPixelRatio(window.devicePixelRatio);") ;
m_Writer.OutText( " document.querySelector('.Contcube').appendChild(cubeRenderer.domElement);") ;
m_Writer.OutText( " const cubeScene = new THREE.Scene();") ;
m_Writer.OutText( " const cubeCamera = new THREE.PerspectiveCamera(50, 1, 0.1, 1000);") ;
m_Writer.OutText( " var cubeScene = new THREE.Scene();") ;
m_Writer.OutText( " var cubeCamera;") ;
m_Writer.OutText( " if (CameraView == 0) {") ;
m_Writer.OutText( " cubeCamera = new THREE.OrthographicCamera(-150 / 5, 150 / 5, 150 / 5, -150 / 5, 1, 1000);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " else {") ;
m_Writer.OutText( " cubeCamera = new THREE.PerspectiveCamera(50, 1, 0.1, 1000);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " cubeCamera.position.set(0, 0, 70);") ;
m_Writer.OutText( " cubeCamera.lookAt(0, 0, 0);") ;
m_Writer.OutText( " const viewCube = new ViewCubeControls(cubeCamera, undefined, undefined, cubeRenderer.domElement, orbitControls);") ;
m_Writer.OutText( " var viewCube = new ViewCubeControls(cubeCamera, undefined, undefined, cubeRenderer.domElement, orbitControls);") ;
m_Writer.OutText( " cubeScene.add(viewCube.getObject());") ;
// richiamo dell'evento "change-angle" del cubetto
m_Writer.OutText( " var Cposition = null;") ;
m_Writer.OutText( " var Ctarget = null;") ;
m_Writer.OutText( " var anim1 = 0;") ;
m_Writer.OutText( " var distance = 0;") ;
m_Writer.OutText( " var distanceC = 0;") ;
m_Writer.OutText( " viewCube.addEventListener('angle-change', ({ quaternion, t }) => {") ;
m_Writer.OutText( " getVersor(viewCube._name_click);") ;
m_Writer.OutText( " if (viewCube._blockRot) {") ;
m_Writer.OutText( " if (anim1 == 0) {") ;
m_Writer.OutText( " distance = camera.position.distanceTo(new THREE.Vector3(0, 0, 0)); //d0") ;
m_Writer.OutText( " distanceC = camera.position.distanceTo(new THREE.Vector3(0, 0, 0)); //d0") ;
m_Writer.OutText( " orbitControls.target = new THREE.Vector3(0, 0, 0);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " anim1++;") ;
m_Writer.OutText( " camera.position.lerp(Cvers.multiplyScalar(distance), t);") ;
m_Writer.OutText( " camera.position.lerp(Cvers.multiplyScalar(distanceC), t);") ;
m_Writer.OutText( " orbitControls.update();") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " });") ;
@@ -780,174 +868,177 @@ ExportThreeJS::FinishAmbient()
// colori delle parti del cubo
m_Writer.OutText( " var blue = 0x0275d8; var red = 0xd9534f; var green = 0x5cb85c;");
m_Writer.OutText( " viewCube._cube.children[0].children[0].material.color = new THREE.Color(red);//faces // front -> X") ;
m_Writer.OutText( " viewCube._cube.children[0].children[1].material.color = new THREE.Color(green); // right -> Y") ;
m_Writer.OutText( " viewCube._cube.children[0].children[2].material.color = new THREE.Color(red); // back -> -X") ;
m_Writer.OutText( " viewCube._cube.children[0].children[3].material.color = new THREE.Color(green); // left -> -Y") ;
m_Writer.OutText( " viewCube._cube.children[0].children[4].material.color = new THREE.Color(blue); // top -> Z") ;
m_Writer.OutText( " viewCube._cube.children[0].children[5].material.color = new THREE.Color(blue); // bottom -> -Z") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[0].material.color = new THREE.Color(red); //top-corners") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[2].material.color = new THREE.Color(blue); //back-corners") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[0].children[0].material.color = new THREE.Color(red);//top-edges") ;
m_Writer.OutText( " viewCube._cube.children[3].children[0].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[1].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[2].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[3].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[0].children[0].material.color = new THREE.Color(red);//bottom-edges") ;
m_Writer.OutText( " viewCube._cube.children[4].children[0].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[1].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[2].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[3].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[0].children[0].material.color = new THREE.Color(red);//lateral-edges") ;
m_Writer.OutText( " viewCube._cube.children[5].children[0].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[1].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[2].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[3].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " // OLD-COLORS =======================================================================================") ;
m_Writer.OutText( " viewCube._cube.children[0].children[0].material.oldColor = new THREE.Color(red); // front -> X") ;
m_Writer.OutText( " viewCube._cube.children[0].children[1].material.oldColor = new THREE.Color(green); // right -> Y") ;
m_Writer.OutText( " viewCube._cube.children[0].children[2].material.oldColor = new THREE.Color(red); // back -> -X") ;
m_Writer.OutText( " viewCube._cube.children[0].children[3].material.oldColor = new THREE.Color(green); // left -> -Y") ;
m_Writer.OutText( " viewCube._cube.children[0].children[4].material.oldColor = new THREE.Color(blue); // top -> Z") ;
m_Writer.OutText( " viewCube._cube.children[0].children[5].material.oldColor = new THREE.Color(blue); // bottom -> -Z") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[0].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[1].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[2].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[3].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[0].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[1].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[2].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[3].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[0].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[1].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[2].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[3].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " ColoraCubo(viewCube);") ;
m_Writer.OutText( " function ColoraCubo(viewCube) {") ;
m_Writer.OutText( " var blue = 0x0275d8; var red = 0xd9534f; var green = 0x5cb85c;");
m_Writer.OutText( " viewCube._cube.children[0].children[0].material.color = new THREE.Color(red);//faces // front -> X") ;
m_Writer.OutText( " viewCube._cube.children[0].children[1].material.color = new THREE.Color(green); // right -> Y") ;
m_Writer.OutText( " viewCube._cube.children[0].children[2].material.color = new THREE.Color(red); // back -> -X") ;
m_Writer.OutText( " viewCube._cube.children[0].children[3].material.color = new THREE.Color(green); // left -> -Y") ;
m_Writer.OutText( " viewCube._cube.children[0].children[4].material.color = new THREE.Color(blue); // top -> Z") ;
m_Writer.OutText( " viewCube._cube.children[0].children[5].material.color = new THREE.Color(blue); // bottom -> -Z") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[0].material.color = new THREE.Color(red); //top-corners") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[2].material.color = new THREE.Color(blue); //back-corners") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[2].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[0].children[0].material.color = new THREE.Color(red);//top-edges") ;
m_Writer.OutText( " viewCube._cube.children[3].children[0].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[1].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[2].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[3].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[0].children[0].material.color = new THREE.Color(red);//bottom-edges") ;
m_Writer.OutText( " viewCube._cube.children[4].children[0].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[1].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[2].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[3].children[1].material.color = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[0].children[0].material.color = new THREE.Color(red);//lateral-edges") ;
m_Writer.OutText( " viewCube._cube.children[5].children[0].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[1].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[1].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[2].children[0].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[2].children[1].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[3].children[0].material.color = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[3].children[1].material.color = new THREE.Color(red);") ;
m_Writer.OutText( " // OLD-COLORS =======================================================================================") ;
m_Writer.OutText( " viewCube._cube.children[0].children[0].material.oldColor = new THREE.Color(red); // front -> X") ;
m_Writer.OutText( " viewCube._cube.children[0].children[1].material.oldColor = new THREE.Color(green); // right -> Y") ;
m_Writer.OutText( " viewCube._cube.children[0].children[2].material.oldColor = new THREE.Color(red); // back -> -X") ;
m_Writer.OutText( " viewCube._cube.children[0].children[3].material.oldColor = new THREE.Color(green); // left -> -Y") ;
m_Writer.OutText( " viewCube._cube.children[0].children[4].material.oldColor = new THREE.Color(blue); // top -> Z") ;
m_Writer.OutText( " viewCube._cube.children[0].children[5].material.oldColor = new THREE.Color(blue); // bottom -> -Z") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[0].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[1].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[2].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[1].children[3].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[0].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[1].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[2].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[2].children[3].children[2].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[0].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[1].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[2].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[3].children[3].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[0].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[1].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[2].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[4].children[3].children[1].material.oldColor = new THREE.Color(blue);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[0].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[0].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[1].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[1].children[1].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[2].children[0].material.oldColor = new THREE.Color(red);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[2].children[1].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[3].children[0].material.oldColor = new THREE.Color(green);") ;
m_Writer.OutText( " viewCube._cube.children[5].children[3].children[1].material.oldColor = new THREE.Color(red);") ;
// inserimento facce del cubo in una lista
m_Writer.OutText( " var face_list = [];") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[3]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[4]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[5]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[0].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[1].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[2].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[3].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[3].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[0].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[1].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[2].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[3].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[3].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[3].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[3].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[3].children[1]);") ;
m_Writer.OutText( " face_list = [];") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[3]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[4]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[0].children[5]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[0].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[1].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[2].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[3].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[1].children[3].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[0].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[1].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[2].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[3].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[2].children[3].children[2]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[3].children[3].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[4].children[3].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[0].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[0].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[1].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[1].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[2].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[2].children[1]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[3].children[0]);") ;
m_Writer.OutText( " face_list.push(viewCube._cube.children[5].children[3].children[1]);") ;
m_Writer.OutText( " }");
// --- Gestione degli eventi click dei bottoni
@@ -959,7 +1050,81 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " document.getElementById('btn_Menu').addEventListener('click', function(){") ;
m_Writer.OutText( " document.getElementById('btn_Menu').style.visibility = 'hidden';") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " document.getElementById('BTINFO').addEventListener('click', function(){ window.open('https://iis01.egalware.com/Test3D/Lib/info.txt', '_blank').focus()});") ;
m_Writer.OutText( " document.getElementById('BTORTHO').addEventListener('click', function(){") ;
m_Writer.OutText( " CameraView = 0;") ;
m_Writer.OutText( " camera = new THREE.OrthographicCamera(" + ToString(-m_dHalfWidth) + ", " + ToString(m_dHalfWidth) + ", " + ToString(m_dHalfHeight) + ", " + ToString(-m_dHalfHeight) + "," + ToString(m_ZNear) + ", " + ToString(m_ZFar) + ");") ;
m_Writer.OutText( " camera.position.x = " + ToString(m_ptCamera.y) + "; camera.position.y = " + ToString(m_ptCamera.z) + "; camera.position.z = " + ToString(m_ptCamera.x) + "; ") ;
m_Writer.OutText( " camera.lookAt(new THREE.Vector3(" + ToString(m_ptCenter.y) + ", " + ToString(m_ptCenter.z) + ", " + ToString(m_ptCenter.x) + "));") ;
m_Writer.OutText( " orbitControls = new OrbitControls(camera, renderer.domElement);") ;
m_Writer.OutText( " orbitControls.autoRotate = controls.motion;") ;
m_Writer.OutText( " orbitControls.target = new THREE.Vector3(" + ToString(m_ptCenter.y) + ", " + ToString(m_ptCenter.z) + ", " + ToString(m_ptCenter.x) + ");") ;
m_Writer.OutText( " const item = document.querySelector('.Contcube')") ;
m_Writer.OutText( " while (item.firstChild) {") ;
m_Writer.OutText( " item.removeChild(item.firstChild);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " document.querySelector('.Contcube').appendChild(cubeRenderer.domElement);") ;
m_Writer.OutText( " cubeScene = new THREE.Scene();") ;
m_Writer.OutText( " cubeCamera = new THREE.OrthographicCamera(-150 / 5, 150 / 5, 150 / 5, -150 / 5, 1, 1000);") ;
m_Writer.OutText( " cubeCamera.position.set(0, 0, 70);") ;
m_Writer.OutText( " cubeCamera.lookAt(0, 0, 0);") ;
m_Writer.OutText( " viewCube = new ViewCubeControls(cubeCamera, undefined, undefined, cubeRenderer.domElement, orbitControls);") ;
m_Writer.OutText( " cubeScene.add(viewCube.getObject());") ;
m_Writer.OutText( " Cposition = null;") ;
m_Writer.OutText( " Ctarget = null;") ;
m_Writer.OutText( " anim1 = 0;") ;
m_Writer.OutText( " distanceC = 0;") ;
m_Writer.OutText( " viewCube.addEventListener('angle-change', ({ quaternion, t }) => {") ;
m_Writer.OutText( " getVersor(viewCube._name_click);") ;
m_Writer.OutText( " if (viewCube._blockRot) {") ;
m_Writer.OutText( " if (anim1 == 0) {") ;
m_Writer.OutText( " distanceC = camera.position.distanceTo(new THREE.Vector3(0, 0, 0)); //d0") ;
m_Writer.OutText( " orbitControls.target = new THREE.Vector3(0, 0, 0);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " anim1++;") ;
m_Writer.OutText( " camera.position.lerp(Cvers.multiplyScalar(distanceC), t);") ;
m_Writer.OutText( " orbitControls.update();") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " ColoraCubo(viewCube);") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " document.getElementById('BTPERS').addEventListener('click', function(){") ;
m_Writer.OutText( " CameraView = 1;") ;
m_Writer.OutText( " camera = new THREE.PerspectiveCamera(45, window.screen.availWidth / window.screen.availHeight, 1, " + ToString(m_ZFar) + " * 75);") ;
m_Writer.OutText( " camera.position.x = " + ToString(m_ptCamera.y) + "; camera.position.y = " + ToString(m_ptCamera.z) + "; camera.position.z = " + ToString(m_ptCamera.x) + "; ") ;
m_Writer.OutText( " camera.lookAt(new THREE.Vector3(" + ToString(m_ptCenter.y) + ", " + ToString(m_ptCenter.z) + ", " + ToString(m_ptCenter.x) + "));") ;
m_Writer.OutText( " orbitControls = new OrbitControls(camera, renderer.domElement);") ;
m_Writer.OutText( " orbitControls.autoRotate = controls.motion;") ;
m_Writer.OutText( " orbitControls.target = new THREE.Vector3(" + ToString(m_ptCenter.y) + ", " + ToString(m_ptCenter.z) + ", " + ToString(m_ptCenter.x) + ");") ;
m_Writer.OutText( " const item = document.querySelector('.Contcube')") ;
m_Writer.OutText( " while (item.firstChild) {") ;
m_Writer.OutText( " item.removeChild(item.firstChild);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " document.querySelector('.Contcube').appendChild(cubeRenderer.domElement);") ;
m_Writer.OutText( " cubeScene = new THREE.Scene();") ;
m_Writer.OutText( " cubeCamera = new THREE.PerspectiveCamera(50, 1, 0.1, 1000);") ;
m_Writer.OutText( " cubeCamera.position.set(0, 0, 70);") ;
m_Writer.OutText( " cubeCamera.lookAt(0, 0, 0);") ;
m_Writer.OutText( " viewCube = new ViewCubeControls(cubeCamera, undefined, undefined, cubeRenderer.domElement, orbitControls);") ;
m_Writer.OutText( " cubeScene.add(viewCube.getObject());") ;
m_Writer.OutText( " Cposition = null;") ;
m_Writer.OutText( " Ctarget = null;") ;
m_Writer.OutText( " anim1 = 0;") ;
m_Writer.OutText( " distanceC = 0;") ;
m_Writer.OutText( " viewCube.addEventListener('angle-change', ({ quaternion, t }) => {") ;
m_Writer.OutText( " getVersor(viewCube._name_click);") ;
m_Writer.OutText( " if (viewCube._blockRot) {") ;
m_Writer.OutText( " if (anim1 == 0) {") ;
m_Writer.OutText( " distanceC = camera.position.distanceTo(new THREE.Vector3(0, 0, 0)); //d0") ;
m_Writer.OutText( " orbitControls.target = new THREE.Vector3(0, 0, 0);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " anim1++;") ;
m_Writer.OutText( " camera.position.lerp(Cvers.multiplyScalar(distanceC), t);") ;
m_Writer.OutText( " orbitControls.update();") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " ColoraCubo(viewCube);") ;
m_Writer.OutText( " });") ;
//m_Writer.OutText( " document.getElementById('BTINFO').addEventListener('click', function(){ window.open('https://iis01.egalware.com/Test3D/Lib/info.txt', '_blank').focus()});") ;
m_Writer.OutText( " if (!isMobile && !isTablet) {") ;
m_Writer.OutText( " document.getElementsByClassName('controlMenu')[0].style.overflowY = 'hidden';") ;
m_Writer.OutText( " }") ;
@@ -1016,6 +1181,9 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " document.getElementById('BTCANC').addEventListener('click', function(){") ;
m_Writer.OutText( " GLOB_DIST = false; controls.bBox = false; GLOB_SEL = false; CancelMarkers();") ;
m_Writer.OutText( " })") ;
m_Writer.OutText( " document.getElementById('Fbtn_canc').addEventListener('click', function(){") ;
m_Writer.OutText( " SelezioneXFiera();") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " var index_LSS = [];") ;
m_Writer.OutText( " var udm = 'mm';") ;
@@ -1078,6 +1246,14 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " else {") ;
m_Writer.OutText( " document.getElementById('BTORIG').style.color = '#d9534f';") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " if (CameraView == 0) {") ;
m_Writer.OutText( " document.getElementById('BTORTHO').style.color = '#5cb85c';") ;
m_Writer.OutText( " document.getElementById('BTPERS').style.color = '#d9534f';") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " else {") ;
m_Writer.OutText( " document.getElementById('BTORTHO').style.color = '#d9534f';") ;
m_Writer.OutText( " document.getElementById('BTPERS').style.color = '#5cb85c';") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " if (GLOB_DIST) {") ;
m_Writer.OutText( " GLOB_SEL = false;") ;
m_Writer.OutText( " var Smarkers;") ;
@@ -1200,7 +1376,7 @@ ExportThreeJS::FinishAmbient()
// applico il render al div #WEBGL-output
m_Writer.OutText( " document.getElementById('WebGL-output').appendChild(renderer.domElement);") ;
// imposto l'altezza massima del menu laterale sinistro
m_Writer.OutText( " document.querySelector('#contMenu').style.maxHeight = (window.screen.availHeight - 175) + 'px'; ") ;
m_Writer.OutText( " document.querySelector('#contMenu').style.maxHeight = (window.screen.availHeight - (175 + 36 + 36 + 20)) + 'px'; ") ;
// imposto la lunghezza e l'altezza del canvas al 100% dello schermo
m_Writer.OutText( " document.getElementsByTagName('canvas')[0].style.width = '100vw';") ;
m_Writer.OutText( " document.getElementsByTagName('canvas')[0].style.height = '100vh';") ;
@@ -1260,7 +1436,7 @@ ExportThreeJS::FinishAmbient()
// 2) funzione findGroupByNameAndId
// - obj: trova il gruppo dato il suo id
// - par: gruppo da cui iniziare la ricerca, id, n = (0 o 1) | 0 -> id selezionato da URL e 1 -> id selezionato da MENU LATERALE
// - par: gruppo da cui iniziare la ricerca, id, n = (0, 1, 2, 3) | 0 -> id selezionato da URL | 1 -> id selezionato da MENU LATERALE | 3 -> selezionato da lampadina | 4 -> selezionato da barra ricerca per fiera
m_Writer.OutText( " function findGroupByNameAndId(CurrentGroup, Id, n) {") ;
m_Writer.OutText( " CurrentGroup.children.forEach(element => {") ;
m_Writer.OutText( " if (element.name == Id && element.children.length != 0) {") ;
@@ -1277,7 +1453,12 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " }") ;
m_Writer.OutText( " if(n != 3 && $('#lb_' + Id).attr('name') != 'lb_off'){ ") ;
//m_Writer.OutText( " booked = true;");
m_Writer.OutText( " EvidenziaLoadPage(element);") ;
m_Writer.OutText( " if (n == 4) { ") ;
m_Writer.OutText( " EvidenziaLoadPage(element, 1); ") ;
m_Writer.OutText( " } ") ;
m_Writer.OutText( " else { ") ;
m_Writer.OutText( " EvidenziaLoadPage(element, 0); ") ;
m_Writer.OutText( " } ") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " if (element.children.length != 0) {") ;
@@ -1380,7 +1561,9 @@ ExportThreeJS::FinishAmbient()
// - obj: evidenziare il gruppo per 0.5 secondi e poi riportarlo all'orginale per altri 0.5 secondi (questa procedure viene ripetuta per 3 volte, per una durata complessiva di 3 secondi)
// - par: il gruppo
m_Writer.OutText( " var timer = null;") ;
m_Writer.OutText( " function EvidenziaLoadPage(ChoosenGroup) {") ;
m_Writer.OutText( " function EvidenziaLoadPage(ChoosenGroup, n) {") ;
m_Writer.OutText( " for (var i = 0; i < document.getElementsByName('btMenu').length; i++) {document.getElementsByName('btMenu')[i].style.backgroundColor = 'white';}") ;
m_Writer.OutText( " try {document.getElementById('p_id_' + ChoosenGroup.name).style.backgroundColor = 'yellow';}catch (err) {}") ;
m_Writer.OutText( " if (timer != null) {") ;
m_Writer.OutText( " clearTimeout(timer);") ;
m_Writer.OutText( " GetColorBack(LastGroupSelected);") ;
@@ -1410,14 +1593,14 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " OrigColSet = true;") ;
m_Writer.OutText( " i = 0") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " if (j < 6) {") ;
m_Writer.OutText( " if (j < 6 || n == 1) {") ;
m_Writer.OutText( " animation();") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " else {") ;
m_Writer.OutText( " clearTimeout(timer);") ;
//m_Writer.OutText( " ControlMenu(false, ChoosenGroup.name);") ;
//m_Writer.OutText( " booked = false;") ;
m_Writer.OutText( " timer = 0;") ;
m_Writer.OutText( " timer = null;") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " }, 500);") ;
m_Writer.OutText( " }") ;
@@ -1569,20 +1752,21 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " const dir = new THREE.Vector3(vectorB.x - vectorA.x, vectorB.y - vectorA.y, vectorB.z - vectorA.z).normalize();") ;
m_Writer.OutText( " LineMarker = new THREE.ArrowHelper(dir, vectorA, vectorA.distanceTo(vectorB), 0xff0000, 0.5 * 0.2 * vectorA.distanceTo(vectorB), Math.sqrt(0.2 * 0.2 * vectorA.distanceTo(vectorB)));") ;
m_Writer.OutText( " isLineMarkerinScene = true;") ;
m_Writer.OutText( " Cilgeometry = new THREE.CylinderGeometry(2, 2, vectorA.distanceTo(vectorB), 100);") ;
m_Writer.OutText( " scene.add(LineMarker);"); // Arrow helper invece che cilindro + cono
m_Writer.OutText( " Cilgeometry = new THREE.CylinderGeometry(0.2, 0.2, vectorA.distanceTo(vectorB), 100);") ;
m_Writer.OutText( " Cilmaterial = new THREE.MeshPhongMaterial({ color: 0xff0000, emissive : 0xff0000, emissiveIntensity : 1.25 });") ;
m_Writer.OutText( " cylinder = new THREE.Mesh(Cilgeometry, Cilmaterial);") ;
m_Writer.OutText( " cylinder.quaternion.setFromUnitVectors(new THREE.Vector3(0, 1, 0), dir.clone().normalize());") ;
m_Writer.OutText( " cylinder.position.x = vectorA.x + dir.x * 0.5 * vectorA.distanceTo(vectorB);") ;
m_Writer.OutText( " cylinder.position.y = vectorA.y + dir.y * 0.5 * vectorA.distanceTo(vectorB);") ;
m_Writer.OutText( " cylinder.position.z = vectorA.z + dir.z * 0.5 * vectorA.distanceTo(vectorB);") ;
m_Writer.OutText( " CilArrow = new THREE.Mesh(new THREE.CylinderGeometry(2, 7.5, 0.5 * 0.2 * vectorA.distanceTo(vectorB), 100), Cilmaterial);") ;
m_Writer.OutText( " CilArrow = new THREE.Mesh(new THREE.CylinderGeometry(0.2, 1., 0.5 * 0.2 * vectorA.distanceTo(vectorB), 100), Cilmaterial);") ;
m_Writer.OutText( " CilArrow.quaternion.setFromUnitVectors(new THREE.Vector3(0, 1, 0), dir.clone().normalize());") ;
m_Writer.OutText( " CilArrow.position.x = vectorB.x - (dir.x * 0.5 * (0.5 * 0.2 * vectorA.distanceTo(vectorB) * 2 - markerA.geometry.boundingSphere.radius));") ;
m_Writer.OutText( " CilArrow.position.y = vectorB.y - (dir.y * 0.5 * (0.5 * 0.2 * vectorA.distanceTo(vectorB) * 2 - markerA.geometry.boundingSphere.radius));") ;
m_Writer.OutText( " CilArrow.position.z = vectorB.z - (dir.z * 0.5 * (0.5 * 0.2 * vectorA.distanceTo(vectorB) * 2 - markerA.geometry.boundingSphere.radius));") ;
m_Writer.OutText( " scene.add(CilArrow);") ;
m_Writer.OutText( " scene.add(cylinder);") ;
m_Writer.OutText( " CilArrow.position.x = vectorB.x - 0.5 * (dir.x * 0.5 * (0.5 * 0.2 * vectorA.distanceTo(vectorB) * 2 - markerA.geometry.boundingSphere.radius));") ;
m_Writer.OutText( " CilArrow.position.y = vectorB.y - 0.5 *(dir.y * 0.5 * (0.5 * 0.2 * vectorA.distanceTo(vectorB) * 2 - markerA.geometry.boundingSphere.radius));") ;
m_Writer.OutText( " CilArrow.position.z = vectorB.z - 0.5 *(dir.z * 0.5 * (0.5 * 0.2 * vectorA.distanceTo(vectorB) * 2 - markerA.geometry.boundingSphere.radius));") ;
//m_Writer.OutText( " scene.add(CilArrow);") ;
//m_Writer.OutText( " scene.add(cylinder);") ;
m_Writer.OutText( " }") ;
// 10) funzione onDocumentMouseDown
// - obj: Intercettare le superfici selezionate e settare i Markers
@@ -1795,13 +1979,18 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " window.addEventListener('mousemove', onMove, false);") ;
m_Writer.OutText( " window.addEventListener('mousedown', onDocumentMouseDown, false);") ;
m_Writer.OutText( " window.addEventListener('keydown', function(e) {");
m_Writer.OutText( " if (e.key == 'Escape') {");
m_Writer.OutText( " CancelMarkers();");
m_Writer.OutText( " controls.bBox = false;");
m_Writer.OutText( " GLOB_DIST = false;");
m_Writer.OutText( " GLOB_SEL = false;");
m_Writer.OutText( " if (timer != null) {");
m_Writer.OutText( " GetColorBack(CurrentSelectedGroup);");
m_Writer.OutText( " GetColorBack(LastGroupSelected);");
m_Writer.OutText( " clearTimeout(timer);");
m_Writer.OutText( " }");
m_Writer.OutText( " }");
m_Writer.OutText( " if (e.target.id != 'listSearch' && e.target.id != 'FlistSearch') {") ;
m_Writer.OutText( " if (e.key == 'Escape') {") ;
m_Writer.OutText( " CancelMarkers();") ;
m_Writer.OutText( " controls.bBox = false;") ;
m_Writer.OutText( " GLOB_DIST = false;") ;
m_Writer.OutText( " GLOB_SEL = false;") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " if (e.key == 'b') {") ;
m_Writer.OutText( " if (controls.bBox) {") ;
m_Writer.OutText( " controls.bBox = false;") ;
@@ -1853,6 +2042,11 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " orbitControls.target = new THREE.Vector3(0, 0, 0);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " if (e.target.id == 'FlistSearch') {") ;
m_Writer.OutText( " if (e.key == 'Enter') {") ;
m_Writer.OutText( " SelezioneXFiera();") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " });") ;
// Controlli per dispositivi Mobile
m_Writer.OutText( " var onlongtouch;") ;
@@ -2041,7 +2235,49 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " updateVisibility(element, stato);") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " }") ;
m_Writer.OutText(" </script>");
// 21) funzione SelezioneXFiera
// - obj: selezionare (t infito a meno di altre selezioni) un elemento inserendo il suo NOME (univoco per fiera) nella textbox
// - par: nessuno
m_Writer.OutText( " function SelezioneXFiera() {") ;
m_Writer.OutText( " var nome = ' ' + document.getElementById('FlistSearch').value;") ;
m_Writer.OutText( " document.getElementById('FlistSearch').value = '';");
m_Writer.OutText( " var SpanTags = document.getElementsByName('s_nb');") ;
m_Writer.OutText( " var found = -1;") ;
m_Writer.OutText( " for (var i = 0; i < SpanTags.length; i++) {") ;
m_Writer.OutText( " if (SpanTags[i].textContent.toLowerCase() == nome.toLowerCase()) {") ;
m_Writer.OutText( " found = SpanTags[i];") ;
m_Writer.OutText( " break;") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " if (found != -1) {") ;
m_Writer.OutText( " findGroupByNameAndId(groupRoot, found.id.substring(6, found.id.lenght), 4);") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " }") ;
m_Writer.OutText( " $('#strisciaFinale').mousedown(function(e) {") ;
m_Writer.OutText( " e.preventDefault();") ;
m_Writer.OutText( " return true;") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " $('.Contcube').mousedown(function(e) {") ;
m_Writer.OutText( " e.preventDefault();") ;
m_Writer.OutText( " return true;") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " $('.controlMenu').mousedown(function(e) {") ;
m_Writer.OutText( " e.preventDefault();") ;
m_Writer.OutText( " return true;") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " $('.ContLogo').mousedown(function(e) {") ;
m_Writer.OutText( " e.preventDefault();") ;
m_Writer.OutText( " return true;") ;
m_Writer.OutText( " });") ;
m_Writer.OutText( " $('#btn_Menu').mousedown(function(e) {") ;
m_Writer.OutText( " e.preventDefault();") ;
m_Writer.OutText( " return true;") ;
m_Writer.OutText( " });") ;
//m_Writer.OutText( " $('#MenuReal').mousedown(function(e) {") ;
//m_Writer.OutText( " e.preventDefault();") ;
//m_Writer.OutText( " return true;") ;
//m_Writer.OutText( " });") ;
m_Writer.OutText(" </script>") ;
// script per pulsante del menu laterale
m_Writer.OutText( " <script type = 'text/javascript'>") ;
m_Writer.OutText( " $('.btn').click(function() {") ;
@@ -2065,21 +2301,21 @@ ExportThreeJS::FinishAmbient()
m_Writer.OutText( " </div>") ;
m_Writer.OutText( " </div>") ;
m_Writer.OutText( " <div class = 'container mt-3 border-0'>") ;
//m_Writer.OutText( " <div class = 'input-group mb-1 p-0 m-0'>") ;
//m_Writer.OutText( " <span class = 'input-group-prepend'>") ;
//m_Writer.OutText( " <div class = 'input-group-text bg-white border-0 rounded-0' style = 'height:100%;'><i class = 'fa fa-search small' style = 'color:grey;'></i></div>") ;
//m_Writer.OutText( " </span>") ;
//m_Writer.OutText( " <input type = 'text' class = 'form-control border-0' placeholder = 'Search an element' id = 'FlistSearch'>") ;
//m_Writer.OutText( " <span class = 'input-group-btn'>") ;
//m_Writer.OutText( " <button class = 'btn-primary border-bottom-0' type = 'button' id = 'Fbtn_canc'><i class = 'fa-regular fa-circle-check m-0 p-0'></i></button>") ;
//m_Writer.OutText( " </span>") ;
//m_Writer.OutText( " </input>") ;
//m_Writer.OutText( " </div>") ;
m_Writer.OutText( " <div class = 'input-group mb-1 p-0 m-0'>") ;
m_Writer.OutText( " <span class = 'input-group-prepend'>") ;
m_Writer.OutText( " <div class = 'input-group-text bg-white border-0 rounded-0' style = 'height:100%;'><i class = 'fa fa-search small' style = 'color:grey;'></i></div>") ;
m_Writer.OutText( " </span>") ;
m_Writer.OutText( " <input type = 'text' class = 'form-control border-0' placeholder = 'Search an element' id = 'FlistSearch'>") ;
m_Writer.OutText( " <span class = 'input-group-btn'>") ;
m_Writer.OutText( " <button class = 'btn-primary border-bottom-0' type = 'button' id = 'Fbtn_canc'><i class = 'fa-regular fa-circle-check m-0 p-0'></i></button>") ;
m_Writer.OutText( " </span>") ;
m_Writer.OutText( " </input>") ;
m_Writer.OutText( " </div>") ;
m_Writer.OutText( " <div class = 'input-group mb-1 p-0 m-0'>") ;
m_Writer.OutText( " <span class = 'input-group-prepend'>") ;
m_Writer.OutText( " <div class = 'input-group-text bg-white border-0 rounded-0' style = 'height:100%;'><i class = 'fa fa-search small' style = 'color:grey;'></i></div>");
m_Writer.OutText( " </span>");
m_Writer.OutText( " <input type = 'text' class = 'form-control border-0' placeholder = 'Search...' id = 'listSearch'>") ;
m_Writer.OutText( " <input type = 'text' class = 'form-control border-0' placeholder = 'Skim elements' id = 'listSearch'>") ;
m_Writer.OutText( " <span class = 'input-group-btn'>") ;
m_Writer.OutText( " <button class = 'btn-danger border-bottom-0' type = 'button' id = 'btn_canc'><i class = 'fa-solid fa-eraser m-0 p-0'></i></button>") ;
m_Writer.OutText( " </span>") ;
@@ -2520,6 +2756,7 @@ ExportThreeJS::ExportSTM( const string& sName, const IGeoObj* pGeoObj, const Fra
// controllo trasparenza e opacità
double dOpacityThreeJs = 1 ;
//m_Writer.OutText(" try {");
if ( dOpacity < 1)
{
// mesh trasparente
@@ -2540,6 +2777,7 @@ ExportThreeJS::ExportSTM( const string& sName, const IGeoObj* pGeoObj, const Fra
// creo il materiale
// front side
m_Writer.OutText( " var front_surf_materials" + ToString( m_nCont) + "= new THREE.MeshPhongMaterial({color: " + sHexCol + ", transparent: true , opacity: " + ToString( dOpacityThreeJs) + ", side: THREE.FrontSide});") ;
m_Writer.OutText( " front_surf_materials" + ToString( m_nCont) + ".oldColor = new THREE.Color(" + sHexCol + ");") ;
m_Writer.OutText( " front_surf_materials" + ToString( m_nCont) + ".depthTest = true;"); // abilito test profondità
@@ -2610,7 +2848,9 @@ ExportThreeJS::ExportSTM( const string& sName, const IGeoObj* pGeoObj, const Fra
m_Writer.OutText( " var geom" + ToString( m_nCont) + " = new THREE.Geometry();") ;
m_Writer.OutText( " geom" + ToString( m_nCont) + ".vertices = vertices" + ToString(m_nCont) + ";") ;
m_Writer.OutText( " geom" + ToString( m_nCont) + ".faces = faces" + ToString(m_nCont) + ";") ;
m_Writer.OutText( " try{") ;
m_Writer.OutText( " geom" + ToString( m_nCont) + ".computeFaceNormals();") ; // per rendering effetto ombre e luce
m_Writer.OutText( " } catch(err){ console.log(err);};") ;
// creo la mesh unendo geometria (vertici e facce) e materiale
if ( dOpacity < 1)
@@ -2645,6 +2885,9 @@ ExportThreeJS::ExportSTM( const string& sName, const IGeoObj* pGeoObj, const Fra
if ( nGroupCount != -1)
m_Writer.OutText( " group" + ToString( nGroupCount) + ".children.push(opaca_mesh_" + ToString( m_nCont) + ")") ;
}
//m_Writer.OutText(" }");
//m_Writer.OutText(" catch(err){ console.log(err); }");
return true ;
}