diff --git a/EInAPI.h b/EInAPI.h index 7af8c10..2085b71 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -577,6 +577,13 @@ EIN_EXPORT BOOL __stdcall EgtLineSurfTmInters( const double ptP[3], const double EIN_EXPORT int __stdcall EgtSurfTmSurfTmInters( int nId1, int nId2, int nDestGrpId, int* pnPntCount, int* pnCrvCount, int* pnSrfCount) ; +// Maximum Filler +EIN_EXPORT BOOL __stdcall EgtMaxFillerStart( void) ; +EIN_EXPORT BOOL __stdcall EgtMaxFillerAddPart( int nPartId, double dLen, double dDispLen, int nCount) ; +EIN_EXPORT BOOL __stdcall EgtMaxFillerCompute( double dLenToFill, double dStartGap, double dMidGap, double dEndGap, int nSortType) ; +EIN_EXPORT BOOL __stdcall EgtMaxFillerGetResults( int* pnFilledParts, int* pnDiffParts, double* pdTotFillRatio) ; +EIN_EXPORT BOOL __stdcall EgtMaxFillerGetOneResult( int nInd, int* pnPartId, int* pnCount) ; + // Nesting EIN_EXPORT BOOL __stdcall EgtCreateAdjustFlatParts( int nType, double dToler) ; EIN_EXPORT BOOL __stdcall EgtCreateFlatParts( int nType, double dToler) ; diff --git a/ENkMaximumFiller.h b/ENkMaximumFiller.h new file mode 100644 index 0000000..4144d3b --- /dev/null +++ b/ENkMaximumFiller.h @@ -0,0 +1,39 @@ +//---------------------------------------------------------------------------- +// EgalTech 2020-2020 +//---------------------------------------------------------------------------- +// File : MaximumFiller.h Data : 05.11.20 Versione : 2.2k1 +// Contenuto : Classe per il calcolo del massimo riempimento (nesting 1D). +// +// +// +// Modifiche : 05.11.20 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +//----------------------- Macro per import/export ---------------------------- +#undef ENK_EXPORT +#if defined( I_AM_ENK) // da definirsi solo nella DLL + #define ENK_EXPORT __declspec( dllexport) +#else + #define ENK_EXPORT __declspec( dllimport) +#endif + + +//---------------------------------------------------------------------------- +class __declspec( novtable) IMaximumFiller +{ + public : + virtual ~IMaximumFiller( void) {} + virtual bool Clear( void) = 0 ; + virtual bool AddPart( int nPartId, double dLen) = 0 ; + virtual bool AddPart( int nPartId, double dLen, double dDispLen, int nCount) = 0 ; + virtual bool Compute( double dLenToFill, double dStartGap, double dMidGap, double dEndGap, int nSortType = 0) = 0 ; + virtual bool GetResults( int& nFilledParts, int& nDiffParts, double& dTotFillRatio) const = 0 ; + virtual bool GetOneResult( int nInd, int& nPartId, int& nCount) const = 0 ; +} ; + +//----------------------------------------------------------------------------- +ENK_EXPORT IMaximumFiller* CreateMaximumFiller( void) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index 5bb1ea4..e0c0e55 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -693,6 +693,14 @@ EXE_EXPORT int ExeCDeBoxSolid( const Frame3d& frBox, const Vector3d& vtDiag, in EXE_EXPORT int ExeCDeCylSolid( const Frame3d& frCyl, double dH, double dR, int nSolidId, double dSafeDist, int nRefType) ; EXE_EXPORT int ExeCDeSpheSolid( const Point3d& ptCen, double dR, int nSolidId, double dSafeDist, int nRefType) ; +// Maximum Filler +EXE_EXPORT bool ExeMaxFillerStart( void) ; +EXE_EXPORT bool ExeMaxFillerAddPart( int nPartId, double dLen) ; +EXE_EXPORT bool ExeMaxFillerAddPart( int nPartId, double dLen, double dDispLen, int nCount) ; +EXE_EXPORT bool ExeMaxFillerCompute( double dLenToFill, double dStartGap, double dMidGap, double dEndGap, int nSortType) ; +EXE_EXPORT bool ExeMaxFillerGetResults( int& nFilledParts, int& nDiffParts, double& dTotFillRatio) ; +EXE_EXPORT bool ExeMaxFillerGetOneResult( int nInd, int& nPartId, int& nCount) ; + // Nesting // CreateFlatParts EXE_EXPORT bool ExeCreateAdjustFlatParts( int nType, double dToler) ;