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