Include : modifiche per interfaccia DistPointCurve.

Piccola miglioria a PointerOwner.
This commit is contained in:
Dario Sassi
2014-01-13 21:12:11 +00:00
parent 153d86cf18
commit 78b900c010
2 changed files with 22 additions and 7 deletions
+21 -6
View File
@@ -25,6 +25,19 @@
#endif
//----------------------------------------------------------------------------
enum MdPCiType { MDPCI_NORMAL, MDPCI_START_CONT, MDPCI_END_CONT} ;
struct MinDistPCInfo {
MdPCiType nFlag ;
double dPar ;
Point3d ptQ ;
MinDistPCInfo( void)
: nFlag( MDPCI_NORMAL), dPar( 0), ptQ( 0, 0, 0) {}
MinDistPCInfo( MdPCiType nF, double dP, Point3d pT)
: nFlag( nF), dPar( dP), ptQ( pT) {}
} ;
typedef std::vector<MinDistPCInfo> MDPCIVECTOR ; // vettore di MinDistPCInfo
//-----------------------------------------------------------------------------
class DistPointCurve
{
@@ -34,8 +47,11 @@ class DistPointCurve
public :
EGK_EXPORT bool GetSqDist( double& dSqDist) ;
EGK_EXPORT bool GetDist( double& dDist) ;
EGK_EXPORT bool GetPointMinDist( Point3d& ptMinDist, bool* pbDet = nullptr) ;
EGK_EXPORT bool GetParamAtPointMinDist( double& dParam, bool* pbDet = nullptr) ;
EGK_EXPORT int GetNbrMinDist( void) { return m_Info.size() ; }
EGK_EXPORT bool GetMinDistPoint( int nInd, Point3d& ptMinDist, int& nFlag) ;
EGK_EXPORT bool GetMinDistPoint( double dNearParam, Point3d& ptMinDist, int& nFlag) ;
EGK_EXPORT bool GetParamAtMinDistPoint( int nInd, double& dParam, int& nFlag) ;
EGK_EXPORT bool GetParamAtMinDistPoint( double dNearParam, double& dParam, int& nFlag) ;
private :
DistPointCurve( void) ;
@@ -45,9 +61,8 @@ class DistPointCurve
void CrvCompositeCalculate( const Point3d& ptP, const ICurve& Curve) ;
private :
bool m_bDet ;
double m_dDist ;
double m_dParam ;
Point3d m_ptMinDist ;
double m_dDist ;
MDPCIVECTOR m_Info ;
const ICurve* m_pCurve ;
} ;
+1 -1
View File
@@ -19,7 +19,7 @@ template <class T>
class PtrOwner
{
public :
explicit PtrOwner( T* pT) { m_pT = pT ; }
explicit PtrOwner( T* pT) : m_pT( pT) {}
~PtrOwner( void) { if ( m_pT != nullptr) delete m_pT ; m_pT = nullptr ; }
T& operator*() const { return *m_pT ; }
T* operator->() const { return m_pT ; }