EgtInterface 1.6d2 :

- in Lua in tutte le operazioni con creazione di più entità restituisco Id prima e numero
- in Lua aggiunto oggetto BBox3d (non ancora con tutte le funzionalità)
- in Lua aggiunta creazione superficie da BBox3d
- in Lua aggiunte funzioni per avere BBox3d di oggetti
- in Lua aggiunta OutBox
- in Lua aggiunte funzioni per MachMgr.
This commit is contained in:
Dario Sassi
2015-04-16 06:55:49 +00:00
parent 432a805f4e
commit fd718143e6
22 changed files with 1335 additions and 207 deletions
+96 -35
View File
@@ -158,12 +158,8 @@ EgtGetFirstNameInGroup( int nGroupId, const string& sName)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// recupero il primo oggetto nel gruppo
int nFirstId = pGeomDB->GetFirstInGroup( nGroupId) ;
string sObjName ;
if ( pGeomDB->GetName( nFirstId, sObjName) && sObjName == sName)
return nFirstId ;
return EgtGetNextName( nFirstId, sName) ;
// recupero il primo oggetto con il nome desiderato nel gruppo
return pGeomDB->GetFirstNameInGroup( nGroupId, sName) ;
}
//-----------------------------------------------------------------------------
@@ -173,53 +169,118 @@ EgtGetNextName( int nId, const string& sName)
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// recupero il prossimo oggetto nello stesso gruppo con il nome voluto
int nNextId = nId ;
while ( ( nNextId = pGeomDB->GetNext( nNextId)) != GDB_ID_NULL) {
string sObjName ;
if ( pGeomDB->GetName( nNextId, sObjName) && sObjName == sName)
return nNextId ;
}
return GDB_ID_NULL ;
return pGeomDB->GetNextName( nId, sName) ;
}
//-----------------------------------------------------------------------------
int
EgtGetLastNameInGroup( int nGroupId, const string& sName)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// recupero l'ultimo oggetto con il nome desiderato nel gruppo
return pGeomDB->GetLastNameInGroup( nGroupId, sName) ;
}
//-----------------------------------------------------------------------------
int
EgtGetPrevName( int nId, const string& sName)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// recupero il precedente oggetto nello stesso gruppo con il nome voluto
return pGeomDB->GetPrevName( nId, sName) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtGetBBox( int nId, int nFlag, double ptMin[3], double ptMax[3])
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// recupero il bounding box locale dell'oggetto
BBox3d b3Loc ;
if ( ! pGeomDB->GetLocalBBox( nId, b3Loc, nFlag))
// recupero il bounding box dell'oggetto in locale
BBox3d b3Box ;
if ( ! EgtGetBBox( nId, nFlag, b3Box))
return FALSE ;
ptMin[0] = b3Loc.GetMin().x ;
ptMin[1] = b3Loc.GetMin().y ;
ptMin[2] = b3Loc.GetMin().z ;
ptMax[0] = b3Loc.GetMax().x ;
ptMax[1] = b3Loc.GetMax().y ;
ptMax[2] = b3Loc.GetMax().z ;
ptMin[0] = b3Box.GetMin().x ;
ptMin[1] = b3Box.GetMin().y ;
ptMin[2] = b3Box.GetMin().z ;
ptMax[0] = b3Box.GetMax().x ;
ptMax[1] = b3Box.GetMax().y ;
ptMax[2] = b3Box.GetMax().z ;
return TRUE ;
}
//-----------------------------------------------------------------------------
bool
EgtGetBBox( int nId, int nFlag, BBox3d& b3Box)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
// recupero il bounding box dell'oggetto in locale
return pGeomDB->GetLocalBBox( nId, b3Box, nFlag) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtGetBBoxGlob( int nId, int nFlag, double ptMin[3], double ptMax[3])
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// recupero il bounding box globale dell'oggetto
BBox3d b3Loc ;
if ( ! pGeomDB->GetGlobalBBox( nId, b3Loc, nFlag))
// recupero il bounding box dell'oggetto in globale
BBox3d b3Box ;
if ( ! EgtGetBBoxGlob( nId, nFlag, b3Box))
return FALSE ;
ptMin[0] = b3Loc.GetMin().x ;
ptMin[1] = b3Loc.GetMin().y ;
ptMin[2] = b3Loc.GetMin().z ;
ptMax[0] = b3Loc.GetMax().x ;
ptMax[1] = b3Loc.GetMax().y ;
ptMax[2] = b3Loc.GetMax().z ;
// converto il risultato
ptMin[0] = b3Box.GetMin().x ;
ptMin[1] = b3Box.GetMin().y ;
ptMin[2] = b3Box.GetMin().z ;
ptMax[0] = b3Box.GetMax().x ;
ptMax[1] = b3Box.GetMax().y ;
ptMax[2] = b3Box.GetMax().z ;
return TRUE ;
}
//-----------------------------------------------------------------------------
bool
EgtGetBBoxGlob( int nId, int nFlag, BBox3d& b3Box)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
// recupero il bounding box dell'oggetto in globale
return pGeomDB->GetGlobalBBox( nId, b3Box, nFlag) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtGetBBoxRef( int nId, int nFlag, const double ptOrig[3],
const double vtX[3], const double vtY[3], const double vtZ[3],
double ptMin[3], double ptMax[3])
{
// calcolo il riferimento
Frame3d frRef ;
if ( ! frRef.Set( ptOrig, vtX, vtY, vtZ))
return FALSE ;
// recupero il bounding box dell'oggetto nel riferimento
BBox3d b3Box ;
if ( ! EgtGetBBoxRef( nId, nFlag, frRef, b3Box))
return FALSE ;
// converto il risultato
ptMin[0] = b3Box.GetMin().x ;
ptMin[1] = b3Box.GetMin().y ;
ptMin[2] = b3Box.GetMin().z ;
ptMax[0] = b3Box.GetMax().x ;
ptMax[1] = b3Box.GetMax().y ;
ptMax[2] = b3Box.GetMax().z ;
return TRUE ;
}
//-----------------------------------------------------------------------------
bool
EgtGetBBoxRef( int nId, int nFlag, const Frame3d& frRef, BBox3d& b3Box)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
// recupero il bounding box dell'oggetto nel riferimento
return pGeomDB->GetRefBBox( nId, frRef, b3Box, nFlag) ;
}
//-----------------------------------------------------------------------------
int
__stdcall EgtCopy( int nSouId, int nRefId, int nSonBeforeAfter)