Files
Include/ENkShortestPath.h
T
Riccardo Elitropi bb029712a9 Include :
- Aggiunte funzioni e definizioni per classe di calcolo per ottimizzazione lavorazioni
- Aggiunti vincoli per algoritmo ShortestPath
- Aggiunte funzioni per Executor.
2025-04-23 10:08:37 +02:00

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) ;