EgtGeomKernel 1.4a1 : gli oggetti non hanno più un nome ma un Id.
This commit is contained in:
+71
-27
@@ -110,7 +110,9 @@ GdbExecutor::Execute( const string& sCmd1, const string& sCmd2, const STRVECTOR&
|
||||
cout << "]" << endl ;
|
||||
|
||||
// esecuzione comando
|
||||
if ( sCmd1 == "P" || sCmd1 == "POINT")
|
||||
if ( sCmd1 == "ALIAS")
|
||||
return ExecuteAlias( sCmd2, vsParams) ;
|
||||
else if ( sCmd1 == "P" || sCmd1 == "POINT")
|
||||
return ExecutePoint( sCmd2, vsParams) ;
|
||||
else if ( sCmd1 == "V" || sCmd1 == "VECTOR")
|
||||
return ExecuteVector( sCmd2, vsParams) ;
|
||||
@@ -144,11 +146,31 @@ GdbExecutor::Execute( const string& sCmd1, const string& sCmd2, const STRVECTOR&
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::ExecuteAlias( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
{
|
||||
// analisi ed esecuzione dei comandi
|
||||
if ( sCmd2 == "") {
|
||||
int nId ;
|
||||
// 2 parametri : stringa alias e Id
|
||||
if ( vsParams.size() != 2)
|
||||
return false ;
|
||||
// recupero Id
|
||||
if ( ! FromString( vsParams[1], nId))
|
||||
return false ;
|
||||
// inserisco le stringhe in coda alla lista
|
||||
return m_AliasMap.insert( pair< string, int>( vsParams[0], nId)).second ;
|
||||
}
|
||||
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::ExecutePoint( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
{
|
||||
// analisi ed esecuzione dei comandi
|
||||
// analisi ed esecuzione dei comandi
|
||||
if ( sCmd2 == "MAKE" || sCmd2 == "") {
|
||||
Point3d Pnt ;
|
||||
// 4 parametri : un nome e 3 coordinate
|
||||
@@ -164,7 +186,7 @@ GdbExecutor::ExecutePoint( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
if ( pGPnt == nullptr)
|
||||
return false ;
|
||||
pGPnt->Set( Pnt) ;
|
||||
return m_pGDB->AddGeoObj( vsParams[0], pGPnt) ;
|
||||
return m_pGDB->AddGeoObj( GetIdParam( vsParams[0]), pGPnt) ;
|
||||
}
|
||||
|
||||
return false ;
|
||||
@@ -174,7 +196,7 @@ GdbExecutor::ExecutePoint( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
bool
|
||||
GdbExecutor::ExecuteVector( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
{
|
||||
// analisi ed esecuzione dei comandi
|
||||
// analisi ed esecuzione dei comandi
|
||||
if ( sCmd2 == "MAKE" || sCmd2 == "") {
|
||||
Vector3d Vect ;
|
||||
// 4 parametri
|
||||
@@ -190,7 +212,7 @@ GdbExecutor::ExecuteVector( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
if ( pGVect == nullptr)
|
||||
return false ;
|
||||
pGVect->Set( Vect) ;
|
||||
return m_pGDB->AddGeoObj( vsParams[0], pGVect) ;
|
||||
return m_pGDB->AddGeoObj( GetIdParam( vsParams[0]), pGVect) ;
|
||||
}
|
||||
|
||||
return false ;
|
||||
@@ -200,7 +222,7 @@ GdbExecutor::ExecuteVector( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
bool
|
||||
GdbExecutor::ExecuteCurveLine( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
{
|
||||
// analisi ed esecuzione dei comandi
|
||||
// analisi ed esecuzione dei comandi
|
||||
if ( sCmd2 == "MAKE" || sCmd2 == "") {
|
||||
Point3d ptStart ;
|
||||
Point3d ptEnd ;
|
||||
@@ -215,7 +237,7 @@ GdbExecutor::ExecuteCurveLine( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
ReleasePtr<ICurveLine> pCrvLine( CreateCurveLine()) ;
|
||||
if ( ! IsValid( pCrvLine) || ! pCrvLine->Set( ptStart, ptEnd))
|
||||
return false ;
|
||||
return m_pGDB->AddGeoObj( vsParams[0], Release( pCrvLine)) ;
|
||||
return m_pGDB->AddGeoObj( GetIdParam( vsParams[0]), Release( pCrvLine)) ;
|
||||
}
|
||||
|
||||
return false ;
|
||||
@@ -297,7 +319,7 @@ GdbExecutor::ExecuteCurveArc( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
|
||||
// inserisco l'arco nel DB
|
||||
return m_pGDB->AddGeoObj( vsParams[0], Release( pCrvArc)) ;
|
||||
return m_pGDB->AddGeoObj( GetIdParam( vsParams[0]), Release( pCrvArc)) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -357,7 +379,7 @@ GdbExecutor::ExecuteCurveBez( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
|
||||
// inserisco la curva di Bezier nel DB
|
||||
return m_pGDB->AddGeoObj( vsParams[0], Release( pCrvBez)) ;
|
||||
return m_pGDB->AddGeoObj( GetIdParam( vsParams[0]), Release( pCrvBez)) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -385,7 +407,7 @@ GdbExecutor::ExecuteCurveCompo( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
// esecuzione
|
||||
for ( Iter = vsNames.begin() ; Iter != vsNames.end() ; Iter++) {
|
||||
// recupero la curva
|
||||
pCrv = GetCurve( m_pGDB->GetGeoObj( *Iter)) ;
|
||||
pCrv = GetCurve( m_pGDB->GetGeoObj( GetIdParam( *Iter))) ;
|
||||
if ( pCrv == nullptr)
|
||||
return false ;
|
||||
// aggiungo questa curva
|
||||
@@ -393,11 +415,11 @@ GdbExecutor::ExecuteCurveCompo( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
}
|
||||
// inserisco la curva composita nel DB
|
||||
if ( m_pGDB->AddGeoObj( vsParams[0], Release( pCrvCompo))) {
|
||||
if ( m_pGDB->AddGeoObj( GetIdParam( vsParams[0]), Release( pCrvCompo))) {
|
||||
// se richiesto, cancello le curve originali
|
||||
if ( bErase) {
|
||||
for ( Iter = vsNames.begin() ; Iter != vsNames.end() ; Iter++) {
|
||||
if ( ! m_pGDB->Erase( (*Iter)))
|
||||
if ( ! m_pGDB->Erase( GetIdParam(*Iter)))
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
@@ -410,6 +432,26 @@ GdbExecutor::ExecuteCurveCompo( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
GdbExecutor::GetIdParam( const std::string& sParam)
|
||||
{
|
||||
int nVal ;
|
||||
AliasMap::iterator Iter ;
|
||||
|
||||
|
||||
// sostituisco eventuali Alias
|
||||
Iter = m_AliasMap.find( sParam) ;
|
||||
if ( Iter != m_AliasMap.end())
|
||||
return Iter->second ;
|
||||
// converto in identificatore numerico
|
||||
else if ( FromString( sParam, nVal))
|
||||
return nVal ;
|
||||
// altrimenti errore
|
||||
else
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::GetNamesParam( const std::string& sParam, STRVECTOR& vsNames)
|
||||
@@ -447,7 +489,7 @@ GdbExecutor::GetVectorParam( const std::string& sParam, Vector3d& vtV)
|
||||
// altrimenti nome di vettore già nel DB
|
||||
else {
|
||||
const IGeoVector3d* pV ;
|
||||
if ( ( pV = GetGeoVector3d( m_pGDB->GetGeoObj( sParam))) == nullptr)
|
||||
if ( ( pV = GetGeoVector3d( m_pGDB->GetGeoObj( GetIdParam( sParam)))) == nullptr)
|
||||
return false ;
|
||||
vtV = pV->GetVector() ;
|
||||
return true ;
|
||||
@@ -476,7 +518,7 @@ GdbExecutor::GetPointParam( const std::string& sParam, Point3d& ptP)
|
||||
// altrimenti nome di punto già nel DB
|
||||
else {
|
||||
const IGeoPoint3d* pPt ;
|
||||
if ( ( pPt = GetGeoPoint3d( m_pGDB->GetGeoObj( sParam))) == nullptr)
|
||||
if ( ( pPt = GetGeoPoint3d( m_pGDB->GetGeoObj( GetIdParam( sParam)))) == nullptr)
|
||||
return false ;
|
||||
ptP = pPt->GetPoint() ;
|
||||
return true ;
|
||||
@@ -511,7 +553,7 @@ GdbExecutor::GetPointWeParam( const std::string& sParam, Point3d& ptP, double& d
|
||||
else if ( vsParams.size() == 2) {
|
||||
const IGeoPoint3d* pPt ;
|
||||
// recupero il punto
|
||||
if ( ( pPt = GetGeoPoint3d( m_pGDB->GetGeoObj( vsParams[0]))) == nullptr)
|
||||
if ( ( pPt = GetGeoPoint3d( m_pGDB->GetGeoObj( GetIdParam( vsParams[0])))) == nullptr)
|
||||
return false ;
|
||||
ptP = pPt->GetPoint() ;
|
||||
// recupero il peso
|
||||
@@ -530,7 +572,7 @@ GdbExecutor::ExecuteCopy( const STRVECTOR& vsParams)
|
||||
if ( vsParams.size() != 2)
|
||||
return false ;
|
||||
// esecuzione copia
|
||||
return m_pGDB->Copy( vsParams[0], vsParams[1]) ;
|
||||
return m_pGDB->Copy( GetIdParam( vsParams[0]), GetIdParam( vsParams[1])) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -549,7 +591,7 @@ GdbExecutor::ExecuteErase( const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
// esecuzione cancellazioni
|
||||
for ( Iter = vsNames.begin() ; Iter != vsNames.end() ; Iter++) {
|
||||
if ( ! m_pGDB->Erase( (*Iter)))
|
||||
if ( ! m_pGDB->Erase( GetIdParam( *Iter)))
|
||||
return false ;
|
||||
}
|
||||
|
||||
@@ -576,7 +618,7 @@ GdbExecutor::ExecuteTranslate( const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
// esecuzione traslazioni
|
||||
for ( Iter = vsNames.begin() ; Iter != vsNames.end() ; Iter++) {
|
||||
if ( ! m_pGDB->Translate( (*Iter), vtVN))
|
||||
if ( ! m_pGDB->Translate( GetIdParam( *Iter), vtVN))
|
||||
return false ;
|
||||
}
|
||||
|
||||
@@ -611,7 +653,7 @@ GdbExecutor::ExecuteRotate( const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
// esecuzione rotazioni
|
||||
for ( Iter = vsNames.begin() ; Iter != vsNames.end() ; Iter++) {
|
||||
if ( ! m_pGDB->Rotate( (*Iter), ptPC, vtVN, dAngDeg))
|
||||
if ( ! m_pGDB->Rotate( GetIdParam( *Iter), ptPC, vtVN, dAngDeg))
|
||||
return false ;
|
||||
}
|
||||
|
||||
@@ -646,7 +688,7 @@ GdbExecutor::ExecuteScale( const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
// esecuzione scalature
|
||||
for ( Iter = vsNames.begin() ; Iter != vsNames.end() ; Iter++) {
|
||||
if ( ! m_pGDB->Scale( (*Iter), ptPC, dCoeffX, dCoeffY, dCoeffZ))
|
||||
if ( ! m_pGDB->Scale( GetIdParam( *Iter), ptPC, dCoeffX, dCoeffY, dCoeffZ))
|
||||
return false ;
|
||||
}
|
||||
|
||||
@@ -677,7 +719,7 @@ GdbExecutor::ExecuteMirror( const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
// esecuzione specchiature
|
||||
for ( Iter = vsNames.begin() ; Iter != vsNames.end() ; Iter++) {
|
||||
if ( ! m_pGDB->Mirror( (*Iter), ptPC, vtVN))
|
||||
if ( ! m_pGDB->Mirror( GetIdParam( *Iter), ptPC, vtVN))
|
||||
return false ;
|
||||
}
|
||||
|
||||
@@ -754,6 +796,7 @@ GdbExecutor::ExecuteOutScl( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
// emetto entità
|
||||
else if ( sCmd2 == "PUT") {
|
||||
bool bCrvVsPolyg ;
|
||||
int nId ;
|
||||
STRVECTOR vsNames ;
|
||||
STRVECTOR::iterator Iter ;
|
||||
// almeno un parametro
|
||||
@@ -770,27 +813,28 @@ GdbExecutor::ExecuteOutScl( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
// esecuzione
|
||||
for ( Iter = vsNames.begin() ; Iter != vsNames.end() ; Iter++) {
|
||||
// recupero l'oggetto ed eseguo l'output
|
||||
switch ( m_pGDB->GetObjType( *Iter)) {
|
||||
nId = GetIdParam( *Iter) ;
|
||||
switch ( m_pGDB->GetObjType( nId)) {
|
||||
case CRV_LINE :
|
||||
if ( ! m_OutScl.PutCurveLine( *GetCurveLine( m_pGDB->GetGeoObj(*Iter))))
|
||||
if ( ! m_OutScl.PutCurveLine( *GetCurveLine( m_pGDB->GetGeoObj( nId))))
|
||||
return false ;
|
||||
break ;
|
||||
case CRV_ARC :
|
||||
if ( ! m_OutScl.PutCurveArc( *GetCurveArc( m_pGDB->GetGeoObj(*Iter))))
|
||||
if ( ! m_OutScl.PutCurveArc( *GetCurveArc( m_pGDB->GetGeoObj( nId))))
|
||||
return false ;
|
||||
break ;
|
||||
case CRV_BEZ :
|
||||
if ( bCrvVsPolyg) {
|
||||
if ( ! m_OutScl.PutCurveBez( *GetCurveBezier( m_pGDB->GetGeoObj(*Iter))))
|
||||
if ( ! m_OutScl.PutCurveBez( *GetCurveBezier( m_pGDB->GetGeoObj( nId))))
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
if ( ! m_OutScl.PutPolygBez( *GetCurveBezier( m_pGDB->GetGeoObj(*Iter))))
|
||||
if ( ! m_OutScl.PutPolygBez( *GetCurveBezier( m_pGDB->GetGeoObj( nId))))
|
||||
return false ;
|
||||
}
|
||||
break ;
|
||||
case CRV_COMPO :
|
||||
if ( ! m_OutScl.PutCurveCompo( *GetCurveComposite( m_pGDB->GetGeoObj(*Iter))))
|
||||
if ( ! m_OutScl.PutCurveCompo( *GetCurveComposite( m_pGDB->GetGeoObj( nId))))
|
||||
return false ;
|
||||
break ;
|
||||
default :
|
||||
|
||||
Reference in New Issue
Block a user