EgtExchange :
- Correzione orientamento frame e vettori - Modifica al groupRoot di ThreeJS - Correzione cambio coordinate tra sistemi differenti.
This commit is contained in:
+48
-37
@@ -1348,7 +1348,7 @@ ExportThreeJS::FinishAmbient( void)
|
||||
m_Writer.OutText( " document.getElementsByTagName('canvas')[0].style.height = '100vh';") ;
|
||||
// chiamo il render della scena
|
||||
m_Writer.OutText( " renderScene();") ;
|
||||
m_Writer.OutText( " Updatebadge(groupRoot, -1);") ;
|
||||
m_Writer.OutText( " Updatebadge(groupRoot.children[0], -1);") ; // dal gruppo esportato da EGTCAM5
|
||||
m_Writer.OutText( " document.getElementsByTagName('canvas')[0].setAttribute('id', 'CScena');") ;
|
||||
m_Writer.OutText( " document.getElementById('CScena').addEventListener('mouseover', (event) => {") ;
|
||||
m_Writer.OutText( " if (GLOB_DIST) {") ;
|
||||
@@ -1824,7 +1824,7 @@ ExportThreeJS::FinishAmbient( void)
|
||||
m_Writer.OutText( " getGroupByuuid(groupRoot.children[0], intersects[0].object.uuid);") ;
|
||||
m_Writer.OutText( " for (var i = 0; i < groupRoot.children[0].children.length; i++) {") ;
|
||||
m_Writer.OutText( " bSel = false;") ;
|
||||
m_Writer.OutText( " getObj(groupRoot.children[0].children[i], SelectedCurrG.name)") ;
|
||||
m_Writer.OutText( " getObj(groupRoot.children[0].children[i], intersects[0].object.uuid)") ;
|
||||
m_Writer.OutText( " if (bSel) {");
|
||||
m_Writer.OutText( " SelectedObject_id = groupRoot.children[0].children[i].name;") ;
|
||||
m_Writer.OutText( " entrato = true;") ;
|
||||
@@ -1868,15 +1868,15 @@ ExportThreeJS::FinishAmbient( void)
|
||||
m_Writer.OutText( " }") ;
|
||||
|
||||
// 12) funzione getObj
|
||||
// - obj: dato un gruppo e un Id, capire se l'id è contenuto nel gruppo e nei suoi sottogruppi
|
||||
// - par: il gruppo da cui iniziare e l'id
|
||||
m_Writer.OutText( " function getObj(obj, n) {") ;
|
||||
// - obj: dato un gruppo e un uuid, capire se l'uuid è contenuto nel gruppo e nei suoi sottogruppi
|
||||
// - par: il gruppo da cui iniziare e l'uuid
|
||||
m_Writer.OutText( " function getObj(obj, uuid) {") ;
|
||||
m_Writer.OutText( " obj.children.forEach(e => {") ;
|
||||
m_Writer.OutText( " if (e.name == n) {") ;
|
||||
m_Writer.OutText( " if (e.uuid == uuid) {") ;
|
||||
m_Writer.OutText( " bSel = true;") ;
|
||||
m_Writer.OutText( " }") ;
|
||||
m_Writer.OutText( " else {") ;
|
||||
m_Writer.OutText( " getObj(e, n);") ;
|
||||
m_Writer.OutText( " getObj(e, uuid);") ;
|
||||
m_Writer.OutText( " }") ;
|
||||
m_Writer.OutText( " });") ;
|
||||
m_Writer.OutText( " }") ;
|
||||
@@ -2593,10 +2593,10 @@ ExportThreeJS::ExportVector3D( const string& sName, const IGeoObj* pGeoObj, cons
|
||||
m_Writer.OutText( " var vettore" + sName + " = new THREE.Vector3(" + ToString( vVec.y) + ", " + ToString( vVec.z) + ", " + ToString( vVec.x) + ")") ;
|
||||
m_Writer.OutText( " vettore" + sName + ".normalize();") ;
|
||||
m_Writer.OutText( " var origin = new THREE.Vector3(" + ToString( ptVec.x) + ", " + ToString( ptVec.y) + ", " + ToString( ptVec.z) + ")") ;
|
||||
m_Writer.OutText( " var length = " + ToString( vVec.Len()) + ";") ;
|
||||
m_Writer.OutText( " var hex = " + sHexCol +";") ;
|
||||
m_Writer.OutText( " var arrowHelper" + sName + " = new THREE.ArrowHelper(vettore" + sName + ", origin, length, hex);") ;
|
||||
m_Writer.OutText( " arrowHelper" + sName + ".oldColor = new THREE.Color(hex);") ; //salvataggio colore per selezione
|
||||
m_Writer.OutText( " var vlength" + sName + " = " + ToString( vVec.Len()) + ";") ;
|
||||
m_Writer.OutText( " var vhex" + sName + " = " + sHexCol +";") ;
|
||||
m_Writer.OutText( " var arrowHelper" + sName + " = new THREE.ArrowHelper(vettore" + sName + ", origin, vlength" + sName + ", vhex" + sName + ");") ;
|
||||
m_Writer.OutText( " arrowHelper" + sName + ".oldColor = new THREE.Color(vhex" + sName + ");") ; //salvataggio colore per selezione
|
||||
m_Writer.OutText( " list_of_objects.push(arrowHelper" + sName + ");") ;
|
||||
|
||||
// aggiungo il vettore al suo gruppo di appartenenza
|
||||
@@ -2682,26 +2682,34 @@ ExportThreeJS::ExportFrame3D( const string& sName, const IGeoObj* pGeoObj, const
|
||||
|
||||
Frame3d frCurrentFrame = pFrame->GetFrame() ;
|
||||
// porto il punto in coordinate ThreeJS
|
||||
frCurrentFrame.ToGlob( frFrame) ;
|
||||
//frCurrentFrame.ToGlob( frFrame) ;
|
||||
string sHexCol ;
|
||||
GetColor( Ccol, sHexCol) ;
|
||||
|
||||
Point3d ptOrig = frCurrentFrame.Orig() ;
|
||||
ptOrig.LocToLoc( frFrame, m_frTHREEJSFrame) ;
|
||||
|
||||
Vector3d vx = frCurrentFrame.VersZ() ;
|
||||
Vector3d vy = frCurrentFrame.VersX() ;
|
||||
Vector3d vz = frCurrentFrame.VersY() ;
|
||||
// porto i vettori in coordinate ThreeJS
|
||||
Vector3d vx = frCurrentFrame.VersX() ;
|
||||
Vector3d vy = frCurrentFrame.VersY() ;
|
||||
Vector3d vz = frCurrentFrame.VersZ() ;
|
||||
|
||||
vx.LocToLoc( frFrame, m_frTHREEJSFrame) ;
|
||||
vy.LocToLoc(frFrame, m_frTHREEJSFrame) ;
|
||||
vz.LocToLoc(frFrame, m_frTHREEJSFrame) ;
|
||||
|
||||
double dVecLen = sqrt( vx.x * vx.x + vx.y * vx.y + vx.z * vx.z) ; // riferimento al vettore lungo x (lunghezza vettori)
|
||||
|
||||
|
||||
// scrivo i 3 vettori
|
||||
// x
|
||||
m_Writer.OutText( " var xdir" + sName + " = new THREE.Vector3(" + ToString( vx.x) + ", " + ToString( vx.y) + ", " + ToString( vx.z) + ");") ;
|
||||
m_Writer.OutText( " xdir" + sName + ".normalize()") ;
|
||||
m_Writer.OutText( " var origin" + sName + " = new THREE.Vector3(" + ToString( ptOrig.x) + ", " + ToString( ptOrig.y) + ", " + ToString( ptOrig.z)+ ");") ;
|
||||
m_Writer.OutText( " var length = 25;") ;
|
||||
m_Writer.OutText( " var hex = 0xff0000;") ;
|
||||
m_Writer.OutText( " var arrowHelper" + sName + " = new THREE.ArrowHelper(xdir" + sName + ", origin" + sName + ", length, hex);") ;
|
||||
m_Writer.OutText( " arrowHelper" + sName + ".oldColor = new THREE.Color(hex);") ;
|
||||
m_Writer.OutText( " var xlength" + sName + " = " + ToString( dVecLen) + " * 10;") ;
|
||||
m_Writer.OutText( " var xhex" + sName + " = 0xff0000;") ;
|
||||
m_Writer.OutText( " var arrowHelper" + sName + " = new THREE.ArrowHelper(xdir" + sName + ", origin" + sName + ", xlength" + sName +", xhex" + sName + ", " + ToString( dVecLen) + " * 2);") ;
|
||||
m_Writer.OutText( " arrowHelper" + sName + ".oldColor = new THREE.Color(xhex" + sName + ");") ;
|
||||
m_Writer.OutText( " list_of_objects.push(arrowHelper" + sName + ");") ;
|
||||
|
||||
// aggiungo il vettore al suo gruppo di appartenenza
|
||||
@@ -2712,10 +2720,10 @@ ExportThreeJS::ExportFrame3D( const string& sName, const IGeoObj* pGeoObj, const
|
||||
m_Writer.OutText( " var ydir" + sName + " = new THREE.Vector3(" + ToString( vy.x) + ", " + ToString( vy.y) + ", " + ToString( vy.z) + ");") ;
|
||||
m_Writer.OutText( " ydir" + sName + ".normalize()") ;
|
||||
m_Writer.OutText( " var origin" + sName + " = new THREE.Vector3(" + ToString( ptOrig.x) + ", " + ToString( ptOrig.y) + ", " + ToString( ptOrig.z) + ");") ;
|
||||
m_Writer.OutText( " var length = 25;") ;
|
||||
m_Writer.OutText( " var hex = 0x00ff00;") ;
|
||||
m_Writer.OutText( " var arrowHelper" + sName + " = new THREE.ArrowHelper(ydir" + sName + ", origin" + sName + ", length, hex);") ;
|
||||
m_Writer.OutText( " arrowHelper" + sName + ".oldColor = new THREE.Color(hex);") ;
|
||||
m_Writer.OutText( " var ylength" + sName + " = " + ToString( dVecLen) + " * 10;") ;
|
||||
m_Writer.OutText( " var yhex" + sName + " = 0x00ff00;") ;
|
||||
m_Writer.OutText( " var arrowHelper" + sName + " = new THREE.ArrowHelper(ydir" + sName + ", origin" + sName + ", ylength" + sName +", yhex" + sName + ", " + ToString( dVecLen) + " * 2);") ;
|
||||
m_Writer.OutText( " arrowHelper" + sName + ".oldColor = new THREE.Color(yhex" + sName + ");") ;
|
||||
m_Writer.OutText( " list_of_objects.push(arrowHelper" + sName + ");") ;
|
||||
|
||||
// aggiungo il vettore al suo gruppo di appartenenza
|
||||
@@ -2726,10 +2734,10 @@ ExportThreeJS::ExportFrame3D( const string& sName, const IGeoObj* pGeoObj, const
|
||||
m_Writer.OutText( " var zdir" + sName + " = new THREE.Vector3(" + ToString( vz.x) + ", " + ToString( vz.y) + ", " + ToString( vz.z) + ");") ;
|
||||
m_Writer.OutText( " zdir" + sName + ".normalize()") ;
|
||||
m_Writer.OutText( " var origin" + sName + " = new THREE.Vector3(" + ToString( ptOrig.x) + ", " + ToString( ptOrig.y) + ", " + ToString( ptOrig.z) + ");") ;
|
||||
m_Writer.OutText( " var length = 25;") ;
|
||||
m_Writer.OutText( " var hex = 0x0000ff;") ;
|
||||
m_Writer.OutText( " var arrowHelper" + sName + " = new THREE.ArrowHelper(zdir" + sName + ", origin" + sName + ", length, hex);") ;
|
||||
m_Writer.OutText( " arrowHelper" + sName + ".oldColor = new THREE.Color(hex);") ;
|
||||
m_Writer.OutText( " var zlength" + sName + " = " + ToString( dVecLen) + " * 10;") ;
|
||||
m_Writer.OutText( " var zhex" + sName + " = 0x0000ff;") ;
|
||||
m_Writer.OutText( " var arrowHelper" + sName + " = new THREE.ArrowHelper(zdir" + sName + ", origin" + sName + ", zlength" + sName + ", zhex" + sName + ", " + ToString( dVecLen) + " * 2);") ;
|
||||
m_Writer.OutText( " arrowHelper" + sName + ".oldColor = new THREE.Color(zhex" + sName + ");") ;
|
||||
m_Writer.OutText( " list_of_objects.push(arrowHelper" + sName + ");") ;
|
||||
|
||||
// aggiungo il vettore al suo gruppo di appartenenza
|
||||
@@ -3084,20 +3092,23 @@ ExportThreeJS::ScanGroup( const IGdbIterator& iIter, IGeomDB* pGDB, const int nG
|
||||
|
||||
m_Writer.OutText( " group" + ToString( m_nGroupCount) + ".name = '" + sId + "'") ;
|
||||
// aggiungo l'EventListner per il menu laterale sinistro
|
||||
m_Writer.OutText( " document.getElementById('p_id_" + sId + "').addEventListener('click', function(){ if(!booked) { findGroupByNameAndId(groupRoot, " + sId + ", 1); }});") ;
|
||||
m_Writer.OutText( " document.getElementById('lb_" + sId + "').addEventListener('click', function(){ lightbulb('lb_" + sId + "', 0)});") ;
|
||||
//m_Writer.OutText( " document.getElementById('p_id_" + sId + "').addEventListener('click', function(){ if(!booked) { findGroupByNameAndId(groupRoot, " + sId + ", 1); }});") ;
|
||||
//m_Writer.OutText( " document.getElementById('lb_" + sId + "').addEventListener('click', function(){ lightbulb('lb_" + sId + "', 0)});") ;
|
||||
|
||||
if ( ! sId.compare( "0")) {
|
||||
m_sCodMenu += "<div class = 'd-flex flex-row bd-highlight'>" ;
|
||||
m_sCodMenu += "<i id = 'lb_0' name = 'lb_on' class = 'fa-solid fa-lightbulb m-0 py-1 visible' style = 'cursor: pointer; color: #f0ad4e'></i>" ;
|
||||
m_sCodMenu += "<button class = 'list-group-item list-group-item-action list-group-flush list-group-item-dark mb-0 border-0 ml-1 py-0 mx-1' name='btMenu' id = 'p_id_0'>" ;
|
||||
m_sCodMenu += "<span class = 'badge bg-dark float-end my-0' id = 's_id_0' name ='badgeMenu'></span>" ;
|
||||
m_sCodMenu += "<span class = 'border-0' name = 's_col_ora' id = 's_col_0'> <i>(0)</i></span>" ;
|
||||
m_sCodMenu += "<span id = 'ss_id_0' name = 's_nb'> BASIC MODEL</span>" ;
|
||||
m_sCodMenu += "</button>" ;
|
||||
m_sCodMenu += "</div>" ;
|
||||
|
||||
//m_sCodMenu += "<div class = 'd-flex flex-row bd-highlight'>" ;
|
||||
//m_sCodMenu += "<i id = 'lb_0' name = 'lb_on' class = 'fa-solid fa-lightbulb m-0 py-1 visible' style = 'cursor: pointer; color: #f0ad4e'></i>" ;
|
||||
//m_sCodMenu += "<button class = 'list-group-item list-group-item-action list-group-flush list-group-item-dark mb-0 border-0 ml-1 py-0 mx-1' name='btMenu' id = 'p_id_0'>" ;
|
||||
//m_sCodMenu += "<span class = 'badge bg-dark float-end my-0' id = 's_id_0' name ='badgeMenu'></span>" ;
|
||||
//m_sCodMenu += "<span class = 'border-0' name = 's_col_ora' id = 's_col_0'> <i>(0)</i></span>" ;
|
||||
//m_sCodMenu += "<span id = 'ss_id_0' name = 's_nb'> BASIC MODEL</span>" ;
|
||||
//m_sCodMenu += "</button>" ;
|
||||
//m_sCodMenu += "</div>" ;
|
||||
}
|
||||
else {
|
||||
m_Writer.OutText(" document.getElementById('p_id_" + sId + "').addEventListener('click', function(){ if(!booked) { findGroupByNameAndId(groupRoot, " + sId + ", 1); }});") ;
|
||||
m_Writer.OutText(" document.getElementById('lb_" + sId + "').addEventListener('click', function(){ lightbulb('lb_" + sId + "', 0)});") ;
|
||||
m_sCodMenu += "<div class = 'd-flex flex-row bd-highlight'>" ;
|
||||
m_sCodMenu += "<i id = 'lb_" + sId + "' name = 'lb_on' class = 'fa-solid fa-lightbulb m-0 py-1 visible' style = 'cursor: pointer; color: #f0ad4e'></i>" ;
|
||||
m_sCodMenu += "<button class = 'list-group-item list-group-item-action list-group-flush list-group-item-dark mb-0 border-0 ml-1 py-0 mx-1' name='btMenu' id = 'p_id_" + sId + "'>" ;
|
||||
|
||||
Reference in New Issue
Block a user