EgtGeomKernel 1.5h7 :
- modificta gestione versione dei file Nge - alle curve aggiunti vettore estrusione e spessore - IsFlat ora tiene conto del vettore estrusione - a TSC aggiunte CurveModify.EXTRusion e CurveModify.THickness.
This commit is contained in:
+29
-3
@@ -171,6 +171,10 @@ Vector3d::Normalize( double dEps)
|
||||
bool
|
||||
Vector3d::Rotate( const Vector3d& vtAx, double dAngDeg)
|
||||
{
|
||||
// se vettore nullo
|
||||
if ( IsZero())
|
||||
return true ;
|
||||
// calcolo ed eseguo rotazione
|
||||
double dAngRad = dAngDeg * DEGTORAD ;
|
||||
return Rotate( vtAx, cos( dAngRad), sin( dAngRad)) ;
|
||||
}
|
||||
@@ -181,6 +185,10 @@ Vector3d::Rotate( const Vector3d& vtAx, double dAngDeg)
|
||||
bool
|
||||
Vector3d::Rotate( const Vector3d& vtAx, double dCosAng, double dSinAng)
|
||||
{
|
||||
// se vettore nullo
|
||||
if ( IsZero())
|
||||
return true ;
|
||||
|
||||
// ricavo versore asse di rotazione
|
||||
Vector3d vtDirAx = vtAx ;
|
||||
if ( ! vtDirAx.Normalize())
|
||||
@@ -274,6 +282,10 @@ Vector3d::Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dC
|
||||
if ( frRef.GetType() == Frame3d::ERR)
|
||||
return false ;
|
||||
|
||||
// se vettore nullo
|
||||
if ( IsZero())
|
||||
return true ;
|
||||
|
||||
// ricavo le componenti sugli assi di scalatura, le scalo e riassemblo il vettore completo
|
||||
*this = ( (*this) * frRef.VersX() * dCoeffX) * frRef.VersX() +
|
||||
( (*this) * frRef.VersY() * dCoeffY) * frRef.VersY() +
|
||||
@@ -288,6 +300,10 @@ Vector3d::Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dC
|
||||
bool
|
||||
Vector3d::Mirror( const Vector3d& vtNorm)
|
||||
{
|
||||
// se vettore nullo
|
||||
if ( IsZero())
|
||||
return true ;
|
||||
|
||||
// ricavo versore normale al piano di simmetria
|
||||
Vector3d vtDirNorm = vtNorm ;
|
||||
if ( ! vtDirNorm.Normalize())
|
||||
@@ -308,9 +324,11 @@ Vector3d::Mirror( const Vector3d& vtNorm)
|
||||
bool
|
||||
Vector3d::Shear( const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff)
|
||||
{
|
||||
// se vettore nullo
|
||||
if ( IsZero())
|
||||
return true ;
|
||||
// costruisco il vettore
|
||||
*this += dCoeff * ( *this * vtNorm) * vtDir ;
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
@@ -324,6 +342,10 @@ Vector3d::ToGlob( const Frame3d& frRef)
|
||||
if ( frRef.GetType() == Frame3d::ERR)
|
||||
return false ;
|
||||
|
||||
// se vettore nullo o riferimento identità per le rotazioni
|
||||
if ( IsZero() || frRef.GetType() == Frame3d::TOP)
|
||||
return true ;
|
||||
|
||||
// eseguo trasformazione
|
||||
if ( frRef.GetType() != Frame3d::TOP) {
|
||||
Vector3d vtT( x, y, z) ;
|
||||
@@ -345,6 +367,10 @@ Vector3d::ToLoc( const Frame3d& frRef)
|
||||
if ( frRef.GetType() == Frame3d::ERR)
|
||||
return false ;
|
||||
|
||||
// se vettore nullo o riferimento identità per le rotazioni
|
||||
if ( IsZero() || frRef.GetType() == Frame3d::TOP)
|
||||
return true ;
|
||||
|
||||
// eseguo trasformazione
|
||||
if ( frRef.GetType() != Frame3d::TOP) {
|
||||
Vector3d vtT( x, y, z) ;
|
||||
@@ -362,8 +388,8 @@ Vector3d::ToLoc( const Frame3d& frRef)
|
||||
bool
|
||||
Vector3d::LocToLoc( const Frame3d& frOri, const Frame3d& frDest)
|
||||
{
|
||||
// se i due riferimenti coincidono, non devo fare alcunché
|
||||
if ( AreSameFrame( frOri, frDest))
|
||||
// se vettore nullo o i due riferimenti coincidono, non devo fare alcunché
|
||||
if ( IsZero() || AreSameFrame( frOri, frDest))
|
||||
return true ;
|
||||
|
||||
return ( ToGlob( frOri) && ToLoc( frDest)) ;
|
||||
|
||||
Reference in New Issue
Block a user