diff --git a/EgtGraphics.rc b/EgtGraphics.rc index 14a6602..65d1c57 100644 Binary files a/EgtGraphics.rc and b/EgtGraphics.rc differ diff --git a/SceneCamera.cpp b/SceneCamera.cpp index 98310ac..f61df93 100644 --- a/SceneCamera.cpp +++ b/SceneCamera.cpp @@ -403,10 +403,8 @@ Scene::ZoomWin( const Point3d& ptWin1, const Point3d& ptWin2) return false ; // porto i punti in coordinate camera (vista) - Point3d ptView1 = ptWorld1 ; - ptView1.ToLoc( frView) ; - Point3d ptView2 = ptWorld2 ; - ptView2.ToLoc( frView) ; + Point3d ptView1 = GetToLoc( ptWorld1, frView) ; + Point3d ptView2 = GetToLoc( ptWorld2, frView) ; // imposto il nuovo centro di vista Point3d ptNewCen = 0.5 * ( ptWorld1 + ptWorld2) ; diff --git a/SceneGeom.cpp b/SceneGeom.cpp index 96cd2f6..4c31ff1 100644 --- a/SceneGeom.cpp +++ b/SceneGeom.cpp @@ -881,26 +881,20 @@ CalcCurveTailMark( const Vector3d& vtRef, const PolyLine& plCrv, PolyLine& plMar // disegno traverso Frame3d frF ; if ( frF.Set( ptTail, vtDir, vtRef)) { - Point3d ptP0 = ORIG + Vector3d( 0, 0.5 * dLenTr, 0) ; - ptP0.ToGlob( frF) ; + Point3d ptP0 = GetToGlob( ORIG + Vector3d( 0, 0.5 * dLenTr, 0), frF) ; plMark.AddUPoint( 0, ptP0) ; - Point3d ptP1 = ORIG + Vector3d( 0, - 0.5 * dLenTr, 0) ; - ptP1.ToGlob( frF) ; + Point3d ptP1 = GetToGlob( ORIG + Vector3d( 0, - 0.5 * dLenTr, 0), frF) ; plMark.AddUPoint( 1, ptP1) ; } else { frF.Set( ptTail, vtDir) ; - Point3d ptP0 = ORIG + Vector3d( - 0.5 * dLenTr, - 0.5 * dLenTr, 0) ; - ptP0.ToGlob( frF) ; + Point3d ptP0 = GetToGlob( ORIG + Vector3d( - 0.5 * dLenTr, - 0.5 * dLenTr, 0), frF) ; plMark.AddUPoint( 0, ptP0) ; - Point3d ptP1 = ORIG + Vector3d( 0.5 * dLenTr, - 0.5 * dLenTr, 0) ; - ptP1.ToGlob( frF) ; + Point3d ptP1 = GetToGlob( ORIG + Vector3d( 0.5 * dLenTr, - 0.5 * dLenTr, 0), frF) ; plMark.AddUPoint( 1, ptP1) ; - Point3d ptP2 = ORIG + Vector3d( 0.5 * dLenTr, 0.5 * dLenTr, 0) ; - ptP2.ToGlob( frF) ; + Point3d ptP2 = GetToGlob( ORIG + Vector3d( 0.5 * dLenTr, 0.5 * dLenTr, 0), frF) ; plMark.AddUPoint( 2, ptP2) ; - Point3d ptP3 = ORIG + Vector3d( - 0.5 * dLenTr, 0.5 * dLenTr, 0) ; - ptP3.ToGlob( frF) ; + Point3d ptP3 = GetToGlob( ORIG + Vector3d( - 0.5 * dLenTr, 0.5 * dLenTr, 0), frF) ; plMark.AddUPoint( 3, ptP3) ; // punto di chiusura coincidente con il primo plMark.AddUPoint( 4, ptP0) ; @@ -957,11 +951,9 @@ CalcCurveTipArrow( const Vector3d& vtRef, const PolyLine& plCrv, PolyLine& plArr if ( ! frF.Set( ptTip, vtDir, vtRef)) frF.Set( ptTip, vtDir) ; plArr.AddUPoint( 0, ptTip) ; - Point3d ptP1 = ORIG + Vector3d( 0, A_WIDTH_COEFF, -1) * dLenArr ; - ptP1.ToGlob( frF) ; + Point3d ptP1 = GetToGlob( ORIG + Vector3d( 0, A_WIDTH_COEFF, -1) * dLenArr, frF) ; plArr.AddUPoint( 1, ptP1) ; - Point3d ptP2 = ORIG + Vector3d( 0, - A_WIDTH_COEFF, -1) * dLenArr ; - ptP2.ToGlob( frF) ; + Point3d ptP2 = GetToGlob( ORIG + Vector3d( 0, - A_WIDTH_COEFF, -1) * dLenArr, frF) ; plArr.AddUPoint( 2, ptP2) ; plArr.AddUPoint( 3, ptTip) ; diff --git a/SceneGrid.cpp b/SceneGrid.cpp index bc3ef49..60b5f59 100644 --- a/SceneGrid.cpp +++ b/SceneGrid.cpp @@ -15,6 +15,7 @@ #include "stdafx.h" #include "Scene.h" #include "EGrUtils.h" +#include "/EgtDev/Include/EgtNumUtils.h" #include using namespace std ; @@ -35,8 +36,8 @@ Scene::SetGridGeo( double dSnapStep, int nMinLineSstep, int nMajLineSstep, int n const double MIN_SNAP_STEP = 0.1 ; m_dSnapStep = max( abs( dSnapStep), MIN_SNAP_STEP) ; m_nMinLineSstep = abs( nMinLineSstep) ; - m_nMajLineSstep = abs( nMajLineSstep) ; - m_nExtSstep = abs( nExtSstep) ; + m_nMajLineSstep = max( abs( nMajLineSstep), m_nMinLineSstep) ; + m_nExtSstep = max( abs( nExtSstep), m_nMajLineSstep) ; return true ; } @@ -49,6 +50,26 @@ Scene::SetGridColor( Color colMinLine, Color colMajLine) return true ; } +//---------------------------------------------------------------------------- +static int +GetSpecialCoeff( double dVal) +{ + if ( dVal < 1.99) + return 1 ; + else if ( dVal < 4.99) + return 2 ; + else if ( dVal < 9.99) + return 5 ; + else if ( dVal < 24.99) + return 10 ; + else if ( dVal < 49.99) + return 25 ; + else if ( dVal < 99.99) + return 50 ; + else + return 100 ; +} + //---------------------------------------------------------------------------- bool Scene::DrawGrid( void) @@ -73,35 +94,40 @@ Scene::DrawGrid( void) // se richiesto, disegno la griglia if ( m_bShowGrid) { - // disegno linee minori (a trattini) - glLineStipple( 2, 0xAAAA) ; - glEnable( GL_LINE_STIPPLE) ; - glBegin( GL_LINES) ; - glColor3f( m_colMinLine.GetRed(), m_colMinLine.GetGreen(), m_colMinLine.GetBlue()) ; - for ( int i = m_nMinLineSstep ; i <= m_nExtSstep ; i += m_nMinLineSstep) { - // se non si sovrappongono alle maggiori - if ( ( i % m_nMajLineSstep) != 0) { - float dPos = float( i * m_dSnapStep) ; - // X + - glVertex3f( dPos, - dExt, Z_DOWN) ; - glVertex3f( dPos, dExt, Z_DOWN) ; - // X - - glVertex3f( - dPos, - dExt, Z_DOWN) ; - glVertex3f( - dPos, dExt, Z_DOWN) ; - // Y + - glVertex3f( - dExt, dPos, Z_DOWN) ; - glVertex3f( dExt, dPos, Z_DOWN) ; - // Y - - glVertex3f( - dExt, - dPos, Z_DOWN) ; - glVertex3f( dExt, - dPos, Z_DOWN) ; + // disegno linee minori (a trattini), se non troppe + double dMinRapp = min( m_dHalfWidth, m_dHalfHeight) / ( m_dSnapStep * m_nMinLineSstep) ; + if ( dMinRapp < 60) { + glLineStipple( 2, 0xAAAA) ; + glEnable( GL_LINE_STIPPLE) ; + glBegin( GL_LINES) ; + glColor3f( m_colMinLine.GetRed(), m_colMinLine.GetGreen(), m_colMinLine.GetBlue()) ; + for ( int i = m_nMinLineSstep ; i <= m_nExtSstep ; i += m_nMinLineSstep) { + // se non si sovrappongono alle maggiori + if ( ( i % m_nMajLineSstep) != 0) { + float dPos = float( i * m_dSnapStep) ; + // X + + glVertex3f( dPos, - dExt, Z_DOWN) ; + glVertex3f( dPos, dExt, Z_DOWN) ; + // X - + glVertex3f( - dPos, - dExt, Z_DOWN) ; + glVertex3f( - dPos, dExt, Z_DOWN) ; + // Y + + glVertex3f( - dExt, dPos, Z_DOWN) ; + glVertex3f( dExt, dPos, Z_DOWN) ; + // Y - + glVertex3f( - dExt, - dPos, Z_DOWN) ; + glVertex3f( dExt, - dPos, Z_DOWN) ; + } } + glEnd() ; + glDisable( GL_LINE_STIPPLE) ; } - glEnd() ; - glDisable( GL_LINE_STIPPLE) ; // disegno linee maggiori + double dMaxRapp = min( m_dHalfWidth, m_dHalfHeight) / ( m_dSnapStep * m_nMajLineSstep) ; + int nCoeff = GetSpecialCoeff( 0.06 * dMaxRapp) ; glBegin( GL_LINES) ; glColor3f( m_colMajLine.GetRed(), m_colMajLine.GetGreen(), m_colMajLine.GetBlue()) ; - for ( int i = m_nMajLineSstep ; i <= m_nExtSstep ; i += m_nMajLineSstep) { + for ( int i = min( nCoeff * m_nMajLineSstep, m_nExtSstep) ; i <= m_nExtSstep ; i += nCoeff * m_nMajLineSstep) { float dPos = float( i * m_dSnapStep) ; // X + glVertex3f( dPos, - dExt, Z_DOWN) ; diff --git a/SceneSelect.cpp b/SceneSelect.cpp index 9554e98..5831b3e 100644 --- a/SceneSelect.cpp +++ b/SceneSelect.cpp @@ -275,24 +275,21 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in // recupero il geo-punto const IGeoPoint3d* pGP = GetGeoPoint3d( pGObj) ; // recupero il punto - ptSel = pGP->GetPoint() ; - ptSel.ToGlob( frEnt) ; + ptSel = GetToGlob( pGP->GetPoint(), frEnt) ; } // se vettore else if ( pGObj->GetType() == GEO_VECT3D) { // recupero il geo-vettore const IGeoVector3d* pGV = GetGeoVector3d( pGObj) ; // recupero il punto - ptSel = pGV->GetBase() ; - ptSel.ToGlob( frEnt) ; + ptSel = GetToGlob( pGV->GetBase(), frEnt) ; } // se frame else if ( pGObj->GetType() == GEO_FRAME3D) { // recupero il geo-frame const IGeoFrame3d* pGF = GetGeoFrame3d( pGObj) ; // recupero il punto - ptSel = pGF->GetFrame().Orig() ; - ptSel.ToGlob( frEnt) ; + ptSel = GetToGlob( pGF->GetFrame().Orig(), frEnt) ; } // se curva else if ( ( pGObj->GetType() & GEO_CURVE) != 0) { @@ -310,8 +307,7 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in MinDistPCInfo mdInfo ; DistPointCurve dstPtCurve( ptRef, *pCrv) ; if ( dstPtCurve.GetMinDistInfo( 0, mdInfo)) { - Point3d ptP = mdInfo.ptQ ; - ptP.ToGlob( frEnt) ; + Point3d ptP = GetToGlob( mdInfo.ptQ, frEnt) ; if ( VerifySnapPoint( ptP, ptView, dMinSqDist)) { ptSel = ptP ; nAux = int( mdInfo.dPar) ; @@ -325,14 +321,12 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in vtExtr *= dTh ; vtExtr.ToGlob( frEnt) ; // correggo il punto di riferimento del contrario dell'estrusione - Vector3d vtTemp = vtExtr ; - vtTemp.ToLoc( frEnt) ; + Vector3d vtTemp = GetToLoc( vtExtr, frEnt) ; // determino il punto pił vicino della curva a questo MinDistPCInfo mdInfo ; DistPointCurve dstPtCurve( ptRef - vtTemp, *pCrv) ; if ( dstPtCurve.GetMinDistInfo( 0, mdInfo)) { - Point3d ptP = mdInfo.ptQ ; - ptP.ToGlob( frEnt) ; + Point3d ptP = GetToGlob( mdInfo.ptQ, frEnt) ; ptP += vtExtr ; if ( VerifySnapPoint( ptP, ptView, dMinSqDist)) { ptSel = ptP ; @@ -353,8 +347,7 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in // lo porto nel frame della superficie ptRef.ToLoc( frEnt) ; // recupero la direzione di mira e la porto nel riferimento della superficie - Vector3d vtDir = - m_vtDirCamera ; - vtDir.ToLoc( frEnt) ; + Vector3d vtDir = GetToLoc( -m_vtDirCamera, frEnt) ; // recupero il raggio del box di ingombro double dBlRad = 1000 ; const ObjEGrGraphics* pGraphics = GetObjEGrGraphics( pStm) ; @@ -371,8 +364,7 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in if ( ! IntersLineSurfTm( ptMir, vtDir, dLenMir, *pStm, vInfo) || vInfo.size() == 0) return false ; // recupero il primo punto - ptSel = vInfo[0].ptI ; - ptSel.ToGlob( frEnt) ; + ptSel = GetToGlob( vInfo[0].ptI, frEnt) ; nAux = vInfo[0].nT ; } // se regione @@ -387,8 +379,7 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in // lo porto nel frame della regione ptRef.ToLoc( frEnt) ; // recupero la direzione di mira e la porto nel riferimento della regione - Vector3d vtDir = - m_vtDirCamera ; - vtDir.ToLoc( frEnt) ; + Vector3d vtDir = GetToLoc( -m_vtDirCamera, frEnt) ; // recupero il piano della regione Plane3d plReg ; plReg.Set( pReg->GetPlanePoint(), pReg->GetNormVersor()) ; @@ -397,8 +388,7 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in if ( IntersLinePlane( ptRef, vtDir, INFINITO, plReg, ptInt, false) != ILPT_YES) return false ; // assegno il punto - ptSel = ptInt ; - ptSel.ToGlob( frEnt) ; + ptSel = GetToGlob( ptInt, frEnt) ; // determino il chunk nAux = 0 ; if ( pReg->GetChunkCount() > 1) { @@ -429,8 +419,7 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in // lo porto nel frame della superficie ptRef.ToLoc( frEnt) ; // recupero la direzione di mira e la porto nel riferimento della superficie - Vector3d vtDir = - m_vtDirCamera ; - vtDir.ToLoc( frEnt) ; + Vector3d vtDir = GetToLoc( -m_vtDirCamera, frEnt) ; // recupero il raggio del box di ingombro double dBlRad = 1000 ; const ObjEGrGraphics* pGraphics = GetObjEGrGraphics( pStm) ; @@ -447,8 +436,7 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in if ( ! IntersLineSurfTm( ptMir, vtDir, dLenMir, *pStm, vInfo) || vInfo.size() == 0) return false ; // recupero il primo punto - ptSel = vInfo[0].ptI ; - ptSel.ToGlob( frEnt) ; + ptSel = GetToGlob( vInfo[0].ptI, frEnt) ; nAux = 0 ; } // se testo @@ -505,23 +493,19 @@ Scene::GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel, in double dMinSqDist = INFINITO * INFINITO ; Point3d ptP ; // punto iniziale - ptP = pDim->GetStart() ; - ptP.ToGlob( frEnt) ; + ptP = GetToGlob( pDim->GetStart(), frEnt) ; if ( VerifySnapPoint( ptP, ptView, dMinSqDist)) ptSel = ptP ; // punto sopra iniziale - ptP = pDim->GetOverStart() ; - ptP.ToGlob( frEnt) ; + ptP = GetToGlob( pDim->GetOverStart(), frEnt) ; if ( VerifySnapPoint( ptP, ptView, dMinSqDist)) ptSel = ptP ; // punto finale - ptP = pDim->GetEnd() ; - ptP.ToGlob( frEnt) ; + ptP = GetToGlob( pDim->GetEnd(), frEnt) ; if ( VerifySnapPoint( ptP, ptView, dMinSqDist)) ptSel = ptP ; // punto sopra finale - ptP = pDim->GetOverEnd() ; - ptP.ToGlob( frEnt) ; + ptP = GetToGlob( pDim->GetOverEnd(), frEnt) ; if ( VerifySnapPoint( ptP, ptView, dMinSqDist)) ptSel = ptP ; // punto medio diff --git a/SceneSnap.cpp b/SceneSnap.cpp index 46df3cd..58c0d33 100644 --- a/SceneSnap.cpp +++ b/SceneSnap.cpp @@ -262,8 +262,7 @@ Scene::FindSelectedSnapPoint( int nSnap, const Point3d& ptWin, int nW, int nH) // recupero il geo-punto const IGeoPoint3d* pGP = GetGeoPoint3d( pGObj) ; // recupero il punto - Point3d ptP = pGP->GetPoint() ; - ptP.ToGlob( frEnt) ; + Point3d ptP = GetToGlob( pGP->GetPoint(), frEnt) ; if ( VerifySnapPoint( ptP, ptWin, dMinSqDist)) { bFound = true ; m_nLastSnapId = nId ; @@ -276,26 +275,22 @@ Scene::FindSelectedSnapPoint( int nSnap, const Point3d& ptWin, int nW, int nH) // recupero il geo-vettore const IGeoVector3d* pGV = GetGeoVector3d( pGObj) ; // recupero il punto base - Point3d ptP = pGV->GetBase() ; - ptP.ToGlob( frEnt) ; + Point3d ptP = GetToGlob( pGV->GetBase(), frEnt) ; if ( VerifySnapPoint( ptP, ptWin, dMinSqDist)) { bFound = true ; m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pGV->GetVector() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pGV->GetVector(), frEnt) ; } // recupero il punto tip - Point3d ptTip= pGV->GetBase() + pGV->GetVector() ; - ptTip.ToGlob( frEnt) ; + Point3d ptTip = GetToGlob( pGV->GetBase() + pGV->GetVector(), frEnt) ; if ( VerifySnapPoint( ptTip, ptWin, dMinSqDist)) { bFound = true ; m_nLastSnapId = nId ; m_ptLastSnapPnt = ptTip ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pGV->GetVector() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pGV->GetVector(), frEnt) ; } } // se frame @@ -303,8 +298,7 @@ Scene::FindSelectedSnapPoint( int nSnap, const Point3d& ptWin, int nW, int nH) // recupero il geo-frame const IGeoFrame3d* pGF = GetGeoFrame3d( pGObj) ; // recupero l'origine del riferimento - Point3d ptP = pGF->GetFrame().Orig() ; - ptP.ToGlob( frEnt) ; + Point3d ptP = GetToGlob( pGF->GetFrame().Orig(), frEnt) ; if ( VerifySnapPoint( ptP, ptWin, dMinSqDist)) { bFound = true ; m_nLastSnapId = nId ; @@ -631,8 +625,7 @@ Scene::FindSurfTMSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram // porto il punto nel riferimento della superficie ptRef.ToLoc( frEnt) ; // recupero la direzione di mira e la porto nel riferimento della superficie - Vector3d vtDir = - m_vtDirCamera ; - vtDir.ToLoc( frEnt) ; + Vector3d vtDir = GetToLoc( -m_vtDirCamera, frEnt) ; // recupero il raggio del box di ingombro double dBlRad = 1000 ; const ObjEGrGraphics* pGraphics = GetObjEGrGraphics( pStm) ; @@ -662,8 +655,7 @@ Scene::FindSurfTMSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptP ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptP, frEnt) ; m_bLastSnapDirOk = false ; } } @@ -719,11 +711,9 @@ Scene::FindSurfTMSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptEnd ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptEnd, frEnt) ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = vtN ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( vtN, frEnt) ; } } } @@ -749,11 +739,9 @@ Scene::FindSurfTMSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptMid ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptMid, frEnt) ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = vtN ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( vtN, frEnt) ; } } } @@ -777,11 +765,9 @@ Scene::FindSurfTMSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptCen ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptCen, frEnt) ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = vtN ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( vtN, frEnt) ; } } } @@ -799,8 +785,7 @@ Scene::FindSurfTMSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram m_nLastSnapId = nId ; // punto Point3d ptInt = vInfo[0].ptI ; - m_ptLastSnapPnt = ptInt ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptInt, frEnt) ; // direzione Triangle3d Tria ; TriNormals3d Tnorms ; @@ -809,8 +794,7 @@ Scene::FindSurfTMSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram pStm->GetTriangleSmoothNormals( vInfo[0].nT, Tnorms) && CalcNormal( ptInt, Tria, Tnorms, vtNorm)) { m_bLastSnapDirOk = true ; - m_vtLastSnapDir = vtNorm ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( vtNorm, frEnt) ; } else m_bLastSnapDirOk = false ; @@ -841,8 +825,7 @@ Scene::FindSurfFRSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram // porto il punto nel riferimento della superficie ptRef.ToLoc( frEnt) ; // recupero la direzione di mira e la porto nel riferimento della superficie - Vector3d vtDir = - m_vtDirCamera ; - vtDir.ToLoc( frEnt) ; + Vector3d vtDir = GetToLoc( -m_vtDirCamera, frEnt) ; // determino se oggetto trasparente Color cCol ; @@ -862,8 +845,7 @@ Scene::FindSurfFRSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptP ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptP, frEnt) ; m_bLastSnapDirOk = false ; } } @@ -881,8 +863,7 @@ Scene::FindSurfFRSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptP ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptP, frEnt) ; m_bLastSnapDirOk = false ; } } @@ -901,8 +882,7 @@ Scene::FindSurfFRSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fram bFound = true ; dMinSqDist = 0 ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptInt ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptInt, frEnt) ; m_bLastSnapDirOk = false ; } // in tutti gli altri casi @@ -947,8 +927,7 @@ Scene::FindVolZmapSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fra // porto il punto nel riferimento della superficie ptRef.ToLoc( frEnt) ; // recupero la direzione di mira e la porto nel riferimento della superficie - Vector3d vtDir = - m_vtDirCamera ; - vtDir.ToLoc( frEnt) ; + Vector3d vtDir = GetToLoc( -m_vtDirCamera, frEnt) ; // recupero il raggio del box di ingombro double dBlRad = 1000 ; const ObjEGrGraphics* pGraphics = GetObjEGrGraphics( pVzm) ; @@ -978,8 +957,7 @@ Scene::FindVolZmapSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fra bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptP ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptP, frEnt) ; m_bLastSnapDirOk = false ; } } @@ -1028,11 +1006,9 @@ Scene::FindVolZmapSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fra bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = trTria.GetP( nVert) ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( trTria.GetP( nVert), frEnt) ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = trTria.GetN() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( trTria.GetN(), frEnt) ; } } } @@ -1050,11 +1026,9 @@ Scene::FindVolZmapSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fra bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptMid ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptMid, frEnt) ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = trTria.GetN() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( trTria.GetN(), frEnt) ; } } } @@ -1076,11 +1050,9 @@ Scene::FindVolZmapSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fra bFound = true ; dMinSqDist = dSqDist ; m_nLastSnapId = nId ; - m_ptLastSnapPnt = ptCen ; - m_ptLastSnapPnt.ToGlob( frEnt) ; + m_ptLastSnapPnt = GetToGlob( ptCen, frEnt) ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = trTria.GetN() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( trTria.GetN(), frEnt) ; } } } @@ -1095,15 +1067,9 @@ Scene::FindVolZmapSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Fra bFound = true ; dMinSqDist = 0 ; m_nLastSnapId = nId ; - // punto - Point3d ptInt = vInfo[0].ptI ; - m_ptLastSnapPnt = ptInt ; - m_ptLastSnapPnt.ToGlob( frEnt) ; - // direzione - Vector3d vtNorm = vInfo[0].trTria.GetN() ; + m_ptLastSnapPnt = GetToGlob( vInfo[0].ptI, frEnt) ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = vtNorm ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( vInfo[0].trTria.GetN(), frEnt) ; } break ; default : @@ -1135,8 +1101,7 @@ Scene::FindTextSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3 m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pTxt->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pTxt->GetNormVersor(), frEnt) ; } } // punto sopra iniziale @@ -1147,8 +1112,7 @@ Scene::FindTextSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3 m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pTxt->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pTxt->GetNormVersor(), frEnt) ; } } // punto finale @@ -1159,8 +1123,7 @@ Scene::FindTextSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3 m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pTxt->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pTxt->GetNormVersor(), frEnt) ; } } // punto sopra finale @@ -1171,8 +1134,7 @@ Scene::FindTextSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3 m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pTxt->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pTxt->GetNormVersor(), frEnt) ; } } break ; @@ -1185,8 +1147,7 @@ Scene::FindTextSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3 m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pTxt->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pTxt->GetNormVersor(), frEnt) ; } } break ; @@ -1200,8 +1161,7 @@ Scene::FindTextSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3 m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pTxt->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pTxt->GetNormVersor(), frEnt) ; } } break ; @@ -1221,54 +1181,46 @@ Scene::FindDimensionSnapPoint( int nSnap, const Point3d& ptWin, int nId, const F case SP_END : // punto iniziale if ( pDim->IsValid()) { - ptP = pDim->GetStart() ; - ptP.ToGlob( frEnt) ; + ptP = GetToGlob( pDim->GetStart(), frEnt) ; if ( VerifySnapPoint( ptP, ptWin, dMinSqDist)) { bFound = true ; m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pDim->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pDim->GetNormVersor(), frEnt) ; } } // punto sopra iniziale if ( pDim->IsValid()) { - ptP = pDim->GetOverStart() ; - ptP.ToGlob( frEnt) ; + ptP = GetToGlob( pDim->GetOverStart(), frEnt) ; if ( VerifySnapPoint( ptP, ptWin, dMinSqDist)) { bFound = true ; m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pDim->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pDim->GetNormVersor(), frEnt) ; } } // punto finale if ( pDim->IsValid()) { - ptP = pDim->GetEnd() ; - ptP.ToGlob( frEnt) ; + ptP = GetToGlob( pDim->GetEnd(), frEnt) ; if ( VerifySnapPoint( ptP, ptWin, dMinSqDist)) { bFound = true ; m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pDim->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pDim->GetNormVersor(), frEnt) ; } } // punto sopra finale if ( pDim->IsValid()) { - ptP = pDim->GetOverEnd() ; - ptP.ToGlob( frEnt) ; + ptP = GetToGlob( pDim->GetOverEnd(), frEnt) ; if ( VerifySnapPoint( ptP, ptWin, dMinSqDist)) { bFound = true ; m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pDim->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pDim->GetNormVersor(), frEnt) ; } } break ; @@ -1281,8 +1233,7 @@ Scene::FindDimensionSnapPoint( int nSnap, const Point3d& ptWin, int nId, const F m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pDim->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pDim->GetNormVersor(), frEnt) ; } } break ; @@ -1296,8 +1247,7 @@ Scene::FindDimensionSnapPoint( int nSnap, const Point3d& ptWin, int nId, const F m_nLastSnapId = nId ; m_ptLastSnapPnt = ptP ; m_bLastSnapDirOk = true ; - m_vtLastSnapDir = pDim->GetNormVersor() ; - m_vtLastSnapDir.ToGlob( frEnt) ; + m_vtLastSnapDir = GetToGlob( pDim->GetNormVersor(), frEnt) ; } } break ;