Files
Include/ENsAutoNester.h
T
Dario Sassi d461b87d76 Include :
- aggiornamento prototipi.
2019-12-05 09:35:17 +00:00

63 lines
2.7 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2019-2019
//----------------------------------------------------------------------------
// File : ENsAutoNester.h Data : 28.11.19 Versione : 2.1k6
// Contenuto : Dichiarazione della interfaccia IAutoNester.
//
//
//
// Modifiche : 28.11.19 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include <string>
#include <vector>
//----------------------- Macro per import/export ----------------------------
#undef ENS_EXPORT
#if defined( I_AM_ENS) // da definirsi solo nella DLL
#define ENS_EXPORT __declspec( dllexport)
#else
#define ENS_EXPORT __declspec( dllimport)
#endif
class PolyArc ;
//-----------------------------------------------------------------------------
struct ANestInfo {
int nType ; // se > 0 allora pannello e quindi molteplicità, se == 0 è pezzo
int nId ; // identificativo
int nFlag ; // per pannello numero di pezzi contenuti, per pezzo flip (0=no/1=si)
double dX ; // per pannello fill ratio, per pezzo traslazione in X dell'origine pezzo
double dY ; // solo per pezzo, traslazione in Y dell'origine pezzo
double dAngRot ; // solo per pezzo, rotazione del pezzo attorno all'origine
} ;
typedef std::vector<ANestInfo> ANIVECT ;
//-----------------------------------------------------------------------------
class __declspec( novtable) IAutoNester
{
public :
virtual ~IAutoNester( void) {}
virtual bool Start( void) = 0 ;
virtual bool AddSheet( int nSheetId, const PolyArc& Outline, double dKerf, int nPriority, int nCount) = 0 ;
virtual bool AddDefectToSheet( int nSheetId, const PolyArc& Outline) = 0 ;
virtual bool AddPart( int nPartId, const PolyArc& Outline, bool bCanFlip, bool bCanRotate, double dRotStep, int nPriority, int nCount) = 0 ;
virtual bool AddAnotherOutlineToPart( int nPartId, const PolyArc& AnotherOutline) = 0 ;
virtual bool AddToolOutlineToPart( int nPartId, const PolyArc& ToolOutline) = 0 ;
virtual bool SetInterpartGap( double dGap) = 0 ;
virtual bool Compute( bool bMinimizeOnXvsY, int nMaxTime) = 0 ;
virtual bool CancelComputation( void) = 0 ;
virtual bool GetComputationStatus( int& nStatus) = 0 ;
virtual bool GetResults( double& dTotFillRatio, ANIVECT& vANI) = 0 ;
virtual bool PrintResults( const std::string& sHtmlFile) = 0 ;
} ;
//-----------------------------------------------------------------------------
extern "C" {
ENS_EXPORT IAutoNester* CreateAutoNester(void) ;
}