diff --git a/EGkOffsetCurve3d.h b/EGkOffsetCurve3d.h index ee3e728..cf352ba 100644 --- a/EGkOffsetCurve3d.h +++ b/EGkOffsetCurve3d.h @@ -17,6 +17,7 @@ #include "/EgtDev/Include/EGkPolyLine.h" #include "/EgtDev/Include/EGkCurve.h" #include "/EgtDev/Include/EGkCurveComposite.h" +#include "/EgtDev/Include/EGkProjectCurveSurf.h" #include "/EgtDev/Include/EgtPointerOwner.h" @@ -94,7 +95,7 @@ public : public : EGK_EXPORT bool Reset( void) ; - EGK_EXPORT bool Make( const PolyLine& PL, const VCT3DVECTOR& vOffDir, double dDist, int nType) ; + EGK_EXPORT bool Make( const PNT5AXVECTOR& vPnt5Ax, double dDist, int nType) ; EGK_EXPORT int GetCurveCount( void) { return int( m_CrvLst.size()) ; } EGK_EXPORT ICurve* GetCurve( void) ; EGK_EXPORT ICurve* GetLongerCurve( void) ; diff --git a/EGkProjectCurveSurf.h b/EGkProjectCurveSurf.h index af7c8fe..a9b3052 100644 --- a/EGkProjectCurveSurf.h +++ b/EGkProjectCurveSurf.h @@ -25,6 +25,17 @@ #define EGK_EXPORT __declspec( dllimport) #endif +enum P5AxAng { // Tipologia di punto + P5AX_TO_DELETE = -1 , // da cancellare + P5AX_OUT = 0 , // aggiunto prima di inizio o dopo fine + P5AX_STD = 1 , // standard + P5AX_CVEX = 2 , // su angolo convesso + P5AX_CONC = 3 , // in angolo concavo + P5AX_BEFORE_CONC = 4 , // adiacente ad angolo concavo + P5AX_AFTER_CONC = 5 , // adiacente ad angolo concavo + P5AX_SMOOTH_CONC = 6 // zona concava curva, senza spigolo netto + }; + //---------------------------------------------------------------------------- // Definizione di Punto 5assi e sue raccolte struct Point5ax { @@ -49,7 +60,7 @@ typedef std::vector PNT5AXVECTOR ; // vettore di Punti 5assi //---------------------------------------------------------------------------- // Proiezione di una curva su una o più superfici a distanza minima EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, - double dLinTol, double dMaxSegmLen, bool bSharpEdges, PNT5AXVECTOR& vPt5ax) ; + double dLinTol, double dMaxSegmLen, bool bSharpEdges, PNT5AXVECTOR& vPt5ax, bool bNormOrTang = true) ; // Proiezione di una curva su una o più superfici lungo la direzione data (da o verso) EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, const Vector3d& vtDir, double dLinTol, double dMaxSegmLen, bool bSharpEdges, bool bFromVsTo, PNT5AXVECTOR& vPt5ax) ; diff --git a/EGkStmFromCurves.h b/EGkStmFromCurves.h index 70d9c99..42583c6 100644 --- a/EGkStmFromCurves.h +++ b/EGkStmFromCurves.h @@ -48,3 +48,4 @@ EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ISurfFlatRegion* pSfrSect, c EGK_EXPORT ISurfTriMesh* GetSurfTriMeshTransSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const Point3d& ptP, const ICurve* pCurve, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const ICurve* pCurve1, const ICurve* pCurve2, int nType, double dLinTol = 10 * EPS_SMALL) ; +EGK_EXPORT ISurfTriMesh* GetSurfExtension( const ISurfTriMesh* pSrfTM, double dExtLen, int nLoop, int nSubCrv, int nType, double dLinTol) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index e489eb6..9f7a603 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -432,6 +432,8 @@ EXE_EXPORT int ExeCreateSurfBzRuledGuided( int nParentId, int nCrvId1, int nCrv EXE_EXPORT int ExeCreateSurfBzSkinned( int nParentId, const INTVECTOR& nCrvId1, bool bCapEnds, double dLinTol) ; EXE_EXPORT int ExeCreateSurfBzSwept( int nParentId, int nSectId, int nGuideId, const Vector3d& vtAx, bool bCapEnds, double dLinTol, int nRefType) ; +EXE_EXPORT int ExeCreateSurfExtension( int nParentId, int nSurfId, double dExtLen, int nCrv, int nSubCrv, + int nType, double dLinTol) ; // GeomDB Create Volume EXE_EXPORT int ExeCreateVolZmap( int nParentId, const Point3d& ptIni, double dDimX,