Include :
- migliorata classe Triangle3dEx.
This commit is contained in:
@@ -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 ;
|
||||
|
||||
Reference in New Issue
Block a user