From bb67fd65d7524fe036edae336a90972c18ce1cdc Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Thu, 10 Sep 2015 21:45:18 +0000 Subject: [PATCH] EgtInterface 1.6i5 : - estensione Nesting di rettangoli. --- API_Nesting.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++++++-- EgtInterface.rc | Bin 11718 -> 11718 bytes 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/API_Nesting.cpp b/API_Nesting.cpp index a719274..296b3b1 100644 --- a/API_Nesting.cpp +++ b/API_Nesting.cpp @@ -28,7 +28,68 @@ __stdcall EgtCreateFlatParts( int nType) //----------------------------------------------------------------------------- BOOL -__stdcall EgtPackPart( int nId, double dXmin, double dYmin, double dXmax, double dOffs) +__stdcall EgtPackPart( int nId, double dXmin, double dYmin, + double dXmax, double dYmax, double dOffs, BOOL bBottomUp) { - return ( ExePackPart( nId, dXmin, dYmin, dXmax, dOffs) ? TRUE : FALSE) ; + return ( ExePackPart( nId, dXmin, dYmin, dXmax, dYmax, dOffs, bBottomUp != FALSE) ? TRUE : FALSE) ; +} + +//----------------------------------------------------------------------------- +BOOL +__stdcall EgtPackCluster( int nId[], int nCount, double dXmin, double dYmin, + double dXmax, double dYmax, double dOffs, BOOL bBottomUp) +{ + // verifico + if ( nId == nullptr || nCount <= 0) + return false ; + // riempio il vettore + INTVECTOR vIds ; + vIds.reserve( nCount) ; + for ( int i = 0 ; i < nCount ; ++ i) + vIds.push_back( nId[i]) ; + // eseguo + return ( ExePackCluster( vIds, dXmin, dYmin, dXmax, dYmax, dOffs, bBottomUp != FALSE) ? TRUE : FALSE) ; +} + +//----------------------------------------------------------------------------- +BOOL +__stdcall EgtGetClusterBBoxGlob( int nId[], int nCount, double ptMin[3], double ptMax[3]) +{ + // verifico + if ( nId == nullptr || nCount <= 0) + return false ; + // riempio il vettore + INTVECTOR vIds ; + vIds.reserve( nCount) ; + for ( int i = 0 ; i < nCount ; ++ i) + vIds.push_back( nId[i]) ; + // recupero il bounding box dell'oggetto in globale + BBox3d b3Box ; + if ( ! ExeGetClusterBBoxGlob( vIds, b3Box)) + return FALSE ; + // converto il risultato + ptMin[0] = b3Box.GetMin().x ; + ptMin[1] = b3Box.GetMin().y ; + ptMin[2] = b3Box.GetMin().z ; + ptMax[0] = b3Box.GetMax().x ; + ptMax[1] = b3Box.GetMax().y ; + ptMax[2] = b3Box.GetMax().z ; + return TRUE ; +} + +//----------------------------------------------------------------------------- +BOOL +__stdcall EgtMoveCluster( int nId[], int nCount, const double vtMove[3], + double dXmin, double dYmin, double dXmax, double dYmax, double dOffs) +{ + // verifico + if ( nId == nullptr || nCount <= 0) + return false ; + // riempio il vettore + INTVECTOR vIds ; + vIds.reserve( nCount) ; + for ( int i = 0 ; i < nCount ; ++ i) + vIds.push_back( nId[i]) ; + // eseguo + return ( ExeMoveCluster( vIds, vtMove, dXmin, dYmin, dXmax, dYmax, dOffs) ? TRUE : FALSE) ; } diff --git a/EgtInterface.rc b/EgtInterface.rc index 58c7f0dceeeb10f3d875bfa8a54496057601d203..5e795bf6d877730e2d1ebbae1f7d684a0bbd914a 100644 GIT binary patch delta 111 zcmX>WeJpyzFE&Qg%^&$rGEF|hS;uHP`Jtfh<^rw;7OzIAO+TQQ4Xt~E@c}o08AGs#sB~S delta 111 zcmX>WeJpyzFE&P#%^&$rGEF|hS;uHH`Jtfh<^rw;7OzIAO+TQQ4Xt~E@c}o07@$;z5oCK