EgtInterface 1.6b5 :

- in CurveCompoByChain si cancellano gli originali solo se ok
- in EgtModifyCurveThickness gestito vettore di Id
- aggiunto Snap Point Baricentro (Gravity Center)
- aggiunte EgtCurveArcRadius, EgtCurveCompoCenter
- aggiunte funzioni lua EgtGP, EgtET, EgtCurveLength, EgtCurveArcRadius e EgtCurveCompoCenter.
This commit is contained in:
Dario Sassi
2015-02-24 22:55:51 +00:00
parent a06fe0c00b
commit 5e3c729190
7 changed files with 241 additions and 31 deletions
+33 -19
View File
@@ -232,11 +232,9 @@ EgtModifyCurveExtrusion( INTVECTOR& vIds, const Vector3d& vtExtr, int nRefType)
// se richiesto, salvo il comando Lua equivalente
if ( IsCmdLog()) {
string sIds ;
for ( size_t i = 0 ; i < vIds.size() ; ++ i) {
if ( i > 0)
sIds += "," ;
sIds += ( vIds[i] != GDB_ID_SEL ? ToString( vIds[i]) : "GDB_ID_SEL") ;
}
for ( size_t i = 0 ; i < vIds.size() ; ++ i)
sIds += ( vIds[i] != GDB_ID_SEL ? ToString( vIds[i]) : "GDB_ID_SEL") + "," ;
sIds.pop_back() ;
string sLua = "EgtModifyCurveExtrusion({" + sIds + "},{" +
ToString( Vector3d( vtExtr)) + "}," +
RefTypeToString( nRefType) + ")" +
@@ -279,29 +277,45 @@ ModifyOneCurveThickness( IGeomDB* pGeomDB, int nId, double dThick)
//----------------------------------------------------------------------------
BOOL
__stdcall EgtModifyCurveThickness( int nId, double dThick)
{
INTVECTOR vIds ;
vIds.push_back( nId) ;
return ( EgtModifyCurveThickness( vIds, dThick) ? TRUE : FALSE) ;
}
//----------------------------------------------------------------------------
bool
EgtModifyCurveThickness( INTVECTOR& vIds, double dThick)
{
IGeomDB* pGeomDB = GetCurrGeomDB() ;
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
bool bOk = true ;
// eseguo impostazione spessore singola
if ( nId != GDB_ID_SEL) {
bOk = ModifyOneCurveThickness( pGeomDB, nId, dThick) ;
}
// eseguo impostazione spessore dei selezionati
else {
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! ModifyOneCurveThickness( pGeomDB, nI, dThick))
bOk = false ;
// passo alla successiva
nI = pGeomDB->GetNextSelectedObj() ;
// ciclo sul vettore degli identificativi
for ( size_t i = 0 ; i < vIds.size() && bOk ; ++ i) {
// eseguo impostazione spessore singola
if ( vIds[i] != GDB_ID_SEL) {
bOk = bOk && ModifyOneCurveThickness( pGeomDB, vIds[i], dThick) ;
}
// eseguo impostazione spessore dei selezionati
else {
int nI = pGeomDB->GetFirstSelectedObj() ;
while ( nI != GDB_ID_NULL && bOk) {
if ( ! ModifyOneCurveThickness( pGeomDB, nI, dThick))
bOk = false ;
// passo alla successiva
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") + "," +
ToString( dThick) + ")" +
string sIds ;
for ( size_t i = 0 ; i < vIds.size() ; ++ i)
sIds += ( vIds[i] != GDB_ID_SEL ? ToString( vIds[i]) : "GDB_ID_SEL") + "," ;
sIds.pop_back() ;
string sLua = "EgtModifyCurveThickness({" + sIds + "}," +
ToString( dThick) + ")" +
" -- Ok=" + ToString( bOk) ;
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
}