EgtGeomKernel 1.6h2 :
- aggiunte Regioni (SurfFlatRegion) e prime funzionalità relative - corretti Intervals per Add - corretta CalcPointParamPosiz per archi che in realtà sono circonferenze.
This commit is contained in:
+10
-12
@@ -36,7 +36,7 @@ GEOOBJ_REGISTER( CRV_COMPO, NGE_C_CMP, CurveComposite) ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
CurveComposite::CurveComposite( void)
|
||||
: m_nStatus( TO_VERIFY), m_VtExtr(), m_dThick(), m_nTempProp()
|
||||
: m_nStatus( TO_VERIFY), m_VtExtr(), m_dThick(), m_nTempProp(), m_Iter( m_CrvSmplS.end())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -51,16 +51,15 @@ bool
|
||||
CurveComposite::Clear( void)
|
||||
{
|
||||
// ciclo di pulizia
|
||||
PCSD_ITER Iter ;
|
||||
for ( Iter = m_CrvSmplS.begin() ; Iter != m_CrvSmplS.end() ; ++Iter)
|
||||
for ( auto Iter = m_CrvSmplS.begin() ; Iter != m_CrvSmplS.end() ; ++Iter)
|
||||
delete (*Iter) ;
|
||||
|
||||
m_CrvSmplS.clear() ;
|
||||
|
||||
m_nStatus = TO_VERIFY ;
|
||||
m_VtExtr = V_NULL ;
|
||||
m_dThick = 0 ;
|
||||
m_nTempProp = 0 ;
|
||||
m_Iter = m_CrvSmplS.end() ;
|
||||
|
||||
// imposto ricalcolo della grafica
|
||||
m_OGrMgr.Reset() ;
|
||||
@@ -75,7 +74,7 @@ CurveComposite::AddCurve( const ICurve& cCrv, bool bEndOrStart, double dLinTol)
|
||||
// se curva semplice
|
||||
if ( cCrv.IsSimple()) {
|
||||
// creo una copia della curva
|
||||
ICurve* pSmplCrv = ::GetCurve( cCrv.Clone()) ;
|
||||
ICurve* pSmplCrv = cCrv.Clone() ;
|
||||
if ( pSmplCrv == nullptr)
|
||||
return false ;
|
||||
// inserisco la curva
|
||||
@@ -94,7 +93,7 @@ CurveComposite::AddCurve( const ICurve& cCrv, bool bEndOrStart, double dLinTol)
|
||||
pCrvOri = ( bEndOrStart ? pCrvCompo->GetFirstCurve() : pCrvCompo->GetLastCurve()) ;
|
||||
while ( pCrvOri != nullptr) {
|
||||
// creo una copia della curva
|
||||
pSmplCrv = ::GetCurve( pCrvOri->Clone()) ;
|
||||
pSmplCrv = pCrvOri->Clone() ;
|
||||
if ( pSmplCrv == nullptr)
|
||||
return false ;
|
||||
// inserisco la curva
|
||||
@@ -285,7 +284,7 @@ CurveComposite::FromSplit( const ICurve& cCrv, int nParts)
|
||||
for ( int i = 1 ; i <= nParts ; ++ i) {
|
||||
dStartLen = dEndLen ;
|
||||
dEndLen = dTotLen * i / (double) nParts ;
|
||||
PtrOwner<ICurve> pSmplCrv( ::GetCurve( cCrv.Clone())) ;
|
||||
PtrOwner<ICurve> pSmplCrv( cCrv.Clone()) ;
|
||||
if ( IsNull( pSmplCrv))
|
||||
return false ;
|
||||
if ( ! pSmplCrv->TrimEndAtLen( dEndLen) ||
|
||||
@@ -535,9 +534,8 @@ CurveComposite::CopyFrom( const CurveComposite& ccSrc)
|
||||
m_VtExtr = ccSrc.m_VtExtr ;
|
||||
m_dThick = ccSrc.m_dThick ;
|
||||
m_nTempProp = ccSrc.m_nTempProp ;
|
||||
PCSD_CONST_ITER Iter ;
|
||||
for ( Iter = ccSrc.m_CrvSmplS.begin() ; Iter != ccSrc.m_CrvSmplS.end() ; ++Iter) {
|
||||
if ( ! AddCurve( **Iter))
|
||||
for ( auto& pCrv : ccSrc.m_CrvSmplS) {
|
||||
if ( ! AddCurve( *pCrv))
|
||||
return false ;
|
||||
}
|
||||
return true ;
|
||||
@@ -620,7 +618,7 @@ CurveComposite::Save( NgeWriter& ngeOut) const
|
||||
int i = 0 ;
|
||||
const ICurve* pCrvSmpl = GetFirstCurve() ;
|
||||
while ( pCrvSmpl != nullptr) {
|
||||
// recupero il gestore di lettura/scrittura delle curve
|
||||
// recupero il gestore di lettura/scrittura della curva
|
||||
const IGeoObjRW* pCSmplRW = dynamic_cast<const IGeoObjRW*>( pCrvSmpl) ;
|
||||
if ( pCSmplRW == nullptr)
|
||||
return false ;
|
||||
@@ -2110,7 +2108,7 @@ CurveComposite::GetPrevCurve( void) const
|
||||
return nullptr ;
|
||||
|
||||
// vado al precedente
|
||||
if ( m_Iter == m_CrvSmplS.begin())
|
||||
if ( m_Iter == m_CrvSmplS.begin() || m_Iter == m_CrvSmplS.end())
|
||||
return nullptr ;
|
||||
-- m_Iter ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user