diff --git a/EGkIntersLineSurfBez.h b/EGkIntersLineSurfBez.h index 2fb536b..6878cb9 100644 --- a/EGkIntersLineSurfBez.h +++ b/EGkIntersLineSurfBez.h @@ -46,9 +46,9 @@ enum IntLineTriaAuxType { ILTA_NO_TRIA = -1, // l'intersezione è stata ca ILTA_IN = 5} ; // intersezione in interno del triangolo //----------------------------------------------------------------------------- -//! dati di intersezione linea - superficie trimesh +//! dati di intersezione linea - superficie bezier struct IntLinSbzInfo { - int nILTA ; //!< tipo di intersezione linea-triangolo // se -1 vuol dire che l'intersezione � stata calcolata direttamente, senza usare la trimesh + int nILSB ; //!< tipo di intersezione linea-bezier double dU ; //!< parametro sulla linea double dU2 ; //!< secondo parametro sulla linea int nT ; //!< indice del triangolo della superficie trimesh // se -1 vuol dire che l'intersezione � stata calcolata direttamente, senza usare la trimesh @@ -58,11 +58,11 @@ struct IntLinSbzInfo { Point3d ptUV ; //!< coordinate del punto nello spazio parametrico Point3d ptUV2 ; //!< coordinate del secondo punto nello spazio parametrico // costruttori - IntLinSbzInfo( void) : nILTA( ILTA_NO), dU( 0), dU2( 0), nT(0), dCosDN(0), ptI(), ptI2(), ptUV(), ptUV2(){} - IntLinSbzInfo( int nILT, double dUU, int nTT, double dCos, const Point3d& ptP, const Point3d ptSP) - : nILTA( nILT), dU( dUU), dU2( 0), nT( nTT), dCosDN( dCos), ptI( ptP), ptI2(), ptUV( ptSP), ptUV2() {} - IntLinSbzInfo( int nILT, double dUU, double dUU2, int nTT, double dCos, const Point3d& ptP, const Point3d& ptP2, const Point3d& ptSP, const Point3d& ptSP2) - : nILTA( nILT), dU( dUU), dU2( dUU2), nT( nTT), dCosDN( dCos), ptI( ptP), ptI2( ptP2), ptUV( ptSP), ptUV2( ptSP2) {} + IntLinSbzInfo( void) : nILSB( LSBT_NONE), dU( 0), dU2( 0), nT(0), dCosDN(0), ptI(), ptI2(), ptUV(), ptUV2(){} + IntLinSbzInfo( int nILS, double dUU, int nTT, double dCos, const Point3d& ptP, const Point3d ptSP) + : nILSB( nILS), dU( dUU), dU2( 0), nT( nTT), dCosDN( dCos), ptI( ptP), ptI2(), ptUV( ptSP), ptUV2() {} + IntLinSbzInfo( int nILS, double dUU, double dUU2, int nTT, double dCos, const Point3d& ptP, const Point3d& ptP2, const Point3d& ptSP, const Point3d& ptSP2) + : nILSB( nILS), dU( dUU), dU2( dUU2), nT( nTT), dCosDN( dCos), ptI( ptP), ptI2( ptP2), ptUV( ptSP), ptUV2( ptSP2) {} } ; //! vettore di IntLinSbzInfo typedef std::vector ILSBIVECTOR ; diff --git a/EGkSurfBezier.h b/EGkSurfBezier.h index fd6a848..dcde195 100644 --- a/EGkSurfBezier.h +++ b/EGkSurfBezier.h @@ -102,6 +102,7 @@ class __declspec( novtable) ISurfBezier : public ISurf virtual bool CreateByTwoCurves( const ICurve* pCurve1, const ICurve* pCurve2, int nType) = 0 ; virtual bool CreateBySetOfCurves( const ICURVEPOVECTOR& vCrvBez, bool bReduceToDeg3 = true) = 0 ; virtual bool RemoveCollapsedSpans() = 0 ; + virtual PNTVECTOR GetAllControlPoints( void) const = 0 ; } ; //-----------------------------------------------------------------------------