EgtInterface 1.6a4 :

- completamento modifiche per registrazione comandi in lua e per gestione RefType e RefId.
This commit is contained in:
Dario Sassi
2015-01-26 07:53:04 +00:00
parent 4e5a81c493
commit a45c3fca8a
25 changed files with 1574 additions and 1254 deletions
+96 -258
View File
@@ -16,70 +16,26 @@
#include "LUA.h"
#include "API.h"
#include "/EgtDev/Include/EInAPI.h"
#include "/EgtDev/Include/EInConst.h"
#include "/EgtDev/Include/EgnStringUtils.h"
#include "/EgtDev/Extern/Lua/Include/lua.hpp"
using namespace std ;
//-------------------------------------------------------------------------------
static int
LuaMove( lua_State* L)
{
// 2 parametri : Id/s, VtMove
// 2 o 3 parametri : Id/s, VtMove [, sRefType]
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Vector3d vtMove ;
LuaCheckParam( L, 2, vtMove)
int nRefType = RTY_DEFAULT ;
LuaGetRefType( L, 3, nRefType) ;
LuaClearStack( L) ;
// eseguo traslazione
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtMove( vId[i], vtMove.v))
bOk = false ;
}
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaMoveGlob( lua_State* L)
{
// 2 parametri : Id/s, VtMove
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Vector3d vtMove ;
LuaCheckParam( L, 2, vtMove)
LuaClearStack( L) ;
// eseguo traslazione
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtMoveGlob( vId[i], vtMove.v))
bOk = false ;
}
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaMoveGroup( lua_State* L)
{
// 2 parametri : Id/s, VtMove
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Vector3d vtMove ;
LuaCheckParam( L, 2, vtMove)
LuaClearStack( L) ;
// eseguo traslazione
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtMoveGroup( vId[i], vtMove.v))
bOk = false ;
}
bool bOk = EgtMove( vId, vtMove, nRefType) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
@@ -89,7 +45,7 @@ LuaMoveGroup( lua_State* L)
static int
LuaRotate( lua_State* L)
{
// 4 parametri : Id/s, PtAx, VtAx, dAngRotDeg
// 4 o 5 parametri : Id/s, PtAx, VtAx, dAngRotDeg [, sRefType]
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Point3d ptAx ;
@@ -98,63 +54,11 @@ LuaRotate( lua_State* L)
LuaCheckParam( L, 3, vtAx)
double dAngRotDeg ;
LuaCheckParam( L, 4, dAngRotDeg)
int nRefType = RTY_DEFAULT ;
LuaGetRefType( L, 5, nRefType) ;
LuaClearStack( L) ;
// eseguo rotazione
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtRotate( vId[i], ptAx.v, vtAx.v, dAngRotDeg))
bOk = false ;
}
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaRotateGlob( lua_State* L)
{
// 4 parametri : Id/s, PtAx, VtAx, dAngRotDeg
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Point3d ptAx ;
LuaCheckParam( L, 2, ptAx)
Vector3d vtAx ;
LuaCheckParam( L, 3, vtAx)
double dAngRotDeg ;
LuaCheckParam( L, 4, dAngRotDeg)
LuaClearStack( L) ;
// eseguo rotazione
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtRotateGlob( vId[i], ptAx.v, vtAx.v, dAngRotDeg))
bOk = false ;
}
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaRotateGroup( lua_State* L)
{
// 4 parametri : Id/s, PtAx, VtAx, dAngRotDeg
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Point3d ptAx ;
LuaCheckParam( L, 2, ptAx)
Vector3d vtAx ;
LuaCheckParam( L, 3, vtAx)
double dAngRotDeg ;
LuaCheckParam( L, 4, dAngRotDeg)
LuaClearStack( L) ;
// eseguo rotazione
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtRotateGroup( vId[i], ptAx.v, vtAx.v, dAngRotDeg))
bOk = false ;
}
bool bOk = EgtRotate( vId, ptAx, vtAx, dAngRotDeg, nRefType) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
@@ -164,7 +68,7 @@ LuaRotateGroup( lua_State* L)
static int
LuaScale( lua_State* L)
{
// 5 parametri : Id/s, Frame, CoeffX, CoeffY, CoeffZ
// 5 o 6 parametri : Id/s, Frame, CoeffX, CoeffY, CoeffZ [, sRefType]
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Frame3d frRef ;
@@ -175,73 +79,11 @@ LuaScale( lua_State* L)
LuaCheckParam( L, 4, dCoeffY)
double dCoeffZ ;
LuaCheckParam( L, 5, dCoeffZ)
int nRefType = RTY_DEFAULT ;
LuaGetRefType( L, 6, nRefType) ;
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtScale( vId[i], frRef.Orig().v,
frRef.VersX().v, frRef.VersY().v, frRef.VersZ().v,
dCoeffX, dCoeffY, dCoeffZ))
bOk = false ;
}
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaScaleGlob( lua_State* L)
{
// 5 parametri : Id/s, Frame, CoeffX, CoeffY, CoeffZ
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Frame3d frRef ;
LuaCheckParam( L, 2, frRef)
double dCoeffX ;
LuaCheckParam( L, 3, dCoeffX)
double dCoeffY ;
LuaCheckParam( L, 4, dCoeffY)
double dCoeffZ ;
LuaCheckParam( L, 5, dCoeffZ)
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtScaleGlob( vId[i], frRef.Orig().v,
frRef.VersX().v, frRef.VersY().v, frRef.VersZ().v,
dCoeffX, dCoeffY, dCoeffZ))
bOk = false ;
}
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaScaleGroup( lua_State* L)
{
// 5 parametri : Id/s, Frame, CoeffX, CoeffY, CoeffZ
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Frame3d frRef ;
LuaCheckParam( L, 2, frRef)
double dCoeffX ;
LuaCheckParam( L, 3, dCoeffX)
double dCoeffY ;
LuaCheckParam( L, 4, dCoeffY)
double dCoeffZ ;
LuaCheckParam( L, 5, dCoeffZ)
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtScaleGroup( vId[i], frRef.Orig().v,
frRef.VersX().v, frRef.VersY().v, frRef.VersZ().v,
dCoeffX, dCoeffY, dCoeffZ))
bOk = false ;
}
bool bOk = EgtScale( vId, frRef, dCoeffX, dCoeffY, dCoeffZ, nRefType) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
@@ -251,66 +93,18 @@ LuaScaleGroup( lua_State* L)
static int
LuaMirror( lua_State* L)
{
// 3 parametri : Id/s, PtOn, VtN
// 3 o 4 parametri : Id/s, PtOn, VtN [, sRefType]
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Point3d ptOn ;
LuaCheckParam( L, 2, ptOn)
Vector3d vtN ;
LuaCheckParam( L, 3, vtN)
int nRefType = RTY_DEFAULT ;
LuaGetRefType( L, 4, nRefType) ;
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtMirror( vId[i], ptOn.v, vtN.v))
bOk = false ;
}
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaMirrorGlob( lua_State* L)
{
// 3 parametri : Id/s, PtOn, VtN
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Point3d ptOn ;
LuaCheckParam( L, 2, ptOn)
Vector3d vtN ;
LuaCheckParam( L, 3, vtN)
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtMirrorGlob( vId[i], ptOn.v, vtN.v))
bOk = false ;
}
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaMirrorGroup( lua_State* L)
{
// 3 parametri : Id/s, PtOn, VtN
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Point3d ptOn ;
LuaCheckParam( L, 2, ptOn)
Vector3d vtN ;
LuaCheckParam( L, 3, vtN)
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtMirrorGroup( vId[i], ptOn.v, vtN.v))
bOk = false ;
}
bool bOk = EgtMirror( vId, ptOn, vtN, nRefType) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
@@ -320,7 +114,7 @@ LuaMirrorGroup( lua_State* L)
static int
LuaShear( lua_State* L)
{
// 5 parametri : Id, PtOn, VtN, VtDir, Coeff
// 5 o 6 parametri : Id, PtOn, VtN, VtDir, Coeff [, sRefType]
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
Point3d ptOn ;
@@ -331,13 +125,11 @@ LuaShear( lua_State* L)
LuaCheckParam( L, 4, vtDir)
double dCoeff ;
LuaCheckParam( L, 5, dCoeff)
int nRefType = RTY_DEFAULT ;
LuaGetRefType( L, 6, nRefType) ;
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtShear( vId[i], ptOn.v, vtN.v, vtDir.v, dCoeff))
bOk = false ;
}
bool bOk = EgtShear( vId, ptOn, vtN, vtDir, dCoeff, nRefType) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
@@ -345,26 +137,81 @@ LuaShear( lua_State* L)
//-------------------------------------------------------------------------------
static int
LuaShearGlob( lua_State* L)
LuaMoveGroup( lua_State* L)
{
// 5 parametri : Id, PtOn, VtN, VtDir, Coeff
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
// 2 parametri : Id, VtMove
int nId ;
LuaCheckParam( L, 1, nId)
Vector3d vtMove ;
LuaCheckParam( L, 2, vtMove)
LuaClearStack( L) ;
// eseguo traslazione
bool bOk = ( EgtMoveGroup( nId, vtMove.v) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaRotateGroup( lua_State* L)
{
// 4 parametri : Id, PtAx, VtAx, dAngRotDeg
int nId ;
LuaCheckParam( L, 1, nId)
Point3d ptAx ;
LuaCheckParam( L, 2, ptAx)
Vector3d vtAx ;
LuaCheckParam( L, 3, vtAx)
double dAngRotDeg ;
LuaCheckParam( L, 4, dAngRotDeg)
LuaClearStack( L) ;
// eseguo rotazione
bool bOk = ( EgtRotateGroup( nId, ptAx.v, vtAx.v, dAngRotDeg) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaScaleGroup( lua_State* L)
{
// 5 parametri : Id, Frame, CoeffX, CoeffY, CoeffZ
int nId ;
LuaCheckParam( L, 1, nId)
Frame3d frRef ;
LuaCheckParam( L, 2, frRef)
double dCoeffX ;
LuaCheckParam( L, 3, dCoeffX)
double dCoeffY ;
LuaCheckParam( L, 4, dCoeffY)
double dCoeffZ ;
LuaCheckParam( L, 5, dCoeffZ)
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = ( EgtScaleGroup( nId, frRef.Orig().v,
frRef.VersX().v, frRef.VersY().v, frRef.VersZ().v,
dCoeffX, dCoeffY, dCoeffZ) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaMirrorGroup( lua_State* L)
{
// 3 parametri : Id, PtOn, VtN
int sId ;
LuaCheckParam( L, 1, sId)
Point3d ptOn ;
LuaCheckParam( L, 2, ptOn)
Vector3d vtN ;
LuaCheckParam( L, 3, vtN)
Vector3d vtDir ;
LuaCheckParam( L, 4, vtDir)
double dCoeff ;
LuaCheckParam( L, 5, dCoeff)
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtShearGlob( vId[i], ptOn.v, vtN.v, vtDir.v, dCoeff))
bOk = false ;
}
bool bOk = ( EgtMirrorGroup( sId, ptOn.v, vtN.v) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
@@ -375,8 +222,8 @@ static int
LuaShearGroup( lua_State* L)
{
// 5 parametri : Id, PtOn, VtN, VtDir, Coeff
INTVECTOR vId ;
LuaCheckParam( L, 1, vId)
int nId ;
LuaCheckParam( L, 1, nId)
Point3d ptOn ;
LuaCheckParam( L, 2, ptOn)
Vector3d vtN ;
@@ -387,11 +234,7 @@ LuaShearGroup( lua_State* L)
LuaCheckParam( L, 5, dCoeff)
LuaClearStack( L) ;
// eseguo scalatura
bool bOk = true ;
for ( size_t i = 0 ; i < vId.size() && bOk ; ++ i) {
if ( ! EgtShearGroup( vId[i], ptOn.v, vtN.v, vtDir.v, dCoeff))
bOk = false ;
}
bool bOk = ( EgtShearGroup( nId, ptOn.v, vtN.v, vtDir.v, dCoeff) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
@@ -403,19 +246,14 @@ LuaInstallGeoTransform( lua_State* L)
{
try {
lua_register( L, "EgtMove", LuaMove) ;
lua_register( L, "EgtMoveGlob", LuaMoveGlob) ;
lua_register( L, "EgtMoveGroup", LuaMoveGroup) ;
lua_register( L, "EgtRotate", LuaRotate) ;
lua_register( L, "EgtRotateGlob", LuaRotateGlob) ;
lua_register( L, "EgtRotateGroup", LuaRotateGroup) ;
lua_register( L, "EgtScale", LuaScale) ;
lua_register( L, "EgtScaleGlob", LuaScaleGlob) ;
lua_register( L, "EgtScaleGroup", LuaScaleGroup) ;
lua_register( L, "EgtMirror", LuaMirror) ;
lua_register( L, "EgtMirrorGlob", LuaMirrorGlob) ;
lua_register( L, "EgtMirrorGroup", LuaMirrorGroup) ;
lua_register( L, "EgtShear", LuaShear) ;
lua_register( L, "EgtShearGlob", LuaShearGlob) ;
lua_register( L, "EgtMoveGroup", LuaMoveGroup) ;
lua_register( L, "EgtRotateGroup", LuaRotateGroup) ;
lua_register( L, "EgtScaleGroup", LuaScaleGroup) ;
lua_register( L, "EgtMirrorGroup", LuaMirrorGroup) ;
lua_register( L, "EgtShearGroup", LuaShearGroup) ;
}
catch ( ...) {