diff --git a/EGkCAvToolSurfTm.h b/EGkCAvToolSurfTm.h index c3a4ee7..140dcbe 100644 --- a/EGkCAvToolSurfTm.h +++ b/EGkCAvToolSurfTm.h @@ -43,8 +43,11 @@ class __declspec( novtable) ICAvToolSurfTm { virtual const ICurveComposite& GetToolOutline( bool bApprox = false) const = 0 ; virtual bool TestPosition( const Point3d& ptT, const Vector3d& vtDir, const Vector3d& vtMove, double& dTotDist, Vector3d* pvtTriaN = nullptr) const = 0 ; + virtual bool TestPointAdv( const Point3d& ptT, const Vector3d& vtDir, const Vector3d& vtMove, + double& dTotDist, VCT3DVECTOR& vVtN) const = 0 ; virtual bool TestSeries( PNTUVECTOR& vPntM, const Vector3d& vtDir, const Vector3d& vtMove, double dProgCoeff = 1) = 0 ; virtual bool TestPath( PNTULIST& lPntM, const Vector3d& vtDir, const Vector3d& vtMove, double dLinTol, double dProgCoeff = 1) = 0 ; + virtual bool TestPointsAdv( PNTUVVECTLIST& lPntM, const Vector3d& vtDir, const Vector3d& vtMove, double dProgCoeff = 1) = 0 ; } ; //----------------------------------------------------------------------------- diff --git a/EGkCalcPocketing.h b/EGkCalcPocketing.h index 14f63d3..29d23c3 100644 --- a/EGkCalcPocketing.h +++ b/EGkCalcPocketing.h @@ -28,7 +28,7 @@ EGK_EXPORT bool CalcPocketing( const ISurfFlatRegion* pSfr, double dRad, double dRadOffs, double dStep, double dAngle, int nType, bool bSmooth, bool bInvert, bool bAvoidOpt, bool bAllowZigZagOneWayBorders, const Point3d& ptEndPrec, const ISurfFlatRegion* pSfrLimit, - ICRVCOMPOPOVECTOR& vCrv) ; + bool bAllOffs, ICRVCOMPOPOVECTOR& vCrv) ; EGK_EXPORT bool CalcZigZagInfill( const ISurfFlatRegion* pSfr, double dStep, bool bSmooth, bool bRemoveOverlapLink, ICRVCOMPOPOVECTOR& vCrvCompoRes) ; diff --git a/EGkGeoCollection.h b/EGkGeoCollection.h index 075e681..cece8ed 100644 --- a/EGkGeoCollection.h +++ b/EGkGeoCollection.h @@ -70,3 +70,15 @@ typedef std::vector> BOXIVECTOR ; // vettore di boundin typedef std::pair PNTVECT ; // coppia punto, vettore typedef std::vector PNTVECTVECTOR ; // vettore di coppie punto, vettore typedef std::list PNTVECTLIST ; // lista di coppie punto, vettore + +//---------------------------------------------------------------------------- +// Raccolte di coppie Point3d,Bool +typedef std::pair PNTBOOL ; // coppia punto, bool +typedef std::vector PNTBOOLVECTOR ; // vettore di coppie punto, bool +typedef std::list PNTBOOLLIST ; // lista di coppie punto, bool + +//---------------------------------------------------------------------------- +// Raccolte di triplette Point3d,dU,vector +typedef std::tuple PNTUVVECT ; // tripletta punto, parametro, vettore di Vector3d +typedef std::vector PNTUVVECTVECTOR ; // vettore di triplette punto, parametro, vettore di Vector3d +typedef std::list PNTUVVECTLIST ; // lista di triplette punto, parametro, vettore di Vector3d diff --git a/EGkSurfTriMesh.h b/EGkSurfTriMesh.h index bda355e..37e61c7 100644 --- a/EGkSurfTriMesh.h +++ b/EGkSurfTriMesh.h @@ -130,6 +130,7 @@ class __declspec( novtable) ISurfTriMesh : public ISurf virtual int GetPartCount( void) const = 0 ; virtual bool GetPartArea( int nPart, double& dArea) const = 0 ; virtual bool GetPartVolume( int nPart, double& dVolume) const = 0 ; + virtual bool GetPartLoops( int nPart, POLYLINEVECTOR& vPL) const = 0 ; virtual bool RemovePart( int nPart) = 0 ; virtual ISurfTriMesh* ClonePart( int nPart) const = 0 ; virtual bool SetTFlag( int nId, int nTFlag) = 0 ;