Include :

- migliorata classe Triangle3dEx.
This commit is contained in:
Dario Sassi
2018-01-22 19:13:38 +00:00
parent 9eee64227c
commit e9afd825ae
+50
View File
@@ -237,6 +237,56 @@ class Triangle3dEx : public Triangle3d
}
return true ;
}
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)
{ m_ptP[0].Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
m_ptP[1].Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
m_ptP[2].Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
m_vtN.Rotate( vtAx, dCosAng, dSinAng) ;
for ( int i = 0 ; i < 3 ; ++ i)
m_triN.vtN[i].Rotate( vtAx, dCosAng, dSinAng) ;
}
bool Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ)
{ m_ptP[0].Scale( frRef, dCoeffX, dCoeffY, dCoeffZ) ;
m_ptP[1].Scale( frRef, dCoeffX, dCoeffY, dCoeffZ) ;
m_ptP[2].Scale( frRef, dCoeffX, dCoeffY, dCoeffZ) ;
for ( int i = 0 ; i < 3 ; ++ i)
m_triN.vtN[i] = V_NULL ;
Validate( true) ;
}
bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm)
{ m_ptP[0].Mirror( ptOn, vtNorm) ;
m_ptP[1].Mirror( ptOn, vtNorm) ;
m_ptP[2].Mirror( ptOn, vtNorm) ;
for ( int i = 0 ; i < 3 ; ++ i)
m_triN.vtN[i].Mirror( vtNorm) ;
Validate( true) ;
}
bool Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff)
{ m_ptP[0].Shear( ptOn, vtNorm, vtDir, dCoeff) ;
m_ptP[1].Shear( ptOn, vtNorm, vtDir, dCoeff) ;
m_ptP[2].Shear( ptOn, vtNorm, vtDir, dCoeff) ;
for ( int i = 0 ; i < 3 ; ++ i)
m_triN.vtN[i] = V_NULL ;
Validate( true) ;
}
bool ToGlob( const Frame3d& frRef)
{ return ( m_ptP[0].ToGlob( frRef) && m_ptP[1].ToGlob( frRef) && m_ptP[2].ToGlob( frRef) && m_vtN.ToGlob( frRef) &&
m_triN.vtN[0].ToGlob( frRef) && m_triN.vtN[1].ToGlob( frRef) && m_triN.vtN[2].ToGlob( frRef)) ; }
bool ToLoc( const Frame3d& frRef)
{ return ( m_ptP[0].ToLoc( frRef) && m_ptP[1].ToLoc( frRef) && m_ptP[2].ToLoc( frRef) && m_vtN.ToLoc( frRef) &&
m_triN.vtN[0].ToLoc( frRef) && m_triN.vtN[1].ToLoc( frRef) && m_triN.vtN[2].ToLoc( frRef)) ; }
bool LocToLoc( const Frame3d& frOri, const Frame3d& frDest)
{ return ( m_ptP[0].LocToLoc( frOri, frDest) &&
m_ptP[1].LocToLoc( frOri, frDest) &&
m_ptP[2].LocToLoc( frOri, frDest) &&
m_vtN.LocToLoc( frOri, frDest) &&
m_triN.vtN[0].LocToLoc( frOri, frDest) &&
m_triN.vtN[1].LocToLoc( frOri, frDest) &&
m_triN.vtN[2].LocToLoc( frOri, frDest)) ; }
private :
TriFlags3d m_triF ;
TriNormals3d m_triN ;