EgtExecutor 1.6f3 :

- eliminata ExeCreateCurveCompoByApprox
- le diverse ExeApproxCurve riunite in una sola
- aggiunta ExeMergeCurvesInCurveCompo
- riportate le medesime modifiche in lua.
This commit is contained in:
Dario Sassi
2015-06-21 17:01:26 +00:00
parent 7f9a18849b
commit ff53dcb8e3
8 changed files with 99 additions and 186 deletions
+27 -31
View File
@@ -286,6 +286,27 @@ LuaSplitCurveAtPoint( lua_State* L)
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaApproxCurve( lua_State* L)
{
// 2 o 3 parametri : Id, nApprType [, dLinTol]
int nId ;
LuaCheckParam( L, 1, nId)
int nApprType ;
LuaCheckParam( L, 2, nApprType)
double dLinTol = 0.01 ;
LuaGetParam( L, 3, dLinTol) ;
LuaClearStack( L) ;
// approssimazione della curva con rette
int nNewId = ExeApproxCurve( nId, nApprType, dLinTol) ;
if ( nNewId != GDB_ID_NULL)
LuaSetReturn( L, nNewId) ;
else
LuaSetReturn( L) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaModifyCurveArcRadius( lua_State* L)
@@ -323,7 +344,7 @@ LuaExplodeCurveCompo( lua_State* L)
//-------------------------------------------------------------------------------
static int
LuaApproxCurveArc( lua_State* L)
LuaMergeCurvesInCurveCompo( lua_State* L)
{
// 1 o 2 parametri : Id [, dLinTol]
int nId ;
@@ -331,34 +352,9 @@ LuaApproxCurveArc( lua_State* L)
double dLinTol = 0.01 ;
LuaGetParam( L, 2, dLinTol) ;
LuaClearStack( L) ;
// approssimazione dell'arco con rette
int nNewId = ExeApproxCurveArc( nId, dLinTol) ;
if ( nNewId != GDB_ID_NULL)
LuaSetReturn( L, nNewId) ;
else
LuaSetReturn( L) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaApproxCurveBezier( lua_State* L)
{
// 2 o 3 parametri : Id, nArcsVsLines [, dLinTol]
int nId ;
LuaCheckParam( L, 1, nId)
int nTemp ;
LuaCheckParam( L, 2, nTemp)
bool bArcsVsLines = ( nTemp != 0) ;
double dLinTol = 0.01 ;
LuaGetParam( L, 3, dLinTol) ;
LuaClearStack( L) ;
// approssimazione della curva di Bezier con archi o rette
int nNewId = ExeApproxCurveBezier( nId, bArcsVsLines, dLinTol) ;
if ( nNewId != GDB_ID_NULL)
LuaSetReturn( L, nNewId) ;
else
LuaSetReturn( L) ;
// esplosione della curva composita
bool bOk = ExeMergeCurvesInCurveCompo( nId, dLinTol) ;
LuaSetReturn( L, bOk) ;
return 1 ;
}
@@ -382,9 +378,9 @@ LuaInstallGdbModifyCurve( LuaMgr& luaMgr)
bOk = bOk && luaMgr.RegisterFunction( "EgtTrimExtendCurveByLen", LuaTrimExtendCurveByLen) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtSplitCurve", LuaSplitCurve) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtSplitCurveAtPoint", LuaSplitCurveAtPoint) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtApproxCurve", LuaApproxCurve) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtModifyCurveArcRadius", LuaModifyCurveArcRadius) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtExplodeCurveCompo", LuaExplodeCurveCompo) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtApproxCurveArc", LuaApproxCurveArc) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtApproxCurveBezier", LuaApproxCurveBezier) ;
bOk = bOk && luaMgr.RegisterFunction( "EgtMergeCurvesInCurveCompo", LuaMergeCurvesInCurveCompo) ;
return bOk ;
}