From e538b3067dcccebeb62a847c34be2c5c240cb315 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Thu, 14 Jan 2016 17:36:55 +0000 Subject: [PATCH] EgtInterface 1.6l8 : - aggiornamento interfaccia per nesting. --- API_Nesting.cpp | 88 ++++++++++++++++++++++++++++++++++-------------- EgtInterface.rc | Bin 11726 -> 11726 bytes 2 files changed, 63 insertions(+), 25 deletions(-) diff --git a/API_Nesting.cpp b/API_Nesting.cpp index 42e1921..9b0ac3f 100644 --- a/API_Nesting.cpp +++ b/API_Nesting.cpp @@ -153,28 +153,6 @@ __stdcall EgtMovePartCluster( int nId[], int nCount, BOOL bReducedCut, double vt return TRUE ; } -//----------------------------------------------------------------------------- -BOOL -__stdcall EgtGetObstacleTangent( double vtTang[3]) -{ - Vector3d vtT ; - if ( ! ExeGetObstacleTangent( vtT)) - return FALSE ; - VEC_FROM_3D( vtTang, vtT) - return TRUE ; -} - -//----------------------------------------------------------------------------- -BOOL -__stdcall EgtGetMovingTangent( double vtTang[3]) -{ - Vector3d vtT ; - if ( ! ExeGetMovingTangent( vtT)) - return FALSE ; - VEC_FROM_3D( vtTang, vtT) - return TRUE ; -} - //----------------------------------------------------------------------------- BOOL __stdcall EgtRotatePartCluster( int nId[], int nCount, BOOL bReducedCut, const double ptCen[3], double* pdRotAngDeg, @@ -196,8 +174,8 @@ __stdcall EgtRotatePartCluster( int nId[], int nCount, BOOL bReducedCut, const d //----------------------------------------------------------------------------- BOOL -__stdcall EgtAlignPartClusterOnCollision( int nId[], int nCount, BOOL bReducedCut, - double dXmin, double dYmin, double dXmax, double dYmax) +__stdcall EgtTgMovePartClusterOnCollision( int nId[], int nCount, BOOL bReducedCut, double vtMove[3], + double dXmin, double dYmin, double dXmax, double dYmax) { // verifico if ( nId == nullptr || nCount <= 0) @@ -208,8 +186,54 @@ __stdcall EgtAlignPartClusterOnCollision( int nId[], int nCount, BOOL bReducedCu for ( int i = 0 ; i < nCount ; ++ i) vIds.push_back( nId[i]) ; // eseguo - if ( ! ExeAlignPartClusterOnCollision( vIds, ( bReducedCut != FALSE), dXmin, dYmin, dXmax, dYmax)) + Vector3d vtM = vtMove ; + if ( ! ExeTgMovePartClusterOnCollision( vIds, ( bReducedCut != FALSE), vtM, dXmin, dYmin, dXmax, dYmax)) return FALSE ; + VEC_FROM_3D( vtMove, vtM) + return TRUE ; +} + +//----------------------------------------------------------------------------- +BOOL +__stdcall EgtAlignPartClusterOnCollision( int nId[], int nCount, BOOL bReducedCut, + double dXmin, double dYmin, double dXmax, double dYmax, BOOL* pbMoved) +{ + // 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 + bool bMoved ; + if ( ! ExeAlignPartClusterOnCollision( vIds, ( bReducedCut != FALSE), dXmin, dYmin, dXmax, dYmax, bMoved)) + return FALSE ; + if ( pbMoved != nullptr) + *pbMoved = bMoved ; + return TRUE ; +} + +//----------------------------------------------------------------------------- +BOOL +__stdcall EgtMoveToSnapPointOnCollision( int nId[], int nCount, BOOL bReducedCut, double dMaxMove, + double dXmin, double dYmin, double dXmax, double dYmax, BOOL* pbMoved) +{ + // 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 + bool bMoved ; + if ( ! ExeMoveToSnapPointOnCollision( vIds, ( bReducedCut != FALSE), dMaxMove, dXmin, dYmin, dXmax, dYmax, bMoved)) + return FALSE ; + if ( pbMoved != nullptr) + *pbMoved = bMoved ; return TRUE ; } @@ -232,3 +256,17 @@ __stdcall EgtGetPartClusterCenterGlob( int nId[], int nCount, double ptCen[3]) VEC_FROM_3D( ptCen, ptC) return TRUE ; } + +//----------------------------------------------------------------------------- +void +__stdcall EgtSaveCollInfo( void) +{ + ExeSaveCollInfo() ; +} + +//----------------------------------------------------------------------------- +void +__stdcall EgtRestoreCollInfo( void) +{ + ExeRestoreCollInfo() ; +} diff --git a/EgtInterface.rc b/EgtInterface.rc index 6a93099fedf1413a5e9e2abfe9d41d43113b900d..b4b10cf15a3cb863249b894667cd3b087f0b4edc 100644 GIT binary patch delta 113 zcmX>XeJ*;#A2vpd%@4(HGEKh5na5}``6H+9WG^L)&3#f*jGK>e8!&^VPclv3Cs+lM i-t491#khHcFjUGNr~*ls7YjlI&*XKAP&0v=TDSq2At@CA delta 113 zcmX>XeJ*;#A2vqw%@4(HGEKh5na5~8`6H+9WG^L)&3#f*jGK>e8!&^VPclv3Cs+lM i-t491#khHcFjUGNr~*ls7YjlI&*XKAP&0v=TDSq0S1Anu