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:
+53
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user