diff --git a/EGkDistPointSurfBz.h b/EGkDistPointSurfBz.h index 89e3013..24c8ad6 100644 --- a/EGkDistPointSurfBz.h +++ b/EGkDistPointSurfBz.h @@ -47,7 +47,7 @@ class DistPointSurfBz EGK_EXPORT bool IsZero( void) const { return IsEpsilon( EPS_ZERO) ; } EGK_EXPORT bool GetMinDistPoint( Point3d& ptMinDistPoint) const ; - EGK_EXPORT bool GetParamPoint( Point3d& ptParamPoint) const ; + EGK_EXPORT bool GetParamsAtMinDistPoint( double& dU, double& dV) const ; EGK_EXPORT bool GetNorm( Vector3d& vtN) const ; EGK_EXPORT bool IsPointInside( void) const { return ( m_bIsInside && m_bIsSurfClosed) ; } @@ -58,10 +58,10 @@ class DistPointSurfBz void Calculate( const Point3d& ptP, const ISurfBezier& srfBz) ; private : - double m_dDist ; // Minima distanza del punto dalla superficie - Point3d m_ptMinDistPoint ; // Punto sulla superficie a minima distanza - Point3d m_ptParam ; // punto corrispondente nello spazio parametrico - Vector3d m_vtN ; // normale alla superficie nel punto a minima distanza - bool m_bIsInside ; // Flag per punto interno o esterno alla superficie ( se chiusa ) - bool m_bIsSurfClosed ; // Flag per superficie aperta o chiusa + double m_dDist ; // Minima distanza del punto dalla superficie + Point3d m_ptMinDistPoint ; // Punto sulla superficie a minima distanza + Point3d m_ptParam ; // punto corrispondente nello spazio parametrico (x->U, y->V) + Vector3d m_vtN ; // normale alla superficie nel punto a minima distanza + bool m_bIsInside ; // Flag per punto interno o esterno alla superficie ( se chiusa ) + bool m_bIsSurfClosed ; // Flag per superficie aperta o chiusa } ; diff --git a/EGkProjectCurveSurf.h b/EGkProjectCurveSurf.h index 703b213..13fd118 100644 --- a/EGkProjectCurveSurf.h +++ b/EGkProjectCurveSurf.h @@ -31,13 +31,18 @@ struct Point5ax { Point3d ptP ; Vector3d vtDir1 ; Vector3d vtDir2 ; + Vector3d vtDirU ; + Vector3d vtDirV ; double dPar ; int nFlag ; - Point5ax( void) : ptP(), vtDir1(), vtDir2(), dPar(), nFlag() {} ; + Point5ax( void) : ptP(), vtDir1(), vtDir2(), vtDirU(), vtDirV(), dPar(), nFlag() {} ; Point5ax( const Point3d& ptBase, const Vector3d& vtTool, double dU, int nData) - : ptP( ptBase), vtDir1( vtTool), vtDir2(), dPar( dU), nFlag( nData) {} ; + : ptP( ptBase), vtDir1( vtTool), vtDir2(), vtDirU(), vtDirV(), dPar( dU), nFlag( nData) {} ; Point5ax( const Point3d& ptBase, const Vector3d& vtTool, const Vector3d& vtTool2, double dU, int nData) - : ptP( ptBase), vtDir1( vtTool), vtDir2( vtTool2), dPar( dU), nFlag( nData) {} ; + : ptP( ptBase), vtDir1( vtTool), vtDir2( vtTool2), vtDirU(), vtDirV(), dPar( dU), nFlag( nData) {} ; + Point5ax( const Point3d& ptBase, const Vector3d& vtTool, const Vector3d& vtTool2, + const Vector3d& vtDU, const Vector3d& vtDV, double dU, int nData) + : ptP( ptBase), vtDir1( vtTool), vtDir2( vtTool2), vtDirU( vtDU), vtDirV( vtDV), dPar( dU), nFlag( nData) {} ; } ; typedef std::vector PNT5AXVECTOR ; // vettore di Punti 5assi