EgtGeomKernel :

- correzione a PolyLine (Splice)
- impostazione Reset grafica sulle diverse entità geometriche.
This commit is contained in:
Dario Sassi
2014-02-17 09:39:49 +00:00
parent 997c65781f
commit 8a416970a3
14 changed files with 287 additions and 224 deletions
+37 -18
View File
@@ -38,10 +38,14 @@ CurveLine::~CurveLine( void)
bool
CurveLine::Set( const Point3d& ptStart, const Point3d& ptEnd)
{
// assegno i dati
m_PtStart = ptStart ;
m_PtEnd = ptEnd ;
m_nStatus = TO_VERIFY ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
return Validate() ;
}
@@ -81,14 +85,14 @@ CurveLine::Save( ostream& osOut) const
bool
CurveLine::Load( Scanner& TheScanner)
{
string sLine ;
STRVECTOR vsParams ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
// leggo la prossima linea
string sLine ;
if ( ! TheScanner.GetLine( sLine))
return false ;
// la divido in parametri
STRVECTOR vsParams ;
Tokenize( sLine, ";", vsParams) ;
// 2 parametri : punto iniziale e punto finale
if ( vsParams.size() != 2)
@@ -241,6 +245,9 @@ CurveLine::Invert( void)
// inverto i punti estremi
swap( m_PtStart, m_PtEnd) ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
return true ;
}
@@ -249,13 +256,11 @@ CurveLine::Invert( void)
bool
CurveLine::TrimStartAtParam( double dUTrim)
{
double dLen ;
// riporto i parametri nel loro range
dUTrim = ( ( dUTrim < 0) ? 0 : (( dUTrim > 1) ? 1 : dUTrim)) ;
// recupero lunghezza
double dLen ;
if ( ! GetLength( dLen))
return false ;
@@ -267,13 +272,11 @@ CurveLine::TrimStartAtParam( double dUTrim)
bool
CurveLine::TrimEndAtParam( double dUTrim)
{
double dLen ;
// riporto i parametri nel loro range
dUTrim = ( ( dUTrim < 0) ? 0 : (( dUTrim > 1) ? 1 : dUTrim)) ;
// recupero lunghezza
double dLen ;
if ( ! GetLength( dLen))
return false ;
@@ -285,13 +288,11 @@ CurveLine::TrimEndAtParam( double dUTrim)
bool
CurveLine::TrimStartAtLen( double dLenTrim)
{
double dLen ;
// lunghezze negative vengono considerate nulle
dLenTrim = __max( dLenTrim, 0) ;
// verifico che sia abbastanza lunga
double dLen ;
if ( ! GetLength( dLen))
return false ;
if ( ( dLen - dLenTrim) < EPS_SMALL)
@@ -301,7 +302,8 @@ CurveLine::TrimStartAtLen( double dLenTrim)
if ( dLenTrim > EPS_ZERO)
m_PtStart = Media( m_PtStart, m_PtEnd, ( dLenTrim / dLen)) ;
// con i controlli sopra fatti rimane validata
// con i controlli sopra fatti rimane validata, ma la grafica va ricalcolata
m_OGrMgr.Reset() ;
return true ;
}
@@ -310,13 +312,11 @@ CurveLine::TrimStartAtLen( double dLenTrim)
bool
CurveLine::TrimEndAtLen( double dLenTrim)
{
double dLen ;
// lunghezze negative vengono considerate nulle
dLenTrim = __max( dLenTrim, 0) ;
// verifico che sia abbastanza lunga
double dLen ;
if ( ! GetLength( dLen))
return false ;
if ( dLenTrim < EPS_SMALL)
@@ -326,7 +326,8 @@ CurveLine::TrimEndAtLen( double dLenTrim)
if ( ( dLen - dLenTrim) > EPS_ZERO)
m_PtEnd = Media( m_PtStart, m_PtEnd, ( dLenTrim / dLen)) ;
// con i controlli sopra fatti rimane validata
// con i controlli sopra fatti rimane validata, ma la grafica va ricalcolata
m_OGrMgr.Reset() ;
return true ;
}
@@ -339,6 +340,9 @@ CurveLine::Translate( const Vector3d& vtMove)
m_PtStart.Translate( vtMove) ;
m_PtEnd.Translate( vtMove) ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
return true ;
}
@@ -354,6 +358,9 @@ CurveLine::Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, do
m_PtStart.Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
m_PtEnd.Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
return true ;
}
@@ -370,6 +377,9 @@ CurveLine::Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double d
m_PtEnd.Scale( frRef, dCoeffX, dCoeffY, dCoeffZ) ;
m_nStatus = TO_VERIFY ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
return Validate() ;
}
@@ -385,6 +395,9 @@ CurveLine::Mirror( const Point3d& ptOn, const Vector3d& vtNorm)
m_PtStart.Mirror( ptOn, vtNorm) ;
m_PtEnd.Mirror( ptOn, vtNorm) ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
return true ;
}
@@ -400,6 +413,9 @@ CurveLine::ToGlob( const Frame3d& frRef)
m_PtStart.ToGlob( frRef) ;
m_PtEnd.ToGlob( frRef) ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
return true ;
}
@@ -415,5 +431,8 @@ CurveLine::ToLoc( const Frame3d& frRef)
m_PtStart.ToLoc( frRef) ;
m_PtEnd.ToLoc( frRef) ;
// imposto ricalcolo della grafica
m_OGrMgr.Reset() ;
return true ;
}