EgtExecutor 1.6t4 :

- aggiunta ExeGetGlobFrame
- migliorati controlli validità curve in GeoSnap
- aggiunte a Lua EgtGetGlobFrame e EgtGetGroupGlobFrame.
This commit is contained in:
Dario Sassi
2016-08-29 07:34:34 +00:00
parent 4de59fbd33
commit baf67d3e9f
4 changed files with 53 additions and 11 deletions
+11 -1
View File
@@ -44,13 +44,23 @@ ExeGetParent( int nId)
return pGeomDB->GetParentId( nId) ;
}
//-----------------------------------------------------------------------------
bool
ExeGetGlobFrame( int nId, Frame3d& frGlob)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
// recupero il riferimento globale in cui è immerso l'oggetto
return pGeomDB->GetGlobFrame( nId, frGlob) ;
}
//-----------------------------------------------------------------------------
bool
ExeGetGroupGlobFrame( int nId, Frame3d& frGlob)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
// recupero il riferimento globale del gruppo
// recupero il riferimento globale del gruppo (in cui sono immersi i suoi oggetti figli)
return pGeomDB->GetGroupGlobFrame( nId, frGlob) ;
}
+6 -10
View File
@@ -510,10 +510,8 @@ ExeCurveDomain( int nId, double* pdStart, double* pdEnd)
return false ;
// recupero la curva
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
if ( pCurve == nullptr)
return false ;
// recupero il dominio
return pCurve->GetDomain( *pdStart, *pdEnd) ;
return ( pCurve != nullptr && pCurve->GetDomain( *pdStart, *pdEnd)) ;
}
//----------------------------------------------------------------------------
@@ -527,10 +525,8 @@ ExeCurveLength( int nId, double* pdLen)
return false ;
// recupero la curva
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
if ( pCurve == nullptr)
return false ;
// recupero la lunghezza
return pCurve->GetLength( *pdLen) ;
return ( pCurve != nullptr && pCurve->GetLength( *pdLen)) ;
}
//----------------------------------------------------------------------------
@@ -586,7 +582,7 @@ ExeCurveIsClosed( int nId)
// recupero la curva
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
// verifico se chiusa
return pCurve->IsClosed() ;
return ( pCurve != nullptr && pCurve->IsClosed()) ;
}
//----------------------------------------------------------------------------
@@ -601,7 +597,7 @@ ExeCurveIsFlat( int nId, Plane3d& Plane)
// recupero la curva
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
// ne verifico la planarità
return pCurve->IsFlat( Plane) ;
return ( pCurve != nullptr && pCurve->IsFlat( Plane)) ;
}
//----------------------------------------------------------------------------
@@ -616,7 +612,7 @@ ExeCurveAreaXY( int nId, double& dArea)
// recupero la curva
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
// determino l'area nel piano XY
return pCurve->GetAreaXY( dArea) ;
return ( pCurve != nullptr && pCurve->GetAreaXY( dArea)) ;
}
//----------------------------------------------------------------------------
@@ -631,7 +627,7 @@ ExeCurveArea( int nId, Plane3d& Plane, double& dArea)
// recupero la curva
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
// determino il piano medio della curva e la sua area su di esso (deve essere chiusa)
return pCurve->GetArea( Plane, dArea) ;
return ( pCurve != nullptr && pCurve->GetArea( Plane, dArea)) ;
}
//----------------------------------------------------------------------------
BIN
View File
Binary file not shown.
+36
View File
@@ -68,6 +68,40 @@ LuaGetType( lua_State* L)
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaGetGlobFrame( lua_State* L)
{
// 1 parametro : Id
int nId = GDB_ID_NULL ;
LuaGetParam( L, 1, nId) ;
LuaClearStack( L) ;
// recupero il frame
Frame3d frFrame ;
if ( ExeGetGlobFrame( nId, frFrame))
LuaSetParam( L, frFrame) ;
else
LuaSetParam( L) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaGetGroupGlobFrame( lua_State* L)
{
// 1 parametro : Id
int nId = GDB_ID_NULL ;
LuaGetParam( L, 1, nId) ;
LuaClearStack( L) ;
// recupero il frame
Frame3d frFrame ;
if ( ExeGetGroupGlobFrame( nId, frFrame))
LuaSetParam( L, frFrame) ;
else
LuaSetParam( L) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaGetGroupObjs( lua_State* L)
@@ -525,6 +559,8 @@ LuaInstallGdbObjects( LuaMgr& luaMgr)
bOk = bOk && luaMgr.RegisterFunction( "EgtExistsObj", LuaExistsObj) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtGetParent", LuaGetParent) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtGetType", LuaGetType) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtGetGlobFrame", LuaGetGlobFrame) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtGetGroupGlobFrame", LuaGetGroupGlobFrame) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtGetGroupObjs", LuaGetGroupObjs) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtGetFirstInGroup", LuaGetFirstInGroup) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtGetNext", LuaGetNext) ;