EgtGeomKernel 1.6h3 :

- migliorata approssimazione curve per riconoscimento di tratti rettilinei
- aggiunta CopyMaterial a GeomDB
- correzioni a IntersCurveCurve per le curve approssimate
- aggiunte a Intervals Union, Intersection e Difference
- correzioni a SelfIntersCurve per curve approssimate
- aggiunte funzioni di creazione Regioni (Rectangle, Stadium, Disk e da zuppa di curve)
- migliorie varie a Regioni e introduzione dei componenti connessi (chunk).
This commit is contained in:
Dario Sassi
2015-08-18 07:30:08 +00:00
parent f4b88af3e1
commit bab45eb4f3
28 changed files with 1049 additions and 346 deletions
+53
View File
@@ -2061,6 +2061,59 @@ GeomDB::GetCalcMark( int nId, int& nMark) const
return pGdbObj->GetCalcMark( nMark) ;
}
//----------------------------------------------------------------------------
bool
GeomDB::CopyMaterial( int nIdSou, int nIdDest)
{
// verifico esistenza del sorgente
GdbObj* pGdOSou = GetGdbObj( nIdSou) ;
if ( pGdOSou == nullptr)
return false ;
// verifico esistenza della destinazione
GdbObj* pGdODest = GetGdbObj( nIdDest) ;
if ( pGdODest == nullptr)
return false ;
// recupero l'indice del materiale
int nMat ;
if ( ! pGdOSou->GetMaterial( nMat))
nMat = GDB_MT_PARENT ;
// impostazione
switch ( nMat) {
case GDB_MT_COLOR :
{
Color cCol ;
if ( ! pGdOSou->GetMaterial( cCol))
GetDefaultMaterial( cCol) ;
pGdODest->SetMaterial( cCol) ;
}
break ;
case GDB_MT_PARENT :
// hanno lo stesso padre
if ( pGdOSou->GetParentId() == pGdODest->GetParentId())
pGdODest->SetMaterial( nMat) ;
// altrimenti hanno padre diverso
else {
// recupero indice calcolato
pGdOSou->GetCalcMaterial( nMat) ;
// se diverso da colore, lo posso assegnare direttamente
if ( nMat != GDB_MT_COLOR)
pGdODest->SetMaterial( nMat) ;
// altrimenti devo calcolare il colore e assegnarlo
else {
Color cCol ;
if ( ! pGdOSou->GetCalcMaterial( cCol))
GetDefaultMaterial( cCol) ;
pGdODest->SetMaterial( cCol) ;
}
}
break ;
default :
pGdODest->SetMaterial( nMat) ;
break ;
}
return true ;
}
//----------------------------------------------------------------------------
bool
GeomDB::SetDefaultMaterial( Color cCol)