EgtInterface 1.6a4 :
- completamento modifiche per registrazione comandi in lua e per gestione RefType e RefId.
This commit is contained in:
+96
-258
@@ -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 ( ...) {
|
||||
|
||||
Reference in New Issue
Block a user