From 4908b84afc28c027e2c96a09ebf352b125ec2899 Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Thu, 18 Jun 2026 16:22:26 +0200 Subject: [PATCH] Include : - esposte funzioni per l'offset3d. - spostate struct e enum nell'header. --- EGkOffsetCurve3d.h | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/EGkOffsetCurve3d.h b/EGkOffsetCurve3d.h index ebbdea0..ee3e728 100644 --- a/EGkOffsetCurve3d.h +++ b/EGkOffsetCurve3d.h @@ -11,9 +11,13 @@ #pragma once +#include "/EgtDev/Include/EGkFrame3d.h" +#include "/EgtDev/Include/EGkPoint3d.h" #include "/EgtDev/Include/EGkVector3d.h" #include "/EgtDev/Include/EGkPolyLine.h" #include "/EgtDev/Include/EGkCurve.h" +#include "/EgtDev/Include/EGkCurveComposite.h" +#include "/EgtDev/Include/EgtPointerOwner.h" //----------------------- Macro per import/export ---------------------------- @@ -24,6 +28,53 @@ #define EGK_EXPORT __declspec( dllimport) #endif +//---------------------------------------------------------------------------- +struct OffsetSegm { + PtrOwner pCrv ; + int nFlag ; // OffsetCurve3d::AngType + int nParent ; + OffsetSegm( ICurve* _pCrv, int _nFlag, int _nParent) : + nFlag( _nFlag), nParent( _nParent) { pCrv.Set( _pCrv); } ; +} ; + +typedef std::vector OFFSETSEGVEC ; + +struct EditCrvInfo { + enum EditFlag { + NOEDIT = 0, + DEL = 1, + EDIT = 2 + }; + int nId = -1 ; + int nFlag = 0 ; + Point3d ptStart = P_INVALID ; + Point3d ptEnd = P_INVALID ; + EditCrvInfo( int _nId, int _nFlag) : nId( _nId), nFlag( _nFlag) { ;} + EditCrvInfo( int _nId, int _nFlag, const Point3d& _ptStart, const Point3d& _ptEnd) : + nId( _nId), nFlag( _nFlag), ptStart( _ptStart), ptEnd( _ptEnd) { ;} +}; + +typedef std::vector EDITCRVINFOVEC ; + +struct Cyl { + Cyl( void): frCyl( GLOB_FRM), dH( 0.), dRad( 0.) {;} ; + Cyl( const Frame3d& _frCyl, double _dH, double _dRad, double _dLinTol) : + frCyl( _frCyl), dH( _dH), dRad( _dRad) { ;} + Cyl( const Point3d& _ptBase, const Vector3d& vtZ, double _dH, double _dRad, double _dLinTol) : + dH( _dH), dRad( _dRad){ + frCyl.Set( _ptBase, vtZ); } +public : + Frame3d frCyl ; +public: + double dH ; + double dRad ; +}; + +typedef std::vector CYLVECT ; + +EGK_EXPORT bool CalcAdjustConcavePartsInPath( const ICurveComposite* pCrv, const OFFSETSEGVEC& vOffsetCrvs, double dRad, EDITCRVINFOVEC& vEditInfo) ; +EGK_EXPORT bool IsPointInsideCylinder( const Point3d& ptTest, const Cyl& offCyl, double dLinTol) ; + //---------------------------------------------------------------------------- class OffsetCurve3d {