EgtInterface 1.6a7 :

- aggiunta gestione nome file di progetto e suo stato
- aggiunta gestione pezzo e layer
- riordino generale.
This commit is contained in:
Dario Sassi
2015-01-30 08:16:05 +00:00
parent f039e22297
commit 0c41c8c631
20 changed files with 868 additions and 178 deletions
+2
View File
@@ -30,6 +30,8 @@ bool EgtGetVersionInfo( std::string& sVer, const char* szNewLine) ;
bool EgtSetGridFrame( const Frame3d& frFrame) ;
bool EgtGetGridFrame( int nRefId, Frame3d& frFrame) ;
bool EgtGetGridVersZ( int nRefId, Vector3d& vtVersZ) ;
bool EgtSetCurrFilePath( const std::string& sFilePath) ;
bool EgtGetCurrFilePath( std::string& sFilePath) ;
bool EgtOpenFile( const std::string& sFilePath) ;
bool EgtInsertFile( const std::string& sFilePath) ;
bool EgtSaveFile( const std::string& sFilePath, int nFlag) ;
+22 -13
View File
@@ -80,17 +80,20 @@ __stdcall EgtImportDxf( const wchar_t* wsFilePath)
bool
EgtImportDxf( const string& sFilePath)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, false)
bool bOk = true ;
// importo il file DXF
// aggiungo un gruppo pezzo
int nPartId = pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ;
int nPartId = pGseCtx->m_pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ;
// preparo l'importatore
PtrOwner<IImportDxf> pImpDxf( CreateImportDxf()) ;
bOk = bOk && ! IsNull( pImpDxf) ;
// eseguo l'importazione
bOk = bOk && pImpDxf->Import( sFilePath, pGeomDB, nPartId) ;
bOk = bOk && pImpDxf->Import( sFilePath, pGseCtx->m_pGeomDB, nPartId) ;
// aggiorno stato file corrente
pGseCtx->m_sFilePath = sFilePath ;
pGseCtx->m_bModified = true ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLuaPath = sFilePath ;
@@ -114,18 +117,21 @@ __stdcall EgtImportStl( const wchar_t* wsFilePath)
bool
EgtImportStl( const string& sFilePath)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, false)
bool bOk = true ;
// importo il file STL
// aggiungo un gruppo pezzo e un gruppo layer
int nPartId = pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ;
int nLayerId = pGeomDB->AddGroup( GDB_ID_NULL, nPartId, Frame3d()) ;
int nPartId = pGseCtx->m_pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ;
int nLayerId = pGseCtx->m_pGeomDB->AddGroup( GDB_ID_NULL, nPartId, Frame3d()) ;
// preparo l'importatore
PtrOwner<IImportStl> pImpStl( CreateImportStl()) ;
bOk = bOk && ! IsNull( pImpStl) ;
// eseguo l'importazione
bOk = bOk && pImpStl->Import( sFilePath, pGeomDB, nLayerId) ;
bOk = bOk && pImpStl->Import( sFilePath, pGseCtx->m_pGeomDB, nLayerId) ;
// aggiorno stato file corrente
pGseCtx->m_sFilePath = sFilePath ;
pGseCtx->m_bModified = true ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLuaPath = sFilePath ;
@@ -149,17 +155,20 @@ __stdcall EgtImportCnc( const wchar_t* wsFilePath)
bool
EgtImportCnc( const string& sFilePath)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, false)
bool bOk = true ;
// importo il file CNC
// aggiungo un gruppo pezzo
int nPartId = pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ;
int nPartId = pGseCtx->m_pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ;
// preparo l'importatore
PtrOwner<IImportCnc> pImpCnc( CreateImportCnc()) ;
bOk = bOk && ! IsNull( pImpCnc) ;
// eseguo l'importazione
bOk = bOk && pImpCnc->Import( sFilePath, pGeomDB, nPartId) ;
bOk = bOk && pImpCnc->Import( sFilePath, pGseCtx->m_pGeomDB, nPartId) ;
// aggiorno stato file corrente
pGseCtx->m_sFilePath = sFilePath ;
pGseCtx->m_bModified = true ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLuaPath = sFilePath ;
+7
View File
@@ -49,6 +49,7 @@ __stdcall EgtCreateGroup( int nParentId, const double ptOrig[3],
}
// creo il gruppo
int nId = ( bOk ? pGeomDB->AddGroup( GDB_ID_NULL, nParentId, frFrameL) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua ;
@@ -99,6 +100,7 @@ __stdcall EgtCreateGeoPoint( int nParentId, const double ptP[3], int nRefType)
bOk = bOk && pGeoPnt->Set( ptPL) ;
// inserisco il punto nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pGeoPnt)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtPoint(" + ToString( nParentId) + ",{" +
@@ -140,6 +142,7 @@ __stdcall EgtCreateGeoVector( int nParentId, const double vtV[3], const double p
bOk = bOk && pGeoVct->Set( vtVL, ptBL) ;
// inserisco il vettore nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pGeoVct)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua ;
@@ -195,6 +198,7 @@ __stdcall EgtCreateGeoFrame( int nParentId, const double ptOrig[3],
bOk = bOk & pGeoFrm->Set( ptOrigL, vtXL, vtYL, vtZL) ;
// inserisco il riferimento nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pGeoFrm)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtFrame(" + ToString( nParentId) + ",{{" +
@@ -250,6 +254,7 @@ EgtCreateText( int nParentId, const Point3d& ptP, double dAngRotDeg,
bOk = bOk && pTXT->Set( ptPL, vtNL, vtDL, sText, "", false, dH) ;
// inserisco il testo nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pTXT)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtText(" + ToString( nParentId) + ",{" +
@@ -306,6 +311,7 @@ EgtCreateTextEx( int nParentId, const Point3d& ptP, const Vector3d& vtN, const V
bOk = bOk && pTXT->Set( ptPL, vtNL, vtDL, sText, sFont, bItalic, dH) ;
// inserisco il testo nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pTXT)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtTextEx(" + ToString( nParentId) + ",{" +
@@ -368,6 +374,7 @@ EgtCreateTextAdv( int nParentId, const Point3d& ptP, const Vector3d& vtN, const
bOk = bOk && pTXT->Set( ptPL, vtNL, vtDL, sText, sFont, nW, bItalic, dH, dRat, dAddAdv, nInsPos) ;
// inserisco il testo nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pTXT)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtTextAdv(" + ToString( nParentId) + ",{" +
+20
View File
@@ -89,6 +89,7 @@ __stdcall EgtCreateCurveLine( int nParentId, const double ptIni[3], const double
pCrvLine->SetExtrusion( vtExtrL) ;
// inserisco la linea nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvLine)) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtLine(" + ToString( nParentId) + ",{" +
@@ -213,6 +214,7 @@ __stdcall EgtCreateCurveLineEx( int nParentId, const double ptIni[3], int nSepI,
pCrvLine->SetExtrusion( vtExtrL) ;
// inserisco la linea nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvLine)) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua ;
@@ -536,6 +538,7 @@ __stdcall EgtCreateCurveLinePVL( int nParentId, const double ptIni[3],
pCrvLine->SetExtrusion( vtExtrL) ;
// inserisco la linea nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvLine)) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtLinePVL(" + ToString( nParentId) + ",{" +
@@ -602,6 +605,7 @@ __stdcall EgtCreateCurveLineMinPointCurve( int nParentId,
pCrvLine->SetExtrusion( vtExtrL) ;
// inserisco la linea nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvLine)) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtLineMinPointCurve(" + ToString( nParentId) + ",{" +
@@ -653,6 +657,7 @@ __stdcall EgtCreateCurveCircle( int nParentId, const double ptCen[3],
pCrvArc->SetExtrusion( vtExtrL) ;
// inserisco l'arco nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvArc)) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtCircle(" + ToString( nParentId) + ",{" +
@@ -709,6 +714,7 @@ __stdcall EgtCreateCurveCircleCPN( int nParentId, const double ptCen[3],
pCrvArc->SetExtrusion( vtExtrL) ;
// inserisco l'arco nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvArc)) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtCircleCPN(" + ToString( nParentId) + ",{" +
@@ -763,6 +769,7 @@ __stdcall EgtCreateCurveCircle3P( int nParentId, const double ptP1[3],
pCrvArc->SetExtrusion( vtExtrL) ;
// inserisco l'arco nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvArc)) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtCircle3P(" + ToString( nParentId) + ",{" +
@@ -818,6 +825,7 @@ __stdcall EgtCreateCurveArc( int nParentId,
pCrvArc->SetExtrusion( vtExtrL) ;
// inserisco l'arco nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvArc)) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtArc(" + ToString( nParentId) + ",{" +
@@ -878,6 +886,7 @@ __stdcall EgtCreateCurveArcC2PN( int nParentId, const double ptCen[3], const dou
pCrvArc->SetExtrusion( vtExtrL) ;
// inserisco l'arco nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvArc)) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtArcC2PN(" + ToString( nParentId) + ",{" +
@@ -945,6 +954,7 @@ __stdcall EgtCreateCurveArc3P( int nParentId, const double ptP1[3],
nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvLine)) ;
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtArc3P(" + ToString( nParentId) + ",{" +
@@ -1014,6 +1024,7 @@ __stdcall EgtCreateCurveArc2PVN( int nParentId, const double ptStart[3], const d
nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvLine)) ;
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtArc2PVN(" + ToString( nParentId) + ",{" +
@@ -1081,6 +1092,7 @@ EgtCreateCurveBezier( int nParentId, int nDegree, const PNTVECTOR& vPnt, int nRe
pCrvBez->SetExtrusion( vtExtrL) ;
// inserisco la curva nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvBez)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sPC ;
@@ -1152,6 +1164,7 @@ EgtCreateCurveBezierRational( int nParentId, int nDegree, const PNTUVECTOR& vPnt
pCrvBez->SetExtrusion( vtExtrL) ;
// inserisco la curva nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvBez)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sPC ;
@@ -1208,6 +1221,7 @@ __stdcall EgtCreateCurveBezierFromArc( int nParentId, int nArcId, BOOL bErase)
return GDB_ID_NULL ;
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtCurveBezierFromArc(" + ToString( nParentId) + "," +
@@ -1285,6 +1299,7 @@ MyCreateCurveCompo( int nParentId, const INTVECTOR& vIds, bool bErase)
pCrvCompo->SetThickness( dThick) ;
// inserisco la curva composita nel DB
int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvCompo)) ;
EgtSetModified() ;
// se ok e richiesto, cancello le curve originali
if ( nId != GDB_ID_NULL && bErase) {
for ( Iter = vIds.begin() ; Iter != vIds.end() ; ++Iter) {
@@ -1456,6 +1471,7 @@ EgtCreateCurveCompoByChain( int nParentId, const INTVECTOR& vIds,
{
// eseguo
int nFirstId = MyCreateCurveCompoByChain( nParentId, vIds, ptNear, bErase, nRefType) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sIds ;
@@ -1511,6 +1527,7 @@ EgtCreateCurveCompoFromPoints( int nParentId, const PolyLine& PL, int nRefType)
pCrvCompo->LocToLoc( pGeomDB->GetGridFrame(), frDest) ;
// inserisco la curva composita nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvCompo)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sPnt ;
@@ -1564,6 +1581,7 @@ EgtCreateCurveCompoFromPointBulges( int nParentId, const PolyArc& PA, int nRefTy
pCrvCompo->LocToLoc( pGeomDB->GetGridFrame(), frDest) ;
// inserisco la curva composita nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvCompo)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sPnt ;
@@ -1622,6 +1640,7 @@ __stdcall EgtCreateCurveCompoByApprox( int nParentId, int nSouId, BOOL bArcsVsLi
}
// inserisco la curva composita nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCC)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtCurveCompoByApprox(" + ToString( nParentId) + "," +
@@ -1740,6 +1759,7 @@ __stdcall EgtCreatePolygonFromSide( int nParentId, int nNumSides, const double p
bOk = bOk && pCrvCompo->SetExtrusion( vtExtrL) ;
// inserisco la curva nel DB
int nId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pCrvCompo)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtPolygonFromSide(" + ToString( nParentId) + "," +
+4
View File
@@ -46,6 +46,7 @@ __stdcall EgtCreateSurfTriMeshByContour( int nParentId, int nCrvId, double dLinT
bOk = false ;
// inserisco la superficie nel DB
int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pSTM)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSurfTmByContour(" + ToString( nParentId) + "," +
@@ -85,6 +86,7 @@ __stdcall EgtCreateSurfTriMeshByExtrusion( int nParentId, int nCrvId, const doub
bOk = bOk && pSTM->CreateByExtrusion( PL, vtExtrL) ;
// inserisco la superficie nel DB
int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pSTM)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSurfTmByExtrusion(" + ToString( nParentId) + "," +
@@ -145,6 +147,7 @@ __stdcall EgtCreateSurfTriMeshByScrewing( int nParentId, int nCrvId,
bOk = bOk && pSTM->CreateByScrewing( PL, ptAxL, vtAxL, dAngRotDeg, dStepRotDeg, dMove) ;
// inserisco la superficie nel DB
int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pSTM)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSurfTmByScrewing(" + ToString( nParentId) + "," +
@@ -187,6 +190,7 @@ __stdcall EgtCreateSurfTriMeshRuled( int nParentId, int nCrvId1, int nCrvId2, do
bOk = false ;
// inserisco la superficie trimesh nel DB
int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pSTM)) : GDB_ID_NULL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSurfTmRuled(" + ToString( nParentId) + "," +
+31 -7
View File
@@ -56,6 +56,7 @@ __stdcall EgtInvertCurve( int nId)
nI = pGeomDB->GetNextSelectedObj() ;
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtInvertCurve(" + ( nId != GDB_ID_SEL ? ToString( nId): "GDB_ID_SEL") + ")" +
@@ -76,6 +77,7 @@ __stdcall EgtOffsetCurve( int nId, double dDist, int nType)
ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ;
// eseguo l'offset
bool bOk = ( pCurve != nullptr) && pCurve->SimpleOffset( dDist, nType) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua ;
@@ -116,6 +118,7 @@ __stdcall EgtModifyCurveStartPoint( int nId, const double ptP[3], int nRefType)
}
// ne modifico il punto iniziale
bOk = bOk && pCurve->ModifyStart( ptPL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtModifyCurveStartPoint(" + ToString( nId) + ",{" +
@@ -150,6 +153,7 @@ __stdcall EgtModifyCurveEndPoint( int nId, const double ptP[3], int nRefType)
}
// ne modifico il punto finale
bOk = bOk && pCurve->ModifyEnd( ptPL) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtModifyCurveEndPoint(" + ToString( nId) + ",{" +
@@ -238,6 +242,7 @@ EgtModifyCurveExtrusion( INTVECTOR& vIds, const Vector3d& vtExtr, int nRefType)
}
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sIds ;
@@ -306,6 +311,7 @@ __stdcall EgtModifyCurveThickness( int nId, double dThick)
nI = pGeomDB->GetNextSelectedObj() ;
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtModifyCurveThickness(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + "," +
@@ -328,7 +334,9 @@ __stdcall EgtTrimCurveStartAtLen( int nId, double dLen)
if ( pCurve == nullptr)
return FALSE ;
// taglio la curva all'inizio
return ( pCurve->TrimStartAtLen( dLen) ? TRUE : FALSE) ;
bool bOk = pCurve->TrimStartAtLen( dLen) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
@@ -342,7 +350,9 @@ __stdcall EgtTrimCurveEndAtLen( int nId, double dLen)
if ( pCurve == nullptr)
return FALSE ;
// taglio la curva alla fine
return ( pCurve->TrimEndAtLen( dLen) ? TRUE : FALSE) ;
bool bOk = pCurve->TrimEndAtLen( dLen) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
@@ -356,7 +366,9 @@ __stdcall EgtTrimCurveStartAtParam( int nId, double dPar)
if ( pCurve == nullptr)
return FALSE ;
// taglio la curva all'inizio
return ( pCurve->TrimStartAtParam( dPar) ? TRUE : FALSE) ;
bool bOk = pCurve->TrimStartAtParam( dPar) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
@@ -370,7 +382,9 @@ __stdcall EgtTrimCurveEndAtParam( int nId, double dPar)
if ( pCurve == nullptr)
return FALSE ;
// taglio la curva alla fine
return ( pCurve->TrimEndAtParam( dPar) ? TRUE : FALSE) ;
bool bOk = pCurve->TrimEndAtParam( dPar) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
@@ -384,7 +398,9 @@ __stdcall EgtTrimCurveStartEndAtParam( int nId, double dParS, double dParE)
if ( pCurve == nullptr)
return FALSE ;
// taglio la curva agli estremi
return ( pCurve->TrimStartEndAtParam( dParS, dParE) ? TRUE : FALSE) ;
bool bOk = pCurve->TrimStartEndAtParam( dParS, dParE) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
@@ -398,7 +414,9 @@ __stdcall EgtExtendCurveStartByLen( int nId, double dLen)
if ( pCurve == nullptr)
return FALSE ;
// estendo la curva all'inizio
return ( pCurve->ExtendStartByLen( dLen) ? TRUE : FALSE) ;
bool bOk = pCurve->ExtendStartByLen( dLen) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
@@ -412,7 +430,9 @@ __stdcall EgtExtendCurveEndByLen( int nId, double dLen)
if ( pCurve == nullptr)
return FALSE ;
// estendo la curva alla fine
return ( pCurve->ExtendEndByLen( dLen) ? TRUE : FALSE) ;
bool bOk = pCurve->ExtendEndByLen( dLen) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
@@ -454,6 +474,7 @@ __stdcall EgtTrimExtendCurveByLen( int nId, double dLen, const double ptNear[3],
}
else
bOk = false ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtTrimExtendCurveByLen(" + ToString( nId) + "," +
@@ -517,6 +538,7 @@ __stdcall EgtSplitCurveAtPoint( int nId, double ptOn[3], int nRefType)
bOk = bOk && pCurve->TrimEndAtParam( dU) ;
bOk = bOk && ( EgtTrimCurveStartAtParam( nCopyId, dU) != FALSE) ;
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSplitCurveAtPoint(" + ToString( nId) + ",{" +
@@ -680,6 +702,7 @@ __stdcall EgtExplodeCurveCompo( int nId)
}
// elimino la curva composita ormai vuota
bOk = bOk && pGeomDB->Erase( nId) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtExplodeCurveCompo(" + ToString( nId) + ")" +
@@ -733,6 +756,7 @@ __stdcall EgtExplodeCurveBezier( int nId, BOOL bArcsVsLines, double dLinTol)
}
// elimino la curva di Bezier
bOk = bOk && pGeomDB->Erase( nId) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtExplodeCurveBezier(" + ToString( nId) + "," +
+41 -9
View File
@@ -30,7 +30,9 @@ __stdcall EgtSetLevel( int nId, int nLevel)
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
// imposto il livello
return ( pGeomDB->SetLevel( nId, nLevel) ? TRUE : FALSE) ;
bool bOk = pGeomDB->SetLevel( nId, nLevel) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
@@ -40,7 +42,9 @@ __stdcall EgtRevertLevel( int nId)
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
// porto il livello allo stato precedente
return ( pGeomDB->RevertLevel( nId) ? TRUE : FALSE) ;
bool bOk = pGeomDB->RevertLevel( nId) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
@@ -76,7 +80,9 @@ __stdcall EgtSetMode( int nId, int nMode)
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
// imposto il modo
return ( pGeomDB->SetMode( nId, nMode) ? TRUE : FALSE) ;
bool bOk = pGeomDB->SetMode( nId, nMode) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
@@ -86,7 +92,9 @@ __stdcall EgtRevertMode( int nId)
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
// porto il modo allo stato precedente
return ( pGeomDB->RevertMode( nId) ? TRUE : FALSE) ;
bool bOk = pGeomDB->RevertMode( nId) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
@@ -123,6 +131,16 @@ __stdcall EgtSetStatus( int nId, int nStat)
VERIFY_GEOMDB( pGeomDB, FALSE)
// imposto il modo
bool bOk = pGeomDB->SetStatus( nId, nStat) ;
// se nascosto pezzo corrente o layer corrente
if ( nStat == GDB_ST_OFF) {
int nCurrPartId = EgtGetCurrPart() ;
if ( nId == nCurrPartId)
EgtResetCurrPartLayer() ;
else if ( nId == EgtGetCurrLayer())
EgtSetCurrPartLayer( nCurrPartId, EgtGetFirstVisibleLayer( nCurrPartId)) ;
}
// dichiaro progetto modificato
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sStat = "'ON'" ;
@@ -146,7 +164,9 @@ __stdcall EgtRevertStatus( int nId)
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
// porto lo stato al valore precedente
return ( pGeomDB->RevertStatus( nId) ? TRUE : FALSE) ;
bool bOk = pGeomDB->RevertStatus( nId) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
@@ -182,7 +202,9 @@ __stdcall EgtSetMark( int nId)
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
// imposto l'evidenziazione
return ( pGeomDB->SetMark( nId) ? TRUE : FALSE) ;
bool bOk = pGeomDB->SetMark( nId) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
@@ -192,7 +214,9 @@ __stdcall EgtResetMark( int nId)
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
// cancello l'evidenziazione
return ( pGeomDB->ResetMark( nId) ? TRUE : FALSE) ;
bool bOk = pGeomDB->ResetMark( nId) ;
EgtSetModified() ;
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
@@ -258,6 +282,7 @@ __stdcall EgtSetColor( int nId, const int ObjCol[4])
nI = pGeomDB->GetNextSelectedObj() ;
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSetColor(" + ( nId != GDB_ID_SEL ? ToString( nId): "GDB_ID_SEL") + ",{" +
@@ -289,6 +314,7 @@ __stdcall EgtResetColor( int nId)
nI = pGeomDB->GetNextSelectedObj() ;
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtResetColor(" + ( nId != GDB_ID_SEL ? ToString( nId): "GDB_ID_SEL") + ")" +
@@ -352,6 +378,7 @@ EgtSetName( int nId, const string& sName)
VERIFY_GEOMDB( pGeomDB, false)
// assegno il nome
bool bOk = pGeomDB->SetName( nId, sName) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSetName(" + ToString( nId) + ",'" +
@@ -368,7 +395,7 @@ BOOL
__stdcall EgtGetName( int nId, wchar_t*& wsName)
{
if ( &wsName == nullptr)
return false ;
return FALSE ;
string sName ;
if ( ! EgtGetName( nId, sName))
return FALSE ;
@@ -404,6 +431,7 @@ __stdcall EgtRemoveName( int nId)
VERIFY_GEOMDB( pGeomDB, FALSE)
// rimuovo il nome
bool bOk = pGeomDB->RemoveName( nId) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtRemoveName(" + ToString( nId) + ")" +
@@ -429,6 +457,7 @@ EgtSetInfo( int nId, const string& sKey, const string& sInfo)
VERIFY_GEOMDB( pGeomDB, FALSE)
// assegno la info
bool bOk = pGeomDB->SetInfo( nId, sKey, sInfo) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSetInfo(" + ToString( nId) + ",'" +
@@ -455,7 +484,9 @@ EgtSetInfo( int nId, const string& sKey, int nInfo)
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, FALSE)
// assegno la info
return pGeomDB->SetInfo( nId, sKey, nInfo) ;
bool bOk = pGeomDB->SetInfo( nId, sKey, nInfo) ;
EgtSetModified() ;
return bOk ;
}
//-----------------------------------------------------------------------------
@@ -532,6 +563,7 @@ EgtRemoveInfo( int nId, const string& sKey)
VERIFY_GEOMDB( pGeomDB, FALSE)
// rimuovo la info
bool bOk = pGeomDB->RemoveInfo( nId, sKey) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtRemoveInfo(" + ToString( nId) + ",'" +
+10 -96
View File
@@ -113,32 +113,20 @@ __stdcall EgtDeselectAll( void)
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtSelectPartObjs( int nPartId)
__stdcall EgtSelectGroupObjs( int nGroupId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
bool bOk = true ;
// verifico sia veramente un pezzo (gruppo sotto la radice)
if ( pGeomDB->GetGdbType( nPartId) == GDB_TY_GROUP &&
pGeomDB->GetParentId( nPartId) == GDB_ID_ROOT) {
// ciclo sugli oggetti del pezzo
int nId = pGeomDB->GetFirstInGroup( nPartId) ;
while ( nId != GDB_ID_NULL) {
// se è gruppo seleziono i suoi componenti
if ( pGeomDB->GetGdbType( nId) == GDB_TY_GROUP)
pGeomDB->SelectGroupObjs( nId) ;
// altrimenti lo seleziono direttamente
else
pGeomDB->SelectObj( nId) ;
// passo al successivo
nId = pGeomDB->GetNext( nId) ;
}
// verifico sia un gruppo
if ( pGeomDB->GetGdbType( nGroupId) == GDB_TY_GROUP) {
bOk = pGeomDB->SelectGroupObjs( nGroupId) ;
}
else
bOk = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSelectPartObjs(" + ToString( nPartId) + ")" +
string sLua = "EgtSelectGroupObjs(" + ToString( nGroupId) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
@@ -148,94 +136,20 @@ __stdcall EgtSelectPartObjs( int nPartId)
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtDeselectPartObjs( int nPartId)
__stdcall EgtDeselectGroupObjs( int nGroupId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
bool bOk = true ;
// verifico sia veramente un pezzo (gruppo sotto la radice)
if ( pGeomDB->GetGdbType( nPartId) == GDB_TY_GROUP &&
pGeomDB->GetParentId( nPartId) == GDB_ID_ROOT) {
// ciclo sugli oggetti del pezzo
int nId = pGeomDB->GetFirstInGroup( nPartId) ;
while ( nId != GDB_ID_NULL) {
// se è gruppo deseleziono i suoi componenti
if ( pGeomDB->GetGdbType( nId) == GDB_TY_GROUP)
pGeomDB->DeselectGroupObjs( nId) ;
// altrimenti lo deseleziono direttamente
else
pGeomDB->DeselectObj( nId) ;
// passo al successivo
nId = pGeomDB->GetNext( nId) ;
}
// verifico sia un gruppo
if ( pGeomDB->GetGdbType( nGroupId) == GDB_TY_GROUP) {
bOk = pGeomDB->DeselectGroupObjs( nGroupId) ;
}
else
bOk = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtDeselectPartObjs(" + ToString( nPartId) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtSelectLayerObjs( int nLayerId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
bool bOk = true ;
// verifico sia veramente un layer (gruppo senza sottogruppi)
if ( pGeomDB->GetGdbType( nLayerId) == GDB_TY_GROUP &&
pGeomDB->GetFirstGroupInGroup( nLayerId) == GDB_ID_NULL) {
// ciclo sugli oggetti del layer
int nId = pGeomDB->GetFirstInGroup( nLayerId) ;
while ( nId != GDB_ID_NULL) {
// seleziono
pGeomDB->SelectObj( nId) ;
// passo al successivo
nId = pGeomDB->GetNext( nId) ;
}
}
else
bOk = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSelectLayerObjs(" + ToString( nLayerId) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtDeselectLayerObjs( int nLayerId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
bool bOk = true ;
// verifico sia veramente un layer (gruppo senza sottogruppi)
if ( pGeomDB->GetGdbType( nLayerId) == GDB_TY_GROUP &&
pGeomDB->GetFirstGroupInGroup( nLayerId) == GDB_ID_NULL) {
// ciclo sugli oggetti del layer
int nId = pGeomDB->GetFirstInGroup( nLayerId) ;
while ( nId != GDB_ID_NULL) {
// deseleziono
pGeomDB->DeselectObj( nId) ;
// passo al successivo
nId = pGeomDB->GetNext( nId) ;
}
}
else
bOk = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtDeselectLayerObjs(" + ToString( nLayerId) + ")" +
string sLua = "EgtDeselectGroupObjs(" + ToString( nGroupId) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
+20
View File
@@ -227,6 +227,7 @@ __stdcall EgtCopy( int nSouId, int nRefId, int nSonBeforeAfter)
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// eseguo la copia
int nNewId = pGeomDB->Copy( nSouId, GDB_ID_NULL, nRefId, nSonBeforeAfter) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua ;
@@ -253,6 +254,7 @@ __stdcall EgtCopyGlob( int nSouId, int nRefId, int nSonBeforeAfter)
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// eseguo la copia mantenendo la posizione in globale
int nNewId = pGeomDB->CopyGlob( nSouId, GDB_ID_NULL, nRefId, nSonBeforeAfter) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua ;
@@ -279,6 +281,7 @@ __stdcall EgtRelocate( int nSouId, int nRefId, int nSonBeforeAfter)
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// eseguo la rilocazione
bool bOk = pGeomDB->Relocate( nSouId, nRefId, nSonBeforeAfter) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua ;
@@ -305,6 +308,7 @@ __stdcall EgtRelocateGlob( int nSouId, int nRefId, int nSonBeforeAfter)
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// eseguo la rilocazione mantenendo la posizione in globale
bool bOk = pGeomDB->RelocateGlob( nSouId, nRefId, nSonBeforeAfter) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua ;
@@ -331,6 +335,7 @@ __stdcall EgtChangeId( int nId, int nNewId)
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// eseguo cambio di Id
bool bOk = pGeomDB->ChangeId( nId, nNewId) ;
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtChangeId(" + ToString( nId) + "," +
@@ -351,16 +356,31 @@ __stdcall EgtErase( int nId)
// eseguo cancellazione singola
if ( nId != GDB_ID_SEL) {
bOk = pGeomDB->Erase( nId) ;
// se cancellato pezzo corrente o layer corrente
int nCurrPartId = EgtGetCurrPart() ;
if ( nId == nCurrPartId)
EgtResetCurrPartLayer() ;
else if ( nId == EgtGetCurrLayer())
EgtSetCurrPartLayer( nCurrPartId, EgtGetFirstVisibleLayer( nCurrPartId)) ;
}
// eseguo cancellazione dei selezionati
else {
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
// cancello
if ( ! pGeomDB->Erase( nI))
bOk = false ;
// se cancellato pezzo corrente o layer corrente
int nCurrPartId = EgtGetCurrPart() ;
if ( nI == nCurrPartId)
EgtResetCurrPartLayer() ;
else if ( nI == EgtGetCurrLayer())
EgtSetCurrPartLayer( nCurrPartId, EgtGetFirstVisibleLayer( nCurrPartId)) ;
// passo al successivo
nI = pGeomDB->GetFirstSelectedObj() ;
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtErase(" + ( nId != GDB_ID_SEL ? ToString( nId) : "GDB_ID_SEL") + ")" +
+323
View File
@@ -0,0 +1,323 @@
//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : API_GdbPartLayers.cpp Data : 29.01.15 Versione : 1.6a7
// Contenuto : Funzioni di gestione pezzi e layer relativi.
//
//
//
// Modifiche : 29.01.15 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
//--------------------------- Include ----------------------------------------
#include "stdafx.h"
#include "API.h"
#include "API_Macro.h"
#include "/EgtDev/Include/EInAPI.h"
#include "/EgtDev/Include/EGkStringUtils3d.h"
using namespace std ;
//-------------------------------------------------------------------------------
static bool
EgtIsVisibleObj( IGeomDB* pGeomDB, int nId)
{
int nStat ;
return ( pGeomDB->GetCalcStatus( nId, nStat) && nStat != GDB_ST_OFF) ;
}
//-------------------------------------------------------------------------------
static int
EgtVerifyOrNextVisible( IGeomDB* pGeomDB, int nId)
{
while ( nId != GDB_ID_NULL) {
if ( EgtIsVisibleObj( pGeomDB, nId))
return nId ;
nId = pGeomDB->GetNextGroup( nId) ;
}
return GDB_ID_NULL ;
}
//-------------------------------------------------------------------------------
int
__stdcall EgtGetCurrPart( void)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, GDB_ID_NULL)
// recupero il pezzo corrente
return pGseCtx->m_nCurrPart ;
}
//-------------------------------------------------------------------------------
int
__stdcall EgtGetCurrLayer( void)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, GDB_ID_NULL)
// recupero il pezzo corrente
return pGseCtx->m_nCurrLayer ;
}
//-------------------------------------------------------------------------------
BOOL
__stdcall EgtSetCurrPartLayer( int nPartId, int nLayerId)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, FALSE)
IGeomDB* pGeomDB = pGseCtx->m_pGeomDB ;
bool bOk = true ;
// verifico validità e visibilità pezzo
if ( pGeomDB->GetParentId( nPartId) == GDB_ID_ROOT && EgtIsVisibleObj( pGeomDB, nPartId)) {
if ( nPartId != pGseCtx->m_nCurrPart)
pGseCtx->m_nCurrLayer = GDB_ID_NULL ;
pGseCtx->m_nCurrPart = nPartId ;
}
else {
if ( nPartId == pGseCtx->m_nCurrPart || nPartId == GDB_ID_NULL) {
pGseCtx->m_nCurrPart = GDB_ID_NULL ;
pGseCtx->m_nCurrLayer = GDB_ID_NULL ;
}
bOk = false ;
}
// verifico validità e visibilità layer
if ( pGeomDB->GetParentId( nLayerId) == nPartId && EgtIsVisibleObj( pGeomDB, nLayerId)) {
pGseCtx->m_nCurrLayer = nLayerId ;
}
else {
if ( nLayerId == pGseCtx->m_nCurrLayer || nLayerId == GDB_ID_NULL)
pGseCtx->m_nCurrLayer = GDB_ID_NULL ;
bOk = false ;
}
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSetCurrPartLayer(" + ToString( nPartId) + "," +
ToString( nLayerId) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco il risultato
return ( bOk ? TRUE : FALSE) ;
}
//-------------------------------------------------------------------------------
BOOL
__stdcall EgtResetCurrPartLayer( void)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, FALSE)
IGeomDB* pGeomDB = pGseCtx->m_pGeomDB ;
// reset
pGseCtx->m_nCurrPart = GDB_ID_NULL ;
pGseCtx->m_nCurrLayer = GDB_ID_NULL ;
// cerco il primo pezzo con un layer visibile
int nPartId = EgtGetFirstVisiblePart() ;
while ( nPartId != GDB_ID_NULL) {
// cerco il primo layer visibile del pezzo
int nLayerId = EgtGetFirstVisibleLayer( nPartId) ;
if ( nLayerId != GDB_ID_NULL) {
// assegno il pezzo corrente
pGseCtx->m_nCurrPart = nPartId ;
// assegno il layer corrente
pGseCtx->m_nCurrLayer = nLayerId ;
// esco dal ciclo di ricerca
break ;
}
nPartId = EgtGetNextVisiblePart( nPartId) ;
}
// se non ho trovato layer visibile mi accontento del primo pezzo visibile
if ( pGseCtx->m_nCurrPart == GDB_ID_NULL)
pGseCtx->m_nCurrPart = EgtGetFirstVisiblePart() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtResetCurrPartLayer()"
" -- Ids=" + ToString( pGseCtx->m_nCurrPart) + "," + ToString( pGseCtx->m_nCurrLayer) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco il risultato
return TRUE ;
}
//-------------------------------------------------------------------------------
int
__stdcall EgtGetFirstVisiblePart( void)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// recupero il primo gruppo sotto la radice
int nPartId = pGeomDB->GetFirstGroupInGroup( GDB_ID_ROOT) ;
// verifico sia visibile oppure passo al primo successivo visibile
return EgtVerifyOrNextVisible( pGeomDB, nPartId) ;
}
//-------------------------------------------------------------------------------
int
__stdcall EgtGetNextVisiblePart( int nId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// recupero il successivo gruppo
int nPartId = pGeomDB->GetNextGroup( nId) ;
// verifico sia visibile oppure passo al primo successivo visibile
return EgtVerifyOrNextVisible( pGeomDB, nPartId) ;
}
//-------------------------------------------------------------------------------
int
__stdcall EgtGetFirstVisibleLayer( int nPartId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// verifico la visibilità del pezzo
if ( ! EgtIsVisibleObj( pGeomDB, nPartId))
return GDB_ID_NULL ;
// recupero il primo layer nel pezzo
int nLayerId = pGeomDB->GetFirstGroupInGroup( nPartId) ;
// verifico sia visibile oppure passo al primo successivo visibile
return EgtVerifyOrNextVisible( pGeomDB, nLayerId) ;
}
//-------------------------------------------------------------------------------
int
__stdcall EgtGetNextVisibleLayer( int nId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
// recupero il successivo gruppo
int nLayerId = pGeomDB->GetNextGroup( nId) ;
// verifico sia visibile oppure passo al primo successivo visibile
return EgtVerifyOrNextVisible( pGeomDB, nLayerId) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtSelectPartObjs( int nPartId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
bool bOk = true ;
// verifico sia veramente un pezzo (gruppo sotto la radice)
if ( pGeomDB->GetGdbType( nPartId) == GDB_TY_GROUP &&
pGeomDB->GetParentId( nPartId) == GDB_ID_ROOT) {
// ciclo sugli oggetti del pezzo
int nId = pGeomDB->GetFirstInGroup( nPartId) ;
while ( nId != GDB_ID_NULL) {
// se è gruppo seleziono i suoi componenti
if ( pGeomDB->GetGdbType( nId) == GDB_TY_GROUP)
pGeomDB->SelectGroupObjs( nId) ;
// altrimenti lo seleziono direttamente
else
pGeomDB->SelectObj( nId) ;
// passo al successivo
nId = pGeomDB->GetNext( nId) ;
}
}
else
bOk = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSelectPartObjs(" + ToString( nPartId) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtDeselectPartObjs( int nPartId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
bool bOk = true ;
// verifico sia veramente un pezzo (gruppo sotto la radice)
if ( pGeomDB->GetGdbType( nPartId) == GDB_TY_GROUP &&
pGeomDB->GetParentId( nPartId) == GDB_ID_ROOT) {
// ciclo sugli oggetti del pezzo
int nId = pGeomDB->GetFirstInGroup( nPartId) ;
while ( nId != GDB_ID_NULL) {
// se è gruppo deseleziono i suoi componenti
if ( pGeomDB->GetGdbType( nId) == GDB_TY_GROUP)
pGeomDB->DeselectGroupObjs( nId) ;
// altrimenti lo deseleziono direttamente
else
pGeomDB->DeselectObj( nId) ;
// passo al successivo
nId = pGeomDB->GetNext( nId) ;
}
}
else
bOk = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtDeselectPartObjs(" + ToString( nPartId) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtSelectLayerObjs( int nLayerId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
bool bOk = true ;
// verifico sia veramente un layer (gruppo senza sottogruppi)
if ( pGeomDB->GetGdbType( nLayerId) == GDB_TY_GROUP &&
pGeomDB->GetFirstGroupInGroup( nLayerId) == GDB_ID_NULL) {
// ciclo sugli oggetti del layer
int nId = pGeomDB->GetFirstInGroup( nLayerId) ;
while ( nId != GDB_ID_NULL) {
// seleziono
pGeomDB->SelectObj( nId) ;
// passo al successivo
nId = pGeomDB->GetNext( nId) ;
}
}
else
bOk = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtSelectLayerObjs(" + ToString( nLayerId) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtDeselectLayerObjs( int nLayerId)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
bool bOk = true ;
// verifico sia veramente un layer (gruppo senza sottogruppi)
if ( pGeomDB->GetGdbType( nLayerId) == GDB_TY_GROUP &&
pGeomDB->GetFirstGroupInGroup( nLayerId) == GDB_ID_NULL) {
// ciclo sugli oggetti del layer
int nId = pGeomDB->GetFirstInGroup( nLayerId) ;
while ( nId != GDB_ID_NULL) {
// deseleziono
pGeomDB->DeselectObj( nId) ;
// passo al successivo
nId = pGeomDB->GetNext( nId) ;
}
}
else
bOk = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtDeselectLayerObjs(" + ToString( nLayerId) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
+10
View File
@@ -82,6 +82,7 @@ EgtMove( INTVECTOR& vIds, const Vector3d& vtMove, int nRefType)
}
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sIds ;
@@ -163,6 +164,7 @@ EgtRotate( INTVECTOR& vIds, const Point3d& ptAx, const Vector3d& vtAx, double dA
}
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sIds ;
@@ -251,6 +253,7 @@ EgtScale( INTVECTOR& vIds, const Frame3d& frRef,
}
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sIds ;
@@ -338,6 +341,7 @@ EgtMirror( INTVECTOR& vIds, const Point3d& ptP, const Vector3d& vtN, int nRefTyp
}
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sIds ;
@@ -424,6 +428,7 @@ EgtShear( INTVECTOR& vIds, const Point3d& ptP, const Vector3d& vtN,
}
}
}
EgtSetModified() ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sIds ;
@@ -465,6 +470,7 @@ __stdcall EgtMoveGroup( int nId, double vVtMove[3])
nI = pGeomDB->GetNextSelectedObj() ;
}
}
EgtSetModified() ;
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
@@ -489,6 +495,7 @@ __stdcall EgtRotateGroup( int nId, double vPtAx[3], double vVtAx[3], double dAng
nI = pGeomDB->GetNextSelectedObj() ;
}
}
EgtSetModified() ;
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
@@ -519,6 +526,7 @@ __stdcall EgtScaleGroup( int nId, const double vOrig[3],
nI = pGeomDB->GetNextSelectedObj() ;
}
}
EgtSetModified() ;
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
@@ -543,6 +551,7 @@ __stdcall EgtMirrorGroup( int nId, const double vPnt[3], const double vN[3])
nI = pGeomDB->GetNextSelectedObj() ;
}
}
EgtSetModified() ;
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
@@ -568,6 +577,7 @@ __stdcall EgtShearGroup( int nId, const double vPnt[3], const double vN[3],
nI = pGeomDB->GetNextSelectedObj() ;
}
}
EgtSetModified() ;
// restituisco risultato
return ( bOk ? TRUE : FALSE) ;
}
+116 -6
View File
@@ -174,6 +174,104 @@ EgtGetGridVersZ( int nRefId, Vector3d& vtVersZ)
return vtVersZ.ToLoc( frDest) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtSetCurrFilePath( const wchar_t* wsFilePath)
{
return ( EgtSetCurrFilePath( wstrztoA( wsFilePath)) ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
bool
EgtSetCurrFilePath( const string& sFilePath)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, false)
// assegno la path
pGseCtx->m_sFilePath = sFilePath ;
return true ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtGetCurrFilePath( wchar_t*& wsFilePath)
{
if ( &wsFilePath == nullptr)
return false ;
string sFilePath ;
if ( ! EgtGetCurrFilePath( sFilePath))
return FALSE ;
wsFilePath = _wcsdup( stringtoW( sFilePath)) ;
return (( wsFilePath == nullptr) ? FALSE : TRUE) ;
}
//-----------------------------------------------------------------------------
bool
EgtGetCurrFilePath( string& sFilePath)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, false)
// restituisco la path
sFilePath = pGseCtx->m_sFilePath ;
return ( ! sFilePath.empty()) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtEnableModified( void)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, FALSE)
// abilito possibilità di alterare il flag di modifica
pGseCtx->m_bEnableModified = true ;
return TRUE ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtDisableModified( void)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, FALSE)
// disabilito possibilità di alterare il flag di modifica
pGseCtx->m_bEnableModified = false ;
return TRUE ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtSetModified( void)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, FALSE)
// se consentito, imposto il flag
if ( pGseCtx->m_bEnableModified)
pGseCtx->m_bModified = true ;
return TRUE ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtResetModified( void)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, FALSE)
// se consentito, cancello il flag
if ( pGseCtx->m_bEnableModified)
pGseCtx->m_bModified = false ;
return TRUE ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtGetModified( void)
{
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, FALSE)
// imposto il flag
return ( pGseCtx->m_bModified ? TRUE : FALSE) ;
}
//-----------------------------------------------------------------------------
BOOL
__stdcall EgtNewFile( void)
@@ -184,6 +282,9 @@ __stdcall EgtNewFile( void)
// reinizializzazione (con pulizia) del DB geometrico
bOk = bOk && pGseCtx->m_pGeomDB->Init() ;
bOk = bOk && pGseCtx->m_pGeomDB->SetDefaultMaterial( pGseCtx->m_colDef) ;
// aggiorno stato file corrente
pGseCtx->m_sFilePath.clear() ;
pGseCtx->m_bModified = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLua = "EgtNewFile()"
@@ -213,6 +314,9 @@ EgtOpenFile( const string& sFilePath)
bOk = bOk && pGseCtx->m_pGeomDB->SetDefaultMaterial( pGseCtx->m_colDef) ;
// carico il file
bOk = bOk && GetCurrGeomDB()->Load( sFilePath) ;
// aggiorno stato file corrente
pGseCtx->m_sFilePath = sFilePath ;
pGseCtx->m_bModified = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLuaPath = sFilePath ;
@@ -236,10 +340,12 @@ __stdcall EgtInsertFile( const wchar_t* wsFilePath)
bool
EgtInsertFile( const string& sFilePath)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, false)
// carico il file
bool bOk = pGeomDB->Load( sFilePath) ;
bool bOk = pGseCtx->m_pGeomDB->Load( sFilePath) ;
// aggiorno stato file corrente
pGseCtx->m_bModified = true ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLuaPath = sFilePath ;
@@ -263,10 +369,14 @@ __stdcall EgtSaveFile( const wchar_t* wsFilePath, int nFlag)
bool
EgtSaveFile( const string& sFilePath, int nFlag)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, false)
GseContext* pGseCtx = GetCurrGseContext() ;
VERIFY_CTX_GEOMDB( pGseCtx, false)
// salvo il file
bool bOk = pGeomDB->Save( sFilePath, nFlag) ;
bool bOk = pGseCtx->m_pGeomDB->Save( sFilePath, nFlag) ;
// aggiorno stato file corrente
pGseCtx->m_sFilePath = sFilePath ;
if ( bOk)
pGseCtx->m_bModified = false ;
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sLuaPath = sFilePath ;
BIN
View File
Binary file not shown.
+2
View File
@@ -224,6 +224,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
<ClCompile Include="API_GdbObjAttribs.cpp" />
<ClCompile Include="API_GdbObjects.cpp" />
<ClCompile Include="API_GdbObjSelection.cpp" />
<ClCompile Include="API_GdbPartLayers.cpp" />
<ClCompile Include="API_General.cpp" />
<ClCompile Include="API_GdbCreate.cpp" />
<ClCompile Include="API_GeoBase.cpp" />
@@ -245,6 +246,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
<ClCompile Include="LUA_GdbObjAttribs.cpp" />
<ClCompile Include="LUA_GdbObjects.cpp" />
<ClCompile Include="LUA_GdbObjSelection.cpp" />
<ClCompile Include="LUA_GdbPartLayers.cpp" />
<ClCompile Include="LUA_General.cpp" />
<ClCompile Include="LUA_GdbCreate.cpp" />
<ClCompile Include="LUA_GeoBase.cpp" />
+6
View File
@@ -173,6 +173,12 @@
<ClCompile Include="LUA_GdbObjSelection.cpp">
<Filter>File di origine\LUA</Filter>
</ClCompile>
<ClCompile Include="LUA_GdbPartLayers.cpp">
<Filter>File di origine\LUA</Filter>
</ClCompile>
<ClCompile Include="API_GdbPartLayers.cpp">
<Filter>File di origine\API</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="EgtInterface.rc">
+14 -1
View File
@@ -27,10 +27,18 @@ class GseContext
HWND m_hWnd ;
IEGrScene* m_pScene ;
ICmdParser* m_pTscExec ;
std::string m_sFilePath ;
bool m_bEnableModified ;
bool m_bModified ;
int m_nCurrPart ;
int m_nCurrLayer ;
public :
GseContext( void)
: m_pGeomDB( nullptr), m_colDef( GRAY), m_hWnd( nullptr), m_pScene( nullptr), m_pTscExec( nullptr) {}
: m_pGeomDB( nullptr), m_colDef( GRAY), m_hWnd( nullptr), m_pScene( nullptr), m_pTscExec( nullptr),
m_sFilePath(), m_bEnableModified( true), m_bModified( false),
m_nCurrPart( GDB_ID_NULL), m_nCurrLayer( GDB_ID_NULL)
{}
~GseContext( void)
{ Clear() ; }
void Clear( void)
@@ -49,6 +57,11 @@ class GseContext
delete m_pGeomDB ;
m_pGeomDB = nullptr ;
}
m_sFilePath.clear() ;
m_bEnableModified = true ;
m_bModified = false ;
m_nCurrPart = GDB_ID_NULL ;
m_nCurrLayer = GDB_ID_NULL ;
}
} ;
+3
View File
@@ -83,6 +83,9 @@ bool LuaInstallGdbModify( lua_State* L) ;
//-------------------------- GdbModifyCurve ----------------------------------
bool LuaInstallGdbModifyCurve( lua_State* L) ;
//-------------------------- GdbPartLayer ------------------------------------
bool LuaInstallGdbPartLayer( lua_State* L) ;
//-------------------------- GdbObjects --------------------------------------
bool LuaInstallGdbObjects( lua_State* L) ;
+13 -46
View File
@@ -21,7 +21,6 @@
using namespace std ;
//-------------------------------------------------------------------------------
static int
LuaSelectObj( lua_State* L)
@@ -82,14 +81,14 @@ LuaDeselectAll( lua_State* L)
//-------------------------------------------------------------------------------
static int
LuaSelectPartObjs( lua_State* L)
LuaSelectGroupObjs( lua_State* L)
{
// 1 parametro : PartId
int nPartId ;
LuaCheckParam( L, 1, nPartId)
// 1 parametro : GroupId
int GroupId ;
LuaCheckParam( L, 1, GroupId)
LuaClearStack( L) ;
// eseguo la selezione
bool bOk = ( EgtSelectPartObjs( nPartId) != FALSE) ;
bool bOk = ( EgtSelectGroupObjs( GroupId) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
@@ -97,44 +96,14 @@ LuaSelectPartObjs( lua_State* L)
//-------------------------------------------------------------------------------
static int
LuaDeselectPartObjs( lua_State* L)
LuaDeselectGroupObjs( lua_State* L)
{
// 1 parametro : PartId
int nPartId ;
LuaCheckParam( L, 1, nPartId)
// 1 parametro : GroupId
int GroupId ;
LuaCheckParam( L, 1, GroupId)
LuaClearStack( L) ;
// eseguo la selezione
bool bOk = ( EgtDeselectPartObjs( nPartId) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaSelectLayerObjs( lua_State* L)
{
// 1 parametro : LayerId
int nLayerId ;
LuaCheckParam( L, 1, nLayerId)
LuaClearStack( L) ;
// eseguo la selezione
bool bOk = ( EgtSelectLayerObjs( nLayerId) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaDeselectLayerObjs( lua_State* L)
{
// 1 parametro : LayerId
int nLayerId ;
LuaCheckParam( L, 1, nLayerId)
LuaClearStack( L) ;
// eseguo la selezione
bool bOk = ( EgtDeselectLayerObjs( nLayerId) != FALSE) ;
// eseguo la deselezione
bool bOk = ( EgtDeselectGroupObjs( GroupId) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
@@ -241,10 +210,8 @@ LuaInstallGdbObjSelection( lua_State* L)
lua_register( L, "EgtDeselectObj", LuaDeselectObj) ;
lua_register( L, "EgtSelectAll", LuaSelectAll) ;
lua_register( L, "EgtDeselectAll", LuaDeselectAll) ;
lua_register( L, "EgtSelectPartObjs", LuaSelectPartObjs) ;
lua_register( L, "EgtDeselectPartObjs", LuaDeselectPartObjs) ;
lua_register( L, "EgtSelectLayerObjs", LuaSelectLayerObjs) ;
lua_register( L, "EgtDeselectLayerObjs", LuaDeselectLayerObjs) ;
lua_register( L, "EgtSelectGroupObjs", LuaSelectGroupObjs) ;
lua_register( L, "EgtDeselectGroupObjs", LuaDeselectGroupObjs) ;
lua_register( L, "EgtIsSelectedObj", LuaIsSelectedObj) ;
lua_register( L, "EgtGetSelectedObjNbr", LuaGetSelectedObjNbr) ;
lua_register( L, "EgtGetFirstSelectedObj", LuaGetFirstSelectedObj) ;
+220
View File
@@ -0,0 +1,220 @@
//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : LUA_GdbPartLayers.cpp Data : 29.01.15 Versione : 1.6a7
// Contenuto : Funzioni di gestione pezzi e layer relativi per LUA.
//
//
//
// Modifiche : 29.01.15 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
//--------------------------- Include ----------------------------------------
#include "stdafx.h"
#include "LUA.h"
#include "API.h"
#include "/EgtDev/Include/EInAPI.h"
#include "/EgtDev/Include/EgnStringUtils.h"
#include "/EgtDev/Extern/Lua/Include/lua.hpp"
using namespace std ;
//-------------------------------------------------------------------------------
static int
LuaGetCurrPart( lua_State* L)
{
// nessun parametro
LuaClearStack( L) ;
// recupero il pezzo corrente
int nId = EgtGetCurrPart() ;
// restituisco il risultato
LuaSetReturn( L, nId) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaGetCurrLayer( lua_State* L)
{
// nessun parametro
LuaClearStack( L) ;
// recupero il layer corrente
int nId = EgtGetCurrLayer() ;
// restituisco il risultato
LuaSetReturn( L, nId) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaSetCurrPartLayer( lua_State* L)
{
// 2 parametri : nPartId, nLayerId
int nPartId ;
LuaCheckParam( L, 1, nPartId)
int nLayerId ;
LuaCheckParam( L, 2, nLayerId)
LuaClearStack( L) ;
// imposto pezzo e layer correnti
bool bOk = ( EgtSetCurrPartLayer( nPartId, nLayerId) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaResetCurrPartLayer( lua_State* L)
{
// nessun parametro
LuaClearStack( L) ;
// cerco primo pezzo e layer validi per essere dichiarati correnti
bool bOk = ( EgtResetCurrPartLayer() != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaGetFirstVisiblePart( lua_State* L)
{
// nessun parametro
LuaClearStack( L) ;
// cerco primo pezzo e layer validi per essere dichiarati correnti
int nId = EgtGetFirstVisiblePart() ;
// restituisco il risultato
LuaSetReturn( L, nId) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaGetNextVisiblePart( lua_State* L)
{
// 1 parametro : nPartId
int nPartId ;
LuaCheckParam( L, 1, nPartId)
LuaClearStack( L) ;
// cerco primo pezzo e layer validi per essere dichiarati correnti
int nId = EgtGetNextVisiblePart( nPartId) ;
// restituisco il risultato
LuaSetReturn( L, nId) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaGetFirstVisibleLayer( lua_State* L)
{
// 1 parametro : nPartId
int nPartId ;
LuaCheckParam( L, 1, nPartId)
LuaClearStack( L) ;
// cerco il primo layer visibile del pezzo
int nId = EgtGetFirstVisibleLayer( nPartId) ;
// restituisco il risultato
LuaSetReturn( L, nId) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaGetNextVisibleLayer( lua_State* L)
{
// 1 parametro : nLayerId
int nLayerId ;
LuaCheckParam( L, 1, nLayerId)
LuaClearStack( L) ;
// cerco il prossimo layer visibile (ovviamente dello stesso pezzo)
int nId = EgtGetNextVisibleLayer( nLayerId) ;
// restituisco il risultato
LuaSetReturn( L, nId) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaSelectPartObjs( lua_State* L)
{
// 1 parametro : PartId
int nPartId ;
LuaCheckParam( L, 1, nPartId)
LuaClearStack( L) ;
// eseguo la selezione
bool bOk = ( EgtSelectPartObjs( nPartId) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaDeselectPartObjs( lua_State* L)
{
// 1 parametro : PartId
int nPartId ;
LuaCheckParam( L, 1, nPartId)
LuaClearStack( L) ;
// eseguo la selezione
bool bOk = ( EgtDeselectPartObjs( nPartId) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaSelectLayerObjs( lua_State* L)
{
// 1 parametro : LayerId
int nLayerId ;
LuaCheckParam( L, 1, nLayerId)
LuaClearStack( L) ;
// eseguo la selezione
bool bOk = ( EgtSelectLayerObjs( nLayerId) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
static int
LuaDeselectLayerObjs( lua_State* L)
{
// 1 parametro : LayerId
int nLayerId ;
LuaCheckParam( L, 1, nLayerId)
LuaClearStack( L) ;
// eseguo la selezione
bool bOk = ( EgtDeselectLayerObjs( nLayerId) != FALSE) ;
// restituisco il risultato
LuaSetReturn( L, bOk) ;
return 1 ;
}
//-------------------------------------------------------------------------------
bool
LuaInstallGdbPartLayer( lua_State* L)
{
try {
lua_register( L, "EgtGetCurrPart", LuaGetCurrPart) ;
lua_register( L, "EgtGetCurrLayer", LuaGetCurrLayer) ;
lua_register( L, "EgtSetCurrPartLayer", LuaSetCurrPartLayer) ;
lua_register( L, "EgtResetCurrPartLayer", LuaResetCurrPartLayer) ;
lua_register( L, "EgtGetFirstVisiblePart", LuaGetFirstVisiblePart) ;
lua_register( L, "EgtGetNextVisiblePart", LuaGetNextVisiblePart) ;
lua_register( L, "EgtGetFirstVisibleLayer", LuaGetFirstVisibleLayer) ;
lua_register( L, "EgtGetNextVisibleLayer", LuaGetNextVisibleLayer) ;
lua_register( L, "EgtSelectPartObjs", LuaSelectPartObjs) ;
lua_register( L, "EgtDeselectPartObjs", LuaDeselectPartObjs) ;
lua_register( L, "EgtSelectLayerObjs", LuaSelectLayerObjs) ;
lua_register( L, "EgtDeselectLayerObjs", LuaDeselectLayerObjs) ;
}
catch ( ...) {
return false ;
}
return true ;
}
+4
View File
@@ -79,6 +79,10 @@ LuaInit( void)
LOG_ERROR( GetLogger(), "Error in LuaInstallGdbModifyCurve (" __FUNCTION__ ")")
return false ;
}
if ( ! LuaInstallGdbPartLayer( s_L)) {
LOG_ERROR( GetLogger(), "Error in LuaInstallGdbPartLayer (" __FUNCTION__ ")")
return false ;
}
if ( ! LuaInstallGdbObjects( s_L)) {
LOG_ERROR( GetLogger(), "Error in LuaInstallGdbObjects (" __FUNCTION__ ")")
return false ;