EgtGeomKernel 1.6c3 :

- migliorato cambio inizio di curva composita chiusa
- aggiunto cambio inizio di circonferenza.
This commit is contained in:
Dario Sassi
2015-03-16 14:14:59 +00:00
parent 0f157b2112
commit 7f5e98143c
4 changed files with 24 additions and 21 deletions
+21
View File
@@ -1720,6 +1720,27 @@ CurveArc::ChangeDeltaN( double dNewDeltaN)
return Validate() ;
}
//----------------------------------------------------------------------------
bool
CurveArc::ChangeStartPoint( double dU)
{
// la curva deve essere chiusa (ne verifica anche lo stato)
if ( ! IsClosed())
return false ;
// recupero il punto che corrisponde al valore del parametro
Point3d ptP ;
if ( ! GetPointD1D2( dU, ICurve::FROM_MINUS, ptP))
return false ;
// cambio il versore start
Vector3d vtDir = ptP - m_PtCen ;
if ( ! vtDir.Normalize())
return false ;
m_VtS = vtDir ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
return true ;
}
//----------------------------------------------------------------------------
bool
CurveArc::ToAdditional( void)
+1
View File
@@ -155,6 +155,7 @@ class CurveArc : public ICurveArc, public IGeoObjRW
virtual bool InvertN( void) ;
virtual bool ChangeRadius( double dNewRadius) ;
virtual bool ChangeDeltaN( double dNewDeltaN) ;
virtual bool ChangeStartPoint( double dU) ;
virtual bool ExtendedOffset( double dDist, int nType = OFF_FILLET) ;
virtual bool ToAdditional( void) ;
virtual bool Flip( void) ;
+2 -21
View File
@@ -2100,27 +2100,8 @@ CurveComposite::ChangeStartPoint( double dU)
if ( ! IsClosed())
return false ;
// il nuovo inizio è l'estremo di una curva semplice più vicino al parametro ricevuto
int nCurve = static_cast<int> ( dU + 0.5) ;
// verifico ci siano abbastanza curve
if ( nCurve > m_nCounter)
return false ;
// tolgo le curve dalla testa e le inserisco in coda
for ( int i = 0 ; i < nCurve ; ++ i) {
// estraggo la curva dall'inizio
ICurve* pCrv = RemoveFirstOrLastCurve( false) ;
if ( pCrv == nullptr)
return false ;
// la inserisco alla fine
if ( ! AddCurve( pCrv, true)) {
delete pCrv ;
return false ;
}
}
return true ;
// questa funzione gestisce già anche il cambio di inizio su curve chiuse
return TrimStartEndAtParam( dU, dU) ;
}
//----------------------------------------------------------------------------
BIN
View File
Binary file not shown.