EgtGraphics :

- modifiche per sfruttare nuove funzioni di conversione tra riferimenti per Vector3d e Point3d.
This commit is contained in:
DarioS
2022-08-23 11:41:56 +02:00
parent 5e317faba6
commit 7cf97007df
4 changed files with 72 additions and 148 deletions
+46 -96
View File
@@ -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 ;