diff --git a/API_Nesting.cpp b/API_Nesting.cpp index 3cbd21e..1484dd2 100644 --- a/API_Nesting.cpp +++ b/API_Nesting.cpp @@ -28,16 +28,16 @@ __stdcall EgtCreateFlatParts( int nType) //----------------------------------------------------------------------------- BOOL -__stdcall EgtPackPart( int nId, double dXmin, double dYmin, - double dXmax, double dYmax, double dOffs, BOOL bBottomUp) +__stdcall EgtPackBox( int nId, double dXmin, double dYmin, + double dXmax, double dYmax, double dOffs, BOOL bBottomUp) { - return ( ExePackPart( nId, dXmin, dYmin, dXmax, dYmax, dOffs, bBottomUp != FALSE) ? TRUE : FALSE) ; + return ( ExePackBox( 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) +__stdcall EgtPackBoxCluster( int nId[], int nCount, double dXmin, double dYmin, + double dXmax, double dYmax, double dOffs, BOOL bBottomUp) { // verifico if ( nId == nullptr || nCount <= 0) @@ -48,7 +48,7 @@ __stdcall EgtPackCluster( int nId[], int nCount, double dXmin, double dYmin, 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) ; + return ( ExePackBoxCluster( vIds, dXmin, dYmin, dXmax, dYmax, dOffs, bBottomUp != FALSE) ? TRUE : FALSE) ; } //----------------------------------------------------------------------------- @@ -75,8 +75,8 @@ __stdcall EgtGetClusterBBoxGlob( int nId[], int nCount, double ptMin[3], double //----------------------------------------------------------------------------- BOOL -__stdcall EgtMoveCluster( int nId[], int nCount, double vtMove[3], - double dXmin, double dYmin, double dXmax, double dYmax, double dOffs) +__stdcall EgtMoveBoxCluster( int nId[], int nCount, double vtMove[3], + double dXmin, double dYmin, double dXmax, double dYmax, double dOffs) { // verifico if ( nId == nullptr || nCount <= 0) @@ -88,8 +88,68 @@ __stdcall EgtMoveCluster( int nId[], int nCount, double vtMove[3], vIds.push_back( nId[i]) ; // eseguo Vector3d vtM = vtMove ; - bool bOk = ExeMoveCluster( vIds, vtM, dXmin, dYmin, dXmax, dYmax, dOffs) ; + bool bOk = ExeMoveBoxCluster( vIds, vtM, dXmin, dYmin, dXmax, dYmax, dOffs) ; VEC_FROM_3D( vtMove, vtM) return ( bOk ? TRUE : FALSE) ; } + +//----------------------------------------------------------------------------- +BOOL +__stdcall EgtMovePartCluster( int nId[], int nCount, double vtMove[3], + double dXmin, double dYmin, double dXmax, double dYmax) +{ + // 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 + Vector3d vtM = vtMove ; + bool bOk = ExeMovePartCluster( vIds, vtM, dXmin, dYmin, dXmax, dYmax) ; + VEC_FROM_3D( vtMove, vtM) + + return ( bOk ? TRUE : FALSE) ; +} + +//----------------------------------------------------------------------------- +BOOL +__stdcall EgtRotatePartCluster( int nId[], int nCount, const double ptCen[3], double* pdRotAngDeg, + double dXmin, double dYmin, double dXmax, double dYmax) +{ + // verifico + if ( nId == nullptr || nCount <= 0 || pdRotAngDeg == nullptr) + return false ; + // riempio il vettore + INTVECTOR vIds ; + vIds.reserve( nCount) ; + for ( int i = 0 ; i < nCount ; ++ i) + vIds.push_back( nId[i]) ; + // eseguo + bool bOk = ExeRotatePartCluster( vIds, ptCen, *pdRotAngDeg, dXmin, dYmin, dXmax, dYmax) ; + + return ( bOk ? TRUE : FALSE) ; +} + +//----------------------------------------------------------------------------- +BOOL +__stdcall EgtGetPartClusterCenterGlob( int nId[], int nCount, double ptCen[3]) +{ + // verifico + if ( nId == nullptr || nCount <= 0 || ptCen == nullptr) + return false ; + // riempio il vettore + INTVECTOR vIds ; + vIds.reserve( nCount) ; + for ( int i = 0 ; i < nCount ; ++ i) + vIds.push_back( nId[i]) ; + // eseguo + Point3d ptC ; + if ( ! ExeGetPartClusterCenterGlob( vIds, ptC)) + return FALSE ; + VEC_FROM_3D( ptCen, ptC) + return TRUE ; +} diff --git a/EgtInterface.rc b/EgtInterface.rc index ea897bd..32e4973 100644 Binary files a/EgtInterface.rc and b/EgtInterface.rc differ