EgtGeomKernel 1.6w1 :

- modifiche e correzioni varie sugli Zmap.
This commit is contained in:
Dario Sassi
2016-11-07 07:57:38 +00:00
parent a5732e46c9
commit 52a09392c1
14 changed files with 9878 additions and 10383 deletions
+26 -65
View File
@@ -2575,14 +2575,6 @@ GdbExecutor::ExecuteVolZmap(const string& sCmd2, const STRVECTOR& vsParams)
if ( sCmd2 == "") {
return VolZmapCreate( vsParams) ;
}
// se sottrazione intervalli
else if ( sCmd2 == "SUB") {
return VolZmapIntervalsSubtraction( vsParams) ;
}
// se addizione intervalli
else if ( sCmd2 == "ADD") {
return VolZmapIntervalsAddiction( vsParams) ;
}
// se lavorazione
else if ( sCmd2 == "MIL") {
return VolZmapMilling( vsParams) ;
@@ -2607,6 +2599,10 @@ GdbExecutor::ExecuteVolZmap(const string& sCmd2, const STRVECTOR& vsParams)
else if ( sCmd2 == "FLATZMAP") {
return VolZmapCreateFromFlatRegion( vsParams) ;
}
// se creazione zmap da trimesh
else if ( sCmd2 == "TRIMESHZMAP") {
return VolZmapCreateFromTriMesh( vsParams) ;
}
return false ;
}
@@ -2643,7 +2639,7 @@ GdbExecutor::VolZmapCreate( const STRVECTOR& vsParams)
return false ;
PtrOwner<VolZmap> pZprova( new VolZmap) ;
pZprova->CreateMap( ptO, dLengthX, dLengthY, dLengthZ, dPrec);
pZprova->Create( ptO, dLengthX, dLengthY, dLengthZ, dPrec);
// inserisco nel DB
return AddGeoObj(vsParams[0], vsParams[1], Release( pZprova)) ;
@@ -2676,74 +2672,39 @@ GdbExecutor::VolZmapCreateFromFlatRegion( const STRVECTOR& vsParams)
return false ;
// creo Zmap
PtrOwner<VolZmap> pZprova( new VolZmap) ;
pZprova->CreateMapFromFlatRegion( *pRegion, dLengthZ, dPrec);
pZprova->CreateFromFlatRegion( *pRegion, dLengthZ, dPrec);
// inserisco nel DB
return AddGeoObj(vsParams[0], vsParams[1], Release( pZprova)) ;
}
//----------------------------------------------------------------------------
bool
GdbExecutor::VolZmapIntervalsSubtraction( const STRVECTOR& vsParams)
{
// parametri : Id, IdParent, ptP, dMin, dMax
if ( vsParams.size() != 5)
return false ;
// recupero il riferimento in cui è immerso
Frame3d frRef ;
if ( ! m_pGDB->GetGroupGlobFrame( GetIdParam( vsParams[1]), frRef))
return false ;
// recupero punto
Point3d ptP ;
if ( ! GetPointParam( vsParams[2], frRef, ptP))
return false ;
// recupero minimo
double dMin ;
if ( ! FromString( vsParams[3], dMin))
return false ;
// recupero massimo
double dMax ;
if ( ! FromString( vsParams[4], dMax))
return false ;
// recupero lo Zmap
int nIdZmap = GetIdParam( vsParams[0]) ;
VolZmap* pZmap = GetBasicVolZmap( m_pGDB->GetGeoObj( nIdZmap)) ;
if ( pZmap == nullptr)
return false ;
// eseguo la sottrazione
return pZmap->SubtractIntervals( ptP, dMin, dMax) ;
}
//----------------------------------------------------------------------------
bool
GdbExecutor::VolZmapIntervalsAddiction( const STRVECTOR& vsParams)
GdbExecutor::VolZmapCreateFromTriMesh( const STRVECTOR& vsParams)
{
// parametri : Id, IdParent, ptP, dMin, dMax
if ( vsParams.size() != 5)
// parametri : Id, IdParent, idSurf, dPrec
if ( vsParams.size() != 4)
return false ;
// recupero il riferimento in cui è immerso
// recupero il riferimento in cui è immerso
Frame3d frRef ;
if ( ! m_pGDB->GetGroupGlobFrame( GetIdParam( vsParams[1]), frRef))
return false ;
// recupero punto
Point3d ptP ;
if ( ! GetPointParam( vsParams[2], frRef, ptP))
return false ;
// recupero minimo
double dMin ;
if ( ! FromString( vsParams[3], dMin))
// recupero id flatregion
int nIdSurf = GetIdParam( vsParams[2]) ;
// recupero precisione
double dPrec ;
if ( ! FromString( vsParams[3], dPrec))
return false ;
// recupero massimo
double dMax ;
if ( ! FromString( vsParams[4], dMax))
// recupero puntatore a Trimesh
SurfTriMesh* pSurf = GetBasicSurfTriMesh( m_pGDB->GetGeoObj( nIdSurf)) ;
if ( pSurf == nullptr)
return false ;
// recupero lo Zmap
int nIdZmap = GetIdParam( vsParams[0]) ;
VolZmap* pZmap = GetBasicVolZmap( m_pGDB->GetGeoObj( nIdZmap)) ;
if ( pZmap == nullptr)
return false ;
// eseguo l'addizione
return pZmap->AddIntervals( ptP, dMin, dMax) ;
// creo Zmap
PtrOwner<VolZmap> pZprova( new VolZmap) ;
pZprova->CreateFromTriMesh( * pSurf, dPrec);
// inserisco nel DB
return AddGeoObj(vsParams[0], vsParams[1], Release( pZprova)) ;
}
//----------------------------------------------------------------------------
@@ -2880,7 +2841,7 @@ bool GdbExecutor::VolZmapDeepnessMeasure( const STRVECTOR& vsParams) {
double dIn, dOut ;
pZmap -> Deepness( ptP, vtDir, dIn, dOut) ;
pZmap->GetDepth( ptP, vtDir, dIn, dOut) ;
return true ;
}
@@ -2925,7 +2886,7 @@ GdbExecutor::VolZmapBBoxZmapIntersection( const STRVECTOR& vsParams)
return false ;
bool bInt ;
bInt = pZmap -> BBoxZmapIntersection( frBBoxFrame, ptEnd) ;
bInt = ! pZmap->AvoidBox( frBBoxFrame, ptEnd - ORIG) ;
return true ;
}