Include :

- correzioni e migliorie a Triangle3d.
This commit is contained in:
Dario Sassi
2017-11-03 12:29:48 +00:00
parent 20bd63e047
commit 0a7f18fcb2
+36 -3
View File
@@ -52,14 +52,47 @@ class Triangle3d
vtV.Normalize() ;
return AreSameVectorApprox( vtV, vtN) ;
}
void Translate( const Vector3d& vtMove)
{ ptP[0].Translate( vtMove) ;
ptP[1].Translate( vtMove) ;
ptP[2].Translate( vtMove) ;
}
bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg)
{ double dAngRad = dAngDeg * DEGTORAD ;
return Rotate( ptAx, vtAx, cos( dAngRad), sin( dAngRad)) ; }
bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng)
{ ptP[0].Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
ptP[1].Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
ptP[2].Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
vtN.Rotate( vtAx, dCosAng, dSinAng) ;
}
bool Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ)
{ ptP[0].Scale( frRef, dCoeffX, dCoeffY, dCoeffZ) ;
ptP[1].Scale( frRef, dCoeffX, dCoeffY, dCoeffZ) ;
ptP[2].Scale( frRef, dCoeffX, dCoeffY, dCoeffZ) ;
Validate( true) ;
}
bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm)
{ ptP[0].Mirror( ptOn, vtNorm) ;
ptP[1].Mirror( ptOn, vtNorm) ;
ptP[2].Mirror( ptOn, vtNorm) ;
Validate( true) ;
}
bool Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff)
{ ptP[0].Shear( ptOn, vtNorm, vtDir, dCoeff) ;
ptP[1].Shear( ptOn, vtNorm, vtDir, dCoeff) ;
ptP[2].Shear( ptOn, vtNorm, vtDir, dCoeff) ;
Validate( true) ;
}
bool ToGlob( const Frame3d& frRef)
{ return ( ptP[0].ToGlob( frRef) && ptP[1].ToGlob( frRef) && ptP[2].ToGlob( frRef)) ; }
{ return ( ptP[0].ToGlob( frRef) && ptP[1].ToGlob( frRef) && ptP[2].ToGlob( frRef) && vtN.ToGlob( frRef)) ; }
bool ToLoc( const Frame3d& frRef)
{ return ( ptP[0].ToLoc( frRef) && ptP[1].ToLoc( frRef) && ptP[2].ToLoc( frRef)) ; }
{ return ( ptP[0].ToLoc( frRef) && ptP[1].ToLoc( frRef) && ptP[2].ToLoc( frRef) && vtN.ToLoc( frRef)) ; }
bool LocToLoc( const Frame3d& frOri, const Frame3d& frDest)
{ return ( ptP[0].LocToLoc( frOri, frDest) &&
ptP[1].LocToLoc( frOri, frDest) &&
ptP[2].LocToLoc( frOri, frDest)) ; }
ptP[2].LocToLoc( frOri, frDest) &&
vtN.LocToLoc( frOri, frDest)) ; }
const Point3d& GetP( int nId) const
{ if ( nId >= 0 && nId < 3)
return ptP[nId] ;