EgtGeomKernel 1.5d3 :
- aggiunte Move, Rot, Mirror e Scale di gruppo espresse nel suo proprio rif.
This commit is contained in:
+72
-28
@@ -1542,18 +1542,29 @@ GdbExecutor::ExecuteTranslate( const std::string& sCmd2, const STRVECTOR& vsPara
|
||||
Vector3d vtVN ;
|
||||
if ( ! GetVectorParam( vsParams[1], vtVN))
|
||||
return false ;
|
||||
// recupero flag per globale
|
||||
bool bGlob = ( sCmd2 == "GLOB" || sCmd2 == "G") ;
|
||||
// recupero flag per locale/globale/gruppo
|
||||
enum { TRA_LOC = 0, TRA_GLOB = 1, TRA_GROUP = 2} ;
|
||||
int nTraType = TRA_LOC ;
|
||||
if ( sCmd2 == "GLOB" || sCmd2 == "G")
|
||||
nTraType = TRA_GLOB ;
|
||||
else if ( sCmd2 == "GROUP" || sCmd2 == "GR")
|
||||
nTraType = TRA_GROUP ;
|
||||
// esecuzione traslazioni
|
||||
INTVECTOR::iterator Iter ;
|
||||
for ( Iter = vnNames.begin() ; Iter != vnNames.end() ; ++Iter) {
|
||||
if ( bGlob) {
|
||||
if ( ! m_pGDB->TranslateGlob( *Iter, vtVN))
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
switch ( nTraType) {
|
||||
case TRA_LOC :
|
||||
if ( ! m_pGDB->Translate( *Iter, vtVN))
|
||||
return false ;
|
||||
break ;
|
||||
case TRA_GLOB :
|
||||
if ( ! m_pGDB->TranslateGlob( *Iter, vtVN))
|
||||
return false ;
|
||||
break ;
|
||||
case TRA_GROUP :
|
||||
if ( ! m_pGDB->TranslateGroup( *Iter, vtVN))
|
||||
return false ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1583,18 +1594,29 @@ GdbExecutor::ExecuteRotate( const std::string& sCmd2, const STRVECTOR& vsParams)
|
||||
double dAngDeg ;
|
||||
if ( ! FromString( vsParams[3], dAngDeg))
|
||||
return false ;
|
||||
// recupero flag per globale
|
||||
bool bGlob = ( sCmd2 == "GLOB" || sCmd2 == "G") ;
|
||||
// recupero flag per locale/globale/gruppo
|
||||
enum { ROT_LOC = 0, ROT_GLOB = 1, ROT_GROUP = 2} ;
|
||||
int nRotType = ROT_LOC ;
|
||||
if ( sCmd2 == "GLOB" || sCmd2 == "G")
|
||||
nRotType = ROT_GLOB ;
|
||||
else if ( sCmd2 == "GROUP" || sCmd2 == "GR")
|
||||
nRotType = ROT_GROUP ;
|
||||
// esecuzione rotazioni
|
||||
INTVECTOR::iterator Iter ;
|
||||
for ( Iter = vnNames.begin() ; Iter != vnNames.end() ; ++Iter) {
|
||||
if ( bGlob) {
|
||||
if ( ! m_pGDB->RotateGlob( *Iter, ptPC, vtVN, dAngDeg))
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
switch ( nRotType) {
|
||||
case ROT_LOC :
|
||||
if ( ! m_pGDB->Rotate( *Iter, ptPC, vtVN, dAngDeg))
|
||||
return false ;
|
||||
break ;
|
||||
case ROT_GLOB :
|
||||
if ( ! m_pGDB->RotateGlob( *Iter, ptPC, vtVN, dAngDeg))
|
||||
return false ;
|
||||
break ;
|
||||
case ROT_GROUP :
|
||||
if ( ! m_pGDB->RotateGroup( *Iter, ptPC, vtVN, dAngDeg))
|
||||
return false ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1629,18 +1651,29 @@ GdbExecutor::ExecuteScale( const std::string& sCmd2, const STRVECTOR& vsParams)
|
||||
! FromString( vsParams[3], dCoeffY) ||
|
||||
! FromString( vsParams[4], dCoeffZ))
|
||||
return false ;
|
||||
// recupero flag per globale
|
||||
bool bGlob = ( sCmd2 == "GLOB" || sCmd2 == "G") ;
|
||||
// recupero flag per locale/globale/gruppo
|
||||
enum { SCA_LOC = 0, SCA_GLOB = 1, SCA_GROUP = 2} ;
|
||||
int nScaType = SCA_LOC ;
|
||||
if ( sCmd2 == "GLOB" || sCmd2 == "G")
|
||||
nScaType = SCA_GLOB ;
|
||||
else if ( sCmd2 == "GROUP" || sCmd2 == "GR")
|
||||
nScaType = SCA_GROUP ;
|
||||
// esecuzione scalature
|
||||
INTVECTOR::iterator Iter ;
|
||||
for ( Iter = vnNames.begin() ; Iter != vnNames.end() ; ++Iter) {
|
||||
if ( bGlob) {
|
||||
if ( ! m_pGDB->ScaleGlob( *Iter, frRef, dCoeffX, dCoeffY, dCoeffZ))
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
switch ( nScaType) {
|
||||
case SCA_LOC :
|
||||
if ( ! m_pGDB->Scale( *Iter, frRef, dCoeffX, dCoeffY, dCoeffZ))
|
||||
return false ;
|
||||
break ;
|
||||
case SCA_GLOB :
|
||||
if ( ! m_pGDB->ScaleGlob( *Iter, frRef, dCoeffX, dCoeffY, dCoeffZ))
|
||||
return false ;
|
||||
break ;
|
||||
case SCA_GROUP :
|
||||
if ( ! m_pGDB->ScaleGroup( *Iter, frRef, dCoeffX, dCoeffY, dCoeffZ))
|
||||
return false ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1666,18 +1699,29 @@ GdbExecutor::ExecuteMirror( const std::string& sCmd2, const STRVECTOR& vsParams)
|
||||
Vector3d vtVN ;
|
||||
if ( ! GetVectorParam( vsParams[2], vtVN))
|
||||
return false ;
|
||||
// recupero flag per globale
|
||||
bool bGlob = ( sCmd2 == "GLOB" || sCmd2 == "G") ;
|
||||
// recupero flag per locale/globale/gruppo
|
||||
enum { MIR_LOC = 0, MIR_GLOB = 1, MIR_GROUP = 2} ;
|
||||
int nMirType = MIR_LOC ;
|
||||
if ( sCmd2 == "GLOB" || sCmd2 == "G")
|
||||
nMirType = MIR_GLOB ;
|
||||
else if ( sCmd2 == "GROUP" || sCmd2 == "GR")
|
||||
nMirType = MIR_GROUP ;
|
||||
// esecuzione specchiature
|
||||
INTVECTOR::iterator Iter ;
|
||||
for ( Iter = vnNames.begin() ; Iter != vnNames.end() ; ++Iter) {
|
||||
if ( bGlob) {
|
||||
if ( ! m_pGDB->MirrorGlob( *Iter, ptPC, vtVN))
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
switch ( nMirType) {
|
||||
case MIR_LOC :
|
||||
if ( ! m_pGDB->Mirror( *Iter, ptPC, vtVN))
|
||||
return false ;
|
||||
break ;
|
||||
case MIR_GLOB :
|
||||
if ( ! m_pGDB->MirrorGlob( *Iter, ptPC, vtVN))
|
||||
return false ;
|
||||
break ;
|
||||
case MIR_GROUP :
|
||||
if ( ! m_pGDB->MirrorGroup( *Iter, ptPC, vtVN))
|
||||
return false ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user