bb029712a9
- Aggiunte funzioni e definizioni per classe di calcolo per ottimizzazione lavorazioni - Aggiunti vincoli per algoritmo ShortestPath - Aggiunte funzioni per Executor.
66 lines
2.7 KiB
C++
66 lines
2.7 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2015-2015
|
|
//----------------------------------------------------------------------------
|
|
// File : ENkShortestPath.h Data : 22.12.15 Versione : 1.6l3
|
|
// Contenuto : Classe per calcolo del percorso minimo di visita di
|
|
// un insieme di oggetti.
|
|
//
|
|
//
|
|
// Modifiche : 22.12.15 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "/EgtDev/Include/EgtNumCollection.h"
|
|
|
|
//----------------------- 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) IShortestPath
|
|
{
|
|
public :
|
|
virtual ~IShortestPath( void) {}
|
|
virtual bool AddPoint( double dX, double dY) = 0 ;
|
|
virtual bool AddPoint( double dXi, double dYi, double dXf, double dYf) = 0 ;
|
|
virtual bool AddPoint( double dXi, double dYi, double dZi, double dHi, double dVi,
|
|
double dXf, double dYf, double dZf, double dHf, double dVf) = 0 ;
|
|
virtual bool SetOpenBound( bool bStartVsEnd, int nFlag, double dX, double dY) = 0 ;
|
|
virtual bool SetOpenBound( bool bStartVsEnd, int nFlag, double dX, double dY, double dZ, double dH, double dV) = 0 ;
|
|
virtual bool SetAngularParams( double dAngHAdd, double dAngHMul, double dAngVAdd, double dAngVMul) = 0 ;
|
|
virtual bool SetZzOwStep( double dStep) = 0 ;
|
|
virtual bool Calculate( int nType) = 0 ;
|
|
virtual bool GetOrder( INTVECTOR& vOrder) = 0 ;
|
|
virtual bool GetMinLength( double& dMinLen) = 0 ;
|
|
virtual bool SetConstraintOrder( int nPrev, int nNext) = 0 ;
|
|
virtual bool SetSuggestedOrder( int nPrev, int nNext) = 0 ;
|
|
virtual bool SetDistMatrix( const INTMATRIX& mDistMatrix) = 0 ;
|
|
|
|
public :
|
|
enum SpType{ SP_NONE = 0,
|
|
SP_CLOSED = 1,
|
|
SP_OPEN = 2,
|
|
SP_ZIGZAG_X = 3,
|
|
SP_ZIGZAG_Y = 4,
|
|
SP_ONEWAY_XP = 5,
|
|
SP_ONEWAY_XM = 6,
|
|
SP_ONEWAY_YP = 7,
|
|
SP_ONEWAY_YM = 8} ;
|
|
enum ObType{ OB_NONE = 0,
|
|
OB_NEAR_PNT = 1,
|
|
OB_XMIN = 2,
|
|
OB_XMAX = 3,
|
|
OB_YMIN = 4,
|
|
OB_YMAX = 5} ;
|
|
} ;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
ENK_EXPORT IShortestPath* CreateShortestPath( void) ;
|