EgtInterface 1.6a2 :

- numerose modifiche e correzioni
- aggiunta registrazione comandi in formato lua
- aggiunto valutatore di espressioni.
This commit is contained in:
Dario Sassi
2015-01-14 21:56:57 +00:00
parent bebcf1ecfe
commit e23999b6a3
32 changed files with 3080 additions and 989 deletions
+158 -48
View File
@@ -16,6 +16,7 @@
#include "API.h"
#include "API_Macro.h"
#include "/EgtDev/Include/EInAPI.h"
#include "/EgtDev/Include/EGkStringUtils3d.h"
using namespace std ;
@@ -25,21 +26,29 @@ __stdcall EgtMove( int nId, double vVtMove[3])
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo traslazione singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->Translate( nId, vVtMove) ? TRUE : FALSE) ;
bOk = pGeomDB->Translate( nId, vVtMove) ;
}
// eseguo traslazione dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->Translate( nI, vVtMove))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtMove(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{" +
ToString( Vector3d( vVtMove)) + "})" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -48,21 +57,29 @@ __stdcall EgtMoveGlob( int nId, double vVtMove[3])
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo traslazione singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->TranslateGlob( nId, vVtMove) ? TRUE : FALSE) ;
bOk = pGeomDB->TranslateGlob( nId, vVtMove) ;
}
// eseguo traslazione dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->TranslateGlob( nI, vVtMove))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtMoveGlob(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{" +
ToString( Vector3d( vVtMove)) + "})" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -71,21 +88,22 @@ __stdcall EgtMoveGroup( int nId, double vVtMove[3])
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo traslazione singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->TranslateGroup( nId, vVtMove) ? TRUE : FALSE) ;
bOk = pGeomDB->TranslateGroup( nId, vVtMove) ;
}
// eseguo traslazione dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->TranslateGroup( nI, vVtMove))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -94,21 +112,31 @@ __stdcall EgtRotate( int nId, double vPtAx[3], double vVtAx[3], double dAngRotDe
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo rotazione singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->Rotate( nId, vPtAx, vVtAx, dAngRotDeg) ? TRUE : FALSE) ;
bOk = pGeomDB->Rotate( nId, vPtAx, vVtAx, dAngRotDeg) ;
}
// eseguo rotazione dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->Rotate( nI, vPtAx, vVtAx, dAngRotDeg))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtRotate(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{" +
ToString( Point3d( vPtAx)) + "},{" +
ToString( Vector3d( vVtAx)) + "}," +
ToString( dAngRotDeg) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -117,21 +145,31 @@ __stdcall EgtRotateGlob( int nId, double vPtAx[3], double vVtAx[3], double dAngR
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo rotazione singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->RotateGlob( nId, vPtAx, vVtAx, dAngRotDeg) ? TRUE : FALSE) ;
bOk = pGeomDB->RotateGlob( nId, vPtAx, vVtAx, dAngRotDeg) ;
}
// eseguo rotazione dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->RotateGlob( nI, vPtAx, vVtAx, dAngRotDeg))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtRotateGlob(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{" +
ToString( Point3d( vPtAx)) + "},{" +
ToString( Vector3d( vVtAx)) + "}," +
ToString( dAngRotDeg) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -140,21 +178,22 @@ __stdcall EgtRotateGroup( int nId, double vPtAx[3], double vVtAx[3], double dAng
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo rotazione singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->RotateGroup( nId, vPtAx, vVtAx, dAngRotDeg) ? TRUE : FALSE) ;
bOk = pGeomDB->RotateGroup( nId, vPtAx, vVtAx, dAngRotDeg) ;
}
// eseguo rotazione dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->RotateGroup( nI, vPtAx, vVtAx, dAngRotDeg))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -165,25 +204,39 @@ __stdcall EgtScale( int nId, const double vOrig[3],
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// costruisco il riferimento di scalatura
Frame3d frFrame ;
if ( ! frFrame.Set( vOrig, vX, vY, vZ))
return FALSE ;
bOk = false ;
// eseguo scalatura singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->Scale( nId, frFrame, dCoeffX, dCoeffY, dCoeffZ) ? TRUE : FALSE) ;
bOk = bOk && pGeomDB->Scale( nId, frFrame, dCoeffX, dCoeffY, dCoeffZ) ;
}
// eseguo scalatura dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->Scale( nI, frFrame, dCoeffX, dCoeffY, dCoeffZ))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtScale(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{{" +
ToString( frFrame.Orig()) + "},{" +
ToString( frFrame.VersX()) + "},{" +
ToString( frFrame.VersY()) + "},{" +
ToString( frFrame.VersZ()) + "}}," +
ToString( dCoeffX) + "," +
ToString( dCoeffY) + "," +
ToString( dCoeffZ) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -194,25 +247,39 @@ __stdcall EgtScaleGlob( int nId, const double vOrig[3],
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// costruisco il riferimento di scalatura
Frame3d frFrame ;
if ( ! frFrame.Set( vOrig, vX, vY, vZ))
return FALSE ;
bOk = false ;
// eseguo scalatura singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->ScaleGlob( nId, frFrame, dCoeffX, dCoeffY, dCoeffZ) ? TRUE : FALSE) ;
bOk = bOk && pGeomDB->ScaleGlob( nId, frFrame, dCoeffX, dCoeffY, dCoeffZ) ;
}
// eseguo scalatura dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->ScaleGlob( nI, frFrame, dCoeffX, dCoeffY, dCoeffZ))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtScaleGlob(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{{" +
ToString( frFrame.Orig()) + "},{" +
ToString( frFrame.VersX()) + "},{" +
ToString( frFrame.VersY()) + "},{" +
ToString( frFrame.VersZ()) + "}}," +
ToString( dCoeffX) + "," +
ToString( dCoeffY) + "," +
ToString( dCoeffZ) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -223,25 +290,26 @@ __stdcall EgtScaleGroup( int nId, const double vOrig[3],
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// costruisco il riferimento di scalatura
Frame3d frFrame ;
if ( ! frFrame.Set( vOrig, vX, vY, vZ))
return FALSE ;
bOk = false ;
// eseguo scalatura singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->ScaleGroup( nId, frFrame, dCoeffX, dCoeffY, dCoeffZ) ? TRUE : FALSE) ;
bOk = bOk && pGeomDB->ScaleGroup( nId, frFrame, dCoeffX, dCoeffY, dCoeffZ) ;
}
// eseguo scalatura dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->ScaleGroup( nI, frFrame, dCoeffX, dCoeffY, dCoeffZ))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -250,21 +318,30 @@ __stdcall EgtMirror( int nId, const double vPnt[3], const double vN[3])
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo specularità singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->Mirror( nId, vPnt, vN) ? TRUE : FALSE) ;
bOk = pGeomDB->Mirror( nId, vPnt, vN) ;
}
// eseguo specularità dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->Mirror( nI, vPnt, vN))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtMirror(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{" +
ToString( Point3d( vPnt)) + "},{" +
ToString( Vector3d( vN)) + "})" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -273,21 +350,30 @@ __stdcall EgtMirrorGlob( int nId, const double vPnt[3], const double vN[3])
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo specularità singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->MirrorGlob( nId, vPnt, vN) ? TRUE : FALSE) ;
bOk = pGeomDB->MirrorGlob( nId, vPnt, vN) ;
}
// eseguo specularità dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->MirrorGlob( nI, vPnt, vN))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtMirrorGlob(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{" +
ToString( Point3d( vPnt)) + "},{" +
ToString( Vector3d( vN)) + "})" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -296,21 +382,22 @@ __stdcall EgtMirrorGroup( int nId, const double vPnt[3], const double vN[3])
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo specularità singola
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->MirrorGroup( nId, vPnt, vN) ? TRUE : FALSE) ;
bOk = pGeomDB->MirrorGroup( nId, vPnt, vN) ;
}
// eseguo specularità dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->MirrorGroup( nI, vPnt, vN))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -320,21 +407,32 @@ __stdcall EgtShear( int nId, const double vPnt[3], const double vN[3],
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo stiramento singolo
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->Shear( nId, vPnt, vN, vDir, dCoeff) ? TRUE : FALSE) ;
bOk = pGeomDB->Shear( nId, vPnt, vN, vDir, dCoeff) ;
}
// eseguo stiramento dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->Shear( nI, vPnt, vN, vDir, dCoeff))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtShear(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{" +
ToString( Point3d( vPnt)) + "},{" +
ToString( Vector3d( vN)) + "},{" +
ToString( Vector3d( vDir)) + "}," +
ToString( dCoeff) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -344,21 +442,32 @@ __stdcall EgtShearGlob( int nId, const double vPnt[3], const double vN[3],
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo stiramento singolo
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->ShearGlob( nId, vPnt, vN, vDir, dCoeff) ? TRUE : FALSE) ;
bOk = pGeomDB->ShearGlob( nId, vPnt, vN, vDir, dCoeff) ;
}
// eseguo stiramento dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->ShearGlob( nI, vPnt, vN, vDir, dCoeff))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtShearGlob(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ",{" +
ToString( Point3d( vPnt)) + "},{" +
ToString( Vector3d( vN)) + "},{" +
ToString( Vector3d( vDir)) + "}," +
ToString( dCoeff) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
@@ -368,19 +477,20 @@ __stdcall EgtShearGroup( int nId, const double vPnt[3], const double vN[3],
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
bool bOk = true ;
// eseguo stiramento singolo
if ( nId != GDB_ID_SEL) {
return ( pGeomDB->ShearGroup( nId, vPnt, vN, vDir, dCoeff) ? TRUE : FALSE) ;
bOk = pGeomDB->ShearGroup( nId, vPnt, vN, vDir, dCoeff) ;
}
// eseguo stiramento dei selezionati
else {
bool bOk = true ;
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! pGeomDB->ShearGroup( nI, vPnt, vN, vDir, dCoeff))
bOk = false ;
nI = pGeomDB->GetNextSelectedObj() ;
}
return ( bOk ? TRUE : FALSE) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}