EgtInterface 1.6a4 :
- completamento modifiche per registrazione comandi in lua e per gestione RefType e RefId.
This commit is contained in:
+27
-39
@@ -16,6 +16,7 @@
|
||||
#include "LUA.h"
|
||||
#include "API.h"
|
||||
#include "/EgtDev/Include/EInAPI.h"
|
||||
#include "/EgtDev/Include/EInConst.h"
|
||||
#include "/EgtDev/Include/EGkCurve.h"
|
||||
#include "/EgtDev/Extern/Lua/Include/lua.hpp"
|
||||
|
||||
@@ -69,14 +70,16 @@ LuaOffsetCurve( lua_State* L)
|
||||
static int
|
||||
LuaModifyCurveStartPoint( lua_State* L)
|
||||
{
|
||||
// 2 parametri : Id, NewStart
|
||||
// 2 o 3 parametri : Id, NewStart [, sRefType]
|
||||
int nId ;
|
||||
LuaCheckParam( L, 1, nId)
|
||||
Point3d ptStart ;
|
||||
LuaCheckParam( L, 2, ptStart)
|
||||
int nRefType = RTY_DEFAULT ;
|
||||
LuaGetRefType( L, 3, nRefType) ;
|
||||
LuaClearStack( L) ;
|
||||
// modifico il punto iniziale
|
||||
bool bOk = ( EgtModifyCurveStartPoint( nId, ptStart.v) ? true : false) ;
|
||||
bool bOk = ( EgtModifyCurveStartPoint( nId, ptStart.v, nRefType) != FALSE) ;
|
||||
LuaSetReturn( L, bOk) ;
|
||||
return 1 ;
|
||||
}
|
||||
@@ -85,14 +88,16 @@ LuaModifyCurveStartPoint( lua_State* L)
|
||||
static int
|
||||
LuaModifyCurveEndPoint( lua_State* L)
|
||||
{
|
||||
// 2 parametri : Id, NewEnd
|
||||
// 2 o 3 parametri : Id, NewEnd [, sRefType]
|
||||
int nId ;
|
||||
LuaCheckParam( L, 1, nId)
|
||||
Point3d ptEnd ;
|
||||
LuaCheckParam( L, 2, ptEnd)
|
||||
int nRefType = RTY_DEFAULT ;
|
||||
LuaGetRefType( L, 3, nRefType) ;
|
||||
LuaClearStack( L) ;
|
||||
// modifico il punto finale
|
||||
bool bOk = ( EgtModifyCurveEndPoint( nId, ptEnd.v) != FALSE) ;
|
||||
bool bOk = ( EgtModifyCurveEndPoint( nId, ptEnd.v, nRefType) != FALSE) ;
|
||||
LuaSetReturn( L, bOk) ;
|
||||
return 1 ;
|
||||
}
|
||||
@@ -101,37 +106,16 @@ LuaModifyCurveEndPoint( lua_State* L)
|
||||
static int
|
||||
LuaModifyCurveExtrusion( lua_State* L)
|
||||
{
|
||||
// 2 parametri : Id/s, vtExtr
|
||||
// 2 o 3 parametri : Id/s, vtExtr [, sRefType]
|
||||
INTVECTOR vId ;
|
||||
LuaCheckParam( L, 1, vId)
|
||||
Vector3d vtExtr ;
|
||||
LuaCheckParam( L, 2, vtExtr)
|
||||
int nRefType = RTY_DEFAULT ;
|
||||
LuaGetRefType( L, 3, nRefType) ;
|
||||
LuaClearStack( L) ;
|
||||
// modifico il vettore estrusione
|
||||
bool bOk = true ;
|
||||
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
|
||||
if ( EgtModifyCurveExtrusion( vId[i], vtExtr.v) == FALSE)
|
||||
bOk = false ;
|
||||
}
|
||||
// restituisco il risultato
|
||||
LuaSetReturn( L, bOk) ;
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static int
|
||||
LuaSetCurveExtrusionFromGrid( lua_State* L)
|
||||
{
|
||||
// 1 parametro : Id/s
|
||||
INTVECTOR vId ;
|
||||
LuaCheckParam( L, 1, vId)
|
||||
LuaClearStack( L) ;
|
||||
// modifico il vettore estrusione
|
||||
bool bOk = true ;
|
||||
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
|
||||
if ( EgtSetCurveExtrusionFromGrid( vId[i]) == FALSE)
|
||||
bOk = false ;
|
||||
}
|
||||
bool bOk = EgtModifyCurveExtrusion( vId, vtExtr, nRefType) ;
|
||||
// restituisco il risultato
|
||||
LuaSetReturn( L, bOk) ;
|
||||
return 1 ;
|
||||
@@ -244,16 +228,18 @@ LuaTrimCurveStartEndAtParam( lua_State* L)
|
||||
static int
|
||||
LuaTrimExtendCurveByLen( lua_State* L)
|
||||
{
|
||||
// 3 parametri : Id, dLen, ptNear
|
||||
// 3 o 4 parametri : Id, dLen, ptNear [, sRefType]
|
||||
int nId ;
|
||||
LuaCheckParam( L, 1, nId)
|
||||
double dLen ;
|
||||
LuaCheckParam( L, 2, dLen)
|
||||
Point3d ptNear ;
|
||||
LuaCheckParam( L, 3, ptNear)
|
||||
int nRefType = RTY_DEFAULT ;
|
||||
LuaGetRefType( L, 4, nRefType) ;
|
||||
LuaClearStack( L) ;
|
||||
// taglio o allungo la curva nell'estremo più vicino al punto
|
||||
bool bOk = ( EgtTrimExtendCurveByLen( nId, dLen, ptNear.v) != FALSE) ;
|
||||
bool bOk = ( EgtTrimExtendCurveByLen( nId, dLen, ptNear.v, nRefType) != FALSE) ;
|
||||
LuaSetReturn( L, bOk) ;
|
||||
return 1 ;
|
||||
}
|
||||
@@ -262,14 +248,16 @@ LuaTrimExtendCurveByLen( lua_State* L)
|
||||
static int
|
||||
LuaSplitCurveAtPoint( lua_State* L)
|
||||
{
|
||||
// 2 parametri : Id, ptOn
|
||||
// 2 o 3 parametri : Id, ptOn [, sRefType]
|
||||
int nId ;
|
||||
LuaCheckParam( L, 1, nId)
|
||||
Point3d ptOn ;
|
||||
LuaCheckParam( L, 2, ptOn)
|
||||
int nRefType = RTY_DEFAULT ;
|
||||
LuaGetRefType( L, 3, nRefType) ;
|
||||
LuaClearStack( L) ;
|
||||
// divido la curva nel punto
|
||||
bool bOk = ( EgtSplitCurveAtPoint( nId, ptOn.v) != FALSE) ;
|
||||
bool bOk = ( EgtSplitCurveAtPoint( nId, ptOn.v, nRefType) != FALSE) ;
|
||||
LuaSetReturn( L, bOk) ;
|
||||
return 1 ;
|
||||
}
|
||||
@@ -308,16 +296,17 @@ LuaExplodeCurveCompo( lua_State* L)
|
||||
static int
|
||||
LuaExplodeCurveBezier( lua_State* L)
|
||||
{
|
||||
// 3 parametri : Id, dLinTol, bArcsVsLines
|
||||
// 2 o 3 parametri : Id, bArcsVsLines [, dLinTol]
|
||||
int nId ;
|
||||
LuaCheckParam( L, 1, nId)
|
||||
double dLinTol ;
|
||||
LuaCheckParam( L, 2, dLinTol)
|
||||
bool bArcsVsLines ;
|
||||
LuaCheckParam( L, 3, bArcsVsLines)
|
||||
LuaCheckParam( L, 2, bArcsVsLines)
|
||||
double dLinTol = 0.01 ;
|
||||
if ( lua_gettop( L) >= 3)
|
||||
LuaCheckParam( L, 3, dLinTol)
|
||||
LuaClearStack( L) ;
|
||||
// esplosione della curva composita
|
||||
bool bOk = ( EgtExplodeCurveBezier( nId, dLinTol, bArcsVsLines) != FALSE) ;
|
||||
bool bOk = ( EgtExplodeCurveBezier( nId, bArcsVsLines, dLinTol) != FALSE) ;
|
||||
LuaSetReturn( L, bOk) ;
|
||||
return 1 ;
|
||||
}
|
||||
@@ -332,7 +321,6 @@ LuaInstallGdbModifyCurve( lua_State* L)
|
||||
lua_register( L, "EgtModifyCurveStartPoint", LuaModifyCurveStartPoint) ;
|
||||
lua_register( L, "EgtModifyCurveEndPoint", LuaModifyCurveEndPoint) ;
|
||||
lua_register( L, "EgtModifyCurveExtrusion", LuaModifyCurveExtrusion) ;
|
||||
lua_register( L, "EgtSetCurveExtrusionFromGrid", LuaSetCurveExtrusionFromGrid) ;
|
||||
lua_register( L, "EgtModifyCurveThickness", LuaModifyCurveThickness) ;
|
||||
lua_register( L, "EgtTrimCurveStartAtLen", LuaTrimCurveStartAtLen) ;
|
||||
lua_register( L, "EgtTrimCurveEndAtLen", LuaTrimCurveEndAtLen) ;
|
||||
|
||||
Reference in New Issue
Block a user