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