diff --git a/EGkCAvToolSurfTm.h b/EGkCAvToolSurfTm.h index 0a7a43f..60d7339 100644 --- a/EGkCAvToolSurfTm.h +++ b/EGkCAvToolSurfTm.h @@ -38,7 +38,8 @@ class __declspec( novtable) ICAvToolSurfTm { virtual double GetToolRadius( void) const = 0 ; virtual double GetToolHeight( void) const = 0 ; virtual const ICurveComposite& GetToolOutline( bool bApprox = false) const = 0 ; - virtual bool TestPosition( const Point3d& ptT, const Vector3d& vtDir, const Vector3d& vtMove, double& dTotDist) const = 0 ; + virtual bool TestPosition( const Point3d& ptT, const Vector3d& vtDir, const Vector3d& vtMove, + double& dTotDist, Vector3d* pvtTriaN = nullptr) 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 ; } ; diff --git a/EGkCurveAux.h b/EGkCurveAux.h index b23067b..91b6506 100644 --- a/EGkCurveAux.h +++ b/EGkCurveAux.h @@ -121,6 +121,10 @@ EGK_EXPORT bool CalcCurveMedialAxis( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, //! Calcola l'offset completo di una curva EGK_EXPORT bool CalcCurveFatCurve( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, double dRadius, bool bSquareEnds, bool bSquareMids) ; +//---------------------------------------------------------------------------- +//! Calcola, nel caso di curve chiuse, il valore limite di offset ( in valore assoluto) che fa sparire la curva +EGK_EXPORT bool CalcCurveLimitOffset( const ICurve& crvC, double& dOffs) ; + //---------------------------------------------------------------------------- //! Resetta l'oggetto voronoi associato alla curva liberandone la memoria EGK_EXPORT void ResetCurveVoronoi( const ICurve& crvC) ; \ No newline at end of file diff --git a/EGkSurfFlatRegion.h b/EGkSurfFlatRegion.h index eee5e43..276ce89 100644 --- a/EGkSurfFlatRegion.h +++ b/EGkSurfFlatRegion.h @@ -51,6 +51,8 @@ class __declspec( novtable) ISurfFlatRegion : public ISurf virtual int GetChunkSimpleClassification( int nChunk, const ISurfFlatRegion& Other, int nOthChunk) const ; // compare only outsides virtual bool CalcVoronoiDiagram( ICURVEPOVECTOR& vCrvs, int nBound = 3) const = 0 ; virtual bool CalcMedialAxis( ICURVEPOVECTOR& vCrvs, int nSide = 1) const = 0 ; + virtual bool GetChunkMaxOffset( int nChunk, double& dOffs) const = 0 ; + virtual bool GetMaxOffset( double& dOffs) const = 0 ; virtual void ResetVoronoiObject( void) const = 0 ; virtual bool SetCurveTempProp( int nChunk, int nLoop, int nCrv, int nProp, int nPropInd = 0) = 0 ; virtual bool GetCurveTempProp( int nChunk, int nLoop, int nCrv, int& nProp, int nPropInd = 0) const = 0 ; diff --git a/EXeExecutor.h b/EXeExecutor.h index 1cef3e4..1ce9869 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -710,6 +710,7 @@ EXE_EXPORT int ExeSurfFrGetZigZagInfill( int nId, int nDestGrpId, double dStep, // GeomDb Curve Get EXE_EXPORT bool ExeCurveDomain( int nId, double* pdStart, double* pdEnd) ; EXE_EXPORT bool ExeCurveLength( int nId, double* pdLen) ; +EXE_EXPORT bool ExeCurveLengthAtParam( int nId, double dPar, double* pdLen) ; EXE_EXPORT bool ExeCurveParamAtLength( int nId, double dLen, double* pdPar) ; EXE_EXPORT bool ExeCurveParamAtPoint( int nId, const Point3d& pt, double dTol, int nRefType, double* pdPar) ; EXE_EXPORT bool ExeCurveLengthAtPoint( int nId, const Point3d& ptOn, double dExtend, double* pdLen) ;