EgtGeomKernel 1.5f1 :

- aggiunta entità testo (con font Nfe e di sistema)
- in tutte le rotate ora l'angolo è in gradi
- aggiunta trasformazione Shear (scorrimento)
- aggiunta trsformazione LocToLoc
- Set/GetInfo specializzate per i diversi tipi di informazioni
- Copy e Relocate con possibilità di indicare l'entità di riferimento rispetto a cui inserire
- aggiunte trasformazioni a PolyLine.
This commit is contained in:
Dario Sassi
2014-06-03 13:19:54 +00:00
parent a52d73aa7a
commit 41a38fef3b
44 changed files with 3257 additions and 248 deletions
+43
View File
@@ -336,6 +336,49 @@ GdbGroup::Mirror( const Point3d& ptOn, const Vector3d& vtNorm)
return bOk ;
}
//----------------------------------------------------------------------------
bool
GdbGroup::Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff)
{
GdbObj* pGdbObj ;
// parziale scorrimento del riferimento (non può essere completa)
Frame3d frFrameS = m_gfrFrame.GetFrame() ;
frFrameS.PseudoShear( ptOn, vtNorm, vtDir, dCoeff) ;
// porto gli oggetti nel nuovo riferimento, senza modificarne la geometria in globale
Frame3d frTrasf = m_gfrFrame.GetFrame() ;
frTrasf.ToLoc( frFrameS) ;
pGdbObj = GetFirstObj() ;
while ( pGdbObj != nullptr) {
pGdbObj->ToGlob( frTrasf) ;
pGdbObj = pGdbObj->GetNext() ;
}
// assegno il nuovo riferimento
m_gfrFrame.Set( frFrameS) ;
// porto i dati di scorrimento nel riferimento del gruppo
Point3d ptOnLoc = ptOn ;
ptOnLoc.ToLoc( m_gfrFrame.GetFrame()) ;
Vector3d vtNormLoc = vtNorm ;
vtNormLoc.ToLoc( m_gfrFrame.GetFrame()) ;
Vector3d vtDirLoc = vtDir ;
vtDirLoc.ToLoc( m_gfrFrame.GetFrame()) ;
// ciclo sugli oggetti
bool bOk = true ;
pGdbObj = GetFirstObj() ;
while ( pGdbObj != nullptr) {
if ( ! pGdbObj->Shear( ptOnLoc, vtNormLoc, vtDirLoc, dCoeff))
bOk = false ;
pGdbObj = pGdbObj->GetNext() ;
}
return bOk ;
}
//----------------------------------------------------------------------------
bool
GdbGroup::OnSetMaterial( void)