//---------------------------------------------------------------------------- // EgalTech 2015-2023 //---------------------------------------------------------------------------- // File : EMkMachMgr.h Data : 28.10.23 Versione : 2.5j4 // Contenuto : Dichiarazione della interfaccia IMachMgr. // // // // Modifiche : 23.03.15 DS Creazione modulo. // 16.05.19 DS Aggiunto parametro sToolMakersDir a Init. // 26.06.19 DS Aggiunta gestione Warnings. // 17.08.20 DS Aggiunte GetAxisMin e GetAxisMax. // 10.11.20 DS Portate in interfaccia funzioni di calcolo con vettori di angoli. // 13.01.21 DS Aggiunte in interfaccia GetCalcHead e GetCalcExit. // 21.09.22 DS Aggiunta in interfaccia GetAxisOffset. // 25.08.23 DS Aggiunta in interfaccia CopyMachGroup. // 28.10.23 DS Aggiunte in interfaccia GetClEntAxesVal, GetToolSetupPosInCurrSetup e GetAllCurrAxesName. // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkGeomDB.h" #include "/EgtDev/Include/EGkSelection.h" //----------------------- Macro per import/export ---------------------------- #undef EMK_EXPORT #if defined( I_AM_EMK) // da definirsi solo nella DLL #define EMK_EXPORT __declspec( dllexport) #else #define EMK_EXPORT __declspec( dllimport) #endif //----------------------------------------------------------------------------- class __declspec( novtable) IMachMgr { public : // Basic virtual ~IMachMgr( void) {} virtual bool Init( const std::string& sMachinesDir, const std::string& sToolMakersDir, IGeomDB* pGeomDB, int nContextId, const std::string& sLuaLibsDir, const std::string& sLuaLastRequire) = 0 ; virtual bool Update( void) = 0 ; virtual bool Insert( int nInsGrp) = 0 ; virtual int GetLastErrorId( void) const = 0 ; virtual std::string GetLastErrorString( void) const = 0 ; virtual int GetWarningId( int nInd) const = 0 ; virtual std::string GetWarningString( int nInd) const = 0 ; // Machines virtual bool GetMachines( STRVECTOR& vsMachineNames, STRVECTOR& vsMachineDirs) const = 0 ; virtual bool SetCurrMachine( const std::string& sMachineName) = 0 ; virtual bool GetCurrMachineName( std::string& sMachineName) const = 0 ; virtual bool GetCurrMachineDir( std::string& sMachineDir) const = 0 ; // MachGroups virtual bool IsMachBase( int nId) const = 0 ; virtual int GetMachGroupCount( void) const = 0 ; virtual int GetFirstMachGroup( void) const = 0 ; virtual int GetNextMachGroup( int nId) const = 0 ; virtual int GetLastMachGroup( void) const = 0 ; virtual int GetPrevMachGroup( int nId) const = 0 ; virtual bool GetMachGroupNewName( std::string& sName) const = 0 ; virtual int AddMachGroup( const std::string& sName, const std::string& sMachineName) = 0 ; virtual int CopyMachGroup( const std::string& sSouName, const std::string& sName) = 0 ; virtual bool RemoveMachGroup( int nId) = 0 ; virtual std::string GetMachGroupName( int nId) const = 0 ; virtual std::string GetMachGroupMachineName( int nId) const = 0 ; virtual int GetMachGroupId( const std::string& sName) const = 0 ; virtual bool SetCurrMachGroup( int nId) = 0 ; virtual bool ResetCurrMachGroup( void) = 0 ; virtual int GetCurrMachGroup( void) const = 0 ; // Phases virtual int AddPhase( void) = 0 ; virtual bool SetCurrPhase( int nPhase, bool bForced = false) = 0 ; virtual int GetCurrPhase( void) const = 0 ; virtual bool RemoveLastPhase( void) = 0 ; virtual int GetPhaseCount( void) const = 0 ; // RawParts virtual int GetRawPartCount( void) const = 0 ; virtual int GetFirstRawPart( void) const = 0 ; virtual int GetNextRawPart( int nId) const = 0 ; virtual bool IsRawPart( int nId) const = 0 ; virtual int AddRawPart( const Point3d& ptOrig, double dLen, double dWidth, double dHeight, Color cCol) = 0 ; virtual int AddRawPartWithPart( int nPartId, int nCrvSrfId, double dOverMat, Color cCol) = 0 ; virtual bool ModifyRawPart( int nRawId, const Point3d& ptOrig, double dLen, double dWidth, double dHeight, Color cCol) = 0 ; virtual bool ModifyRawPart( int nRawId, int nCrvId, double dOverMat, double dZmin, double dHeight, Color cCol) = 0 ; virtual bool ModifyRawPartSize( int nRawId, double dLength, double dWidth, double dHeight) = 0 ; virtual bool ModifyRawPartHeight( int nRawId, double dHeight) = 0 ; virtual bool KeepRawPart( int nRawId, int nSouPhase) = 0 ; virtual bool VerifyRawPartPhase( int nRawId, int nPhase) const = 0 ; virtual bool RemoveRawPartFromCurrPhase( int nRawId) = 0 ; virtual bool RemoveRawPart( int nRawId) = 0 ; virtual bool RotateRawPart( int nRawId, const Vector3d& vtAx, double dAngRotDeg) = 0 ; virtual bool MoveToCornerRawPart( int nRawId, const Point3d& ptCorner, int nFlag) = 0 ; virtual bool MoveToCenterRawPart( int nRawId, const Point3d& ptCenter, int nFlag) = 0 ; virtual bool MoveRawPart( int nRawId, const Vector3d& vtMove) = 0 ; virtual bool GetRawPartCenter( int nRawId, Point3d& ptCen) = 0 ; virtual bool GetRawPartBBox( int nRawId, BBox3d& b3Raw) = 0 ; virtual int SplitFlatRawPartWithMachinings( int nRawId, const INTVECTOR& vMchId) = 0 ; // Parts virtual int GetPartInRawPartCount( int nRawId) const = 0 ; virtual int GetFirstPartInRawPart( int nRawId) const = 0 ; virtual int GetNextPartInRawPart( int nId) const = 0 ; virtual bool AddPartToRawPart( int nPartId, const Point3d& ptPos, int nRawId) = 0 ; virtual int GetRawPartFromPart( int nPartId) = 0 ; virtual bool RemovePartFromRawPart( int nPartId) = 0 ; virtual bool TranslatePartInRawPart( int nPartId, const Vector3d& vtMove) = 0 ; virtual bool RotatePartInRawPart( int nPartId, const Vector3d& vtAx, double dAngRotDeg) = 0 ; // Tables and Fixtures virtual bool SetTable( const std::string& sTable) = 0 ; virtual bool SetTableAreaOffset( double dOffsXP, double dOffsYP, double dOffsXM, double dOffsYM) = 0 ; virtual bool GetTable( std::string& sTable) const = 0 ; virtual bool GetTableRef( int nInd, Point3d& ptPos) const = 0 ; virtual bool GetTableArea( int nInd, BBox3d& b3Area) const = 0 ; virtual bool GetTableAreaOffset( int nInd, BBox3d& b3Area) const = 0 ; virtual bool ChangeTable( const std::string& sTable, bool bUpdateDisp) = 0 ; virtual bool ShowOnlyTable( bool bVal) = 0 ; virtual int AddFixture( const std::string& sName, const Point3d& ptPos, double dAngRotDeg, double dMov) = 0 ; virtual bool KeepFixture( int nFxtId, int nSouPhase) = 0 ; virtual bool RemoveFixture( int nFxtId) = 0 ; virtual bool VerifyFixture( int nFxtId) const = 0 ; virtual int GetFirstFixture( void) const = 0 ; virtual int GetNextFixture( int nFxtId) const = 0 ; virtual bool MoveFixture( int nId, const Vector3d& vtMove) = 0 ; virtual bool RotateFixture( int nId, double dDeltaAngDeg) = 0 ; virtual bool MoveFixtureMobile( int nId, double dDeltaMov) = 0 ; // Tools DataBase virtual bool TdbGetToolNewName( std::string& sName) const = 0 ; virtual bool TdbAddTool( const std::string& sName, int nType) = 0 ; virtual bool TdbCopyTool( const std::string& sSource, const std::string& sName) = 0 ; virtual bool TdbRemoveTool( const std::string& sName) = 0 ; virtual bool TdbGetFirstTool( int nFamily, std::string& sName, int& nType) const = 0 ; virtual bool TdbGetNextTool( int nFamily, std::string& sName, int& nType) const = 0 ; virtual bool TdbGetToolFromUUID( const std::string& sTuuid, std::string& sName) const = 0 ; virtual bool TdbSetCurrTool( const std::string& sName) = 0 ; virtual bool TdbSaveCurrTool( void) = 0 ; virtual bool TdbIsCurrToolModified( void) const = 0 ; virtual bool TdbSetCurrToolParam( int nType, bool bVal) = 0 ; virtual bool TdbSetCurrToolParam( int nType, int nVal) = 0 ; virtual bool TdbSetCurrToolParam( int nType, double dVal) = 0 ; virtual bool TdbSetCurrToolParam( int nType, const std::string& sVal) = 0 ; virtual bool TdbSetCurrToolValInNotes( int nType, const std::string& sKey, bool bVal) = 0 ; virtual bool TdbSetCurrToolValInNotes( int nType, const std::string& sKey, int nVal) = 0 ; virtual bool TdbSetCurrToolValInNotes( int nType, const std::string& sKey, double dVal) = 0 ; virtual bool TdbSetCurrToolValInNotes( int nType, const std::string& sKey, const std::string& sVal) = 0 ; virtual bool TdbRemoveCurrToolValInNotes( int nType, const std::string& sKey) = 0 ; virtual bool TdbGetCurrToolParam( int nType, bool& bVal) const = 0 ; virtual bool TdbGetCurrToolParam( int nType, int& nVal) const = 0 ; virtual bool TdbGetCurrToolParam( int nType, double& dVal) const = 0 ; virtual bool TdbGetCurrToolParam( int nType, std::string& sVal) const = 0 ; virtual bool TdbGetCurrToolValInNotes( int nType, const std::string& sKey, bool& bVal) const = 0 ; virtual bool TdbGetCurrToolValInNotes( int nType, const std::string& sKey, int& nVal) const = 0 ; virtual bool TdbGetCurrToolValInNotes( int nType, const std::string& sKey, double& dVal) const = 0 ; virtual bool TdbGetCurrToolValInNotes( int nType, const std::string& sKey, std::string& sVal) const = 0 ; virtual bool TdbGetCurrToolMaxDepth( double& dMaxDepth) const = 0 ; virtual bool TdbGetCurrToolThDiam( double& dThDiam) const = 0 ; virtual bool TdbGetCurrToolThLength( double& dThLen) const = 0 ; virtual int TdbCurrToolDraw( int nGenCtx, int nToolCtx) const = 0 ; virtual bool TdbReload( void) = 0 ; virtual bool TdbSave( void) const = 0 ; virtual bool TdbGetToolDir( std::string& sToolDir) const = 0 ; virtual bool TdbGetToolHolderDir( std::string& sTHolderDir) const = 0 ; virtual bool TdbExport( const STRVECTOR& vsToolsNames, const std::string& sOutFile) const = 0 ; virtual bool TdbToBeImported( const std::string& sFile, STRVECTOR& vsToolNames, INTVECTOR& vToolsTypes) const = 0 ; virtual bool TdbImport( const std::string& sFile, const STRVECTOR& vsToolsToImport, const STRVECTOR& vsToolsNames, STRVECTOR& vsImported) = 0 ; // Setup virtual int GetCurrSetup( void) const = 0 ; virtual bool GetDefaultSetupName( std::string& sName) const = 0 ; virtual bool ImportSetup( const std::string& sName) = 0 ; virtual bool VerifyCurrSetup( STRVECTOR& vsErrors) = 0 ; virtual bool FindToolInCurrSetup( const std::string& sTool) = 0 ; virtual bool GetToolSetupPosInCurrSetup( const std::string& sTool, std::string& sTcPos) = 0 ; virtual bool GetToolsInCurrSetupPos( const std::string& sTcPos, STRVECTOR& vsTools) = 0 ; virtual bool UpdateCurrSetup( void) = 0 ; virtual bool EraseCurrSetup( void) = 0 ; // Machinings DataBase virtual bool MdbGetMachiningNewName( std::string& sName) const = 0 ; virtual bool MdbAddMachining( const std::string& sName, int nType) = 0 ; virtual bool MdbCopyMachining( const std::string& sSource, const std::string& sName) = 0 ; virtual bool MdbRemoveMachining( const std::string& sName) = 0 ; virtual bool MdbGetFirstMachining( int nType, std::string& sName) const = 0 ; virtual bool MdbGetNextMachining( int nType, std::string& sName) const = 0 ; virtual bool MdbGetMachiningFromUUID( const std::string& sMuuid, std::string& sName) const = 0 ; virtual bool MdbSetCurrMachining( const std::string& sName) = 0 ; virtual bool MdbSaveCurrMachining( void) = 0 ; virtual bool MdbIsCurrMachiningModified( void) const = 0 ; virtual bool MdbSetCurrMachiningParam( int nType, bool bVal) = 0 ; virtual bool MdbSetCurrMachiningParam( int nType, int nVal) = 0 ; virtual bool MdbSetCurrMachiningParam( int nType, double dVal) = 0 ; virtual bool MdbSetCurrMachiningParam( int nType, const std::string& sVal) = 0 ; virtual bool MdbGetCurrMachiningParam( int nType, bool& bVal) const = 0 ; virtual bool MdbGetCurrMachiningParam( int nType, int& nVal) const = 0 ; virtual bool MdbGetCurrMachiningParam( int nType, double& dVal) const = 0 ; virtual bool MdbGetCurrMachiningParam( int nType, std::string& sVal) const = 0 ; virtual bool MdbSetGeneralParam( int nType, bool bVal) = 0 ; virtual bool MdbSetGeneralParam( int nType, int nVal) = 0 ; virtual bool MdbSetGeneralParam( int nType, double dVal) = 0 ; virtual bool MdbGetGeneralParam( int nType, bool& bVal) const = 0 ; virtual bool MdbGetGeneralParam( int nType, int& nVal) const = 0 ; virtual bool MdbGetGeneralParam( int nType, double& dVal) const = 0 ; virtual bool MdbReload( void) = 0 ; virtual bool MdbSave( void) const = 0 ; virtual bool MdbGetMachiningDir( std::string& sMchDir) const = 0 ; virtual bool MdbExport( const STRVECTOR& vsMachiningsNames, const std::string& sOutFile) const = 0 ; virtual bool MdbToBeImported( const std::string& sFile, STRVECTOR& vsMachiningsNames, INTVECTOR& vMachiningsTypes) const = 0 ; virtual bool MdbImport( const std::string& sFile, const STRVECTOR& vsMachiningsToImport, const STRVECTOR& vsMachiningsNames, STRVECTOR& vsImported) = 0 ; // Operations : general virtual int GetOperationCount( void) const = 0 ; virtual int GetFirstOperation( void) const = 0 ; virtual int GetNextOperation( int nId) const = 0 ; virtual int GetLastOperation( void) const = 0 ; virtual int GetPrevOperation( int nId) const = 0 ; virtual int GetFirstActiveOperation( void) const = 0 ; virtual int GetNextActiveOperation( int nId) const = 0 ; virtual int GetLastActiveOperation( void) const = 0 ; virtual int GetPrevActiveOperation( int nId) const = 0 ; virtual int GetOperationType( int nId) const = 0 ; virtual int GetOperationPhase( int nId) const = 0 ; virtual bool SetOperationName( int nId, const std::string& sName) = 0 ; virtual std::string GetOperationName( int nId) const = 0 ; virtual int GetOperationId( const std::string& sName) const = 0 ; virtual bool IsOperationEmpty( int nId) const = 0 ; virtual bool RemoveOperation( int nId) = 0 ; virtual bool RemoveAllPhaseOperations( int nPhase) = 0 ; virtual bool RemoveAllOperations( void) = 0 ; virtual bool SetOperationMode( int nId, bool bActive) = 0 ; virtual bool GetOperationMode( int nId, bool& bActive) const = 0 ; virtual bool SetAllOperationsMode( bool bExceptFirstDisp, bool bActive) = 0 ; virtual bool SetOperationStatus( int nId, bool bShow) = 0 ; virtual bool GetOperationStatus( int nId, bool& bShow) const = 0 ; virtual bool SetAllOperationsStatus( bool bExceptFirstDisp, bool bShow) = 0 ; virtual bool AdjustOperationPhase( int nMchId) = 0 ; virtual bool ChangeOperationPhase( int nMchId, int nNewPhase) = 0 ; virtual int GetPhaseLastOperation( int nPhase) const = 0 ; virtual bool RemoveOperationHome( int nId) = 0 ; // Operations : dispositions virtual int GetPhaseDisposition( int nPhase) const = 0 ; virtual bool DispositionSpecialApply( int nId, bool bRecalc) = 0 ; virtual bool DispositionSpecialUpdate( int nId) = 0 ; // Operations : machinings virtual int AddMachining( const std::string& sName, const std::string& sMachining) = 0 ; virtual int AddMachining( const std::string& sName, int nMchType, const std::string& sTool) = 0 ; virtual int CopyMachining( const std::string& sName, const std::string& sSouName) = 0 ; virtual bool SetCurrMachining( int nId) = 0 ; virtual bool ResetCurrMachining( void) = 0 ; virtual int GetCurrMachining( void) const = 0 ; virtual bool SetMachiningParam( int nType, bool bVal, bool* pbChanged = nullptr) = 0 ; virtual bool SetMachiningParam( int nType, int nVal, bool* pbChanged = nullptr) = 0 ; virtual bool SetMachiningParam( int nType, double dVa, bool* pbChanged = nullptr) = 0 ; virtual bool SetMachiningParam( int nType, const std::string& sVal, bool* pbChanged = nullptr) = 0 ; virtual bool SetMachiningGeometry( const SELVECTOR& vIds) = 0 ; virtual bool MachiningPreview( bool bRecalc) = 0 ; virtual bool ExistsMachiningPreview( void) = 0 ; virtual bool RemoveMachiningPreview( void) = 0 ; virtual bool MachiningApply( bool bRecalc, bool bPostApply = true) = 0 ; virtual bool MachiningUpdate( bool bPostApply = true) = 0 ; virtual bool PreparePreviewMachiningTool( void) const = 0 ; virtual bool RemovePreviewMachiningTool( void) const = 0 ; virtual int PreviewMachiningTool( int nEntId, int nFlag) const = 0 ; virtual bool GetMachiningParam( int nType, bool& bVal) const = 0 ; virtual bool GetMachiningParam( int nType, int& nVal) const = 0 ; virtual bool GetMachiningParam( int nType, double& dVal) const = 0 ; virtual bool GetMachiningParam( int nType, std::string& sVal) const = 0 ; virtual bool GetMachiningGeometry( SELVECTOR& vIds) const = 0 ; virtual bool IsMachiningEmpty( void) const = 0 ; virtual bool GetMachiningStartPoint( Point3d& ptStart) const = 0 ; virtual bool GetMachiningEndPoint( Point3d& ptEnd) const = 0 ; // CL Entities Interrogations virtual bool GetClEntMove( int nEntId, int& nMove) const = 0 ; virtual bool GetClEntFlag( int nEntId, int& nFlag, int& nFlag2) const = 0 ; virtual bool GetClEntIndex( int nEntId, int& nIndex) const = 0 ; virtual bool GetClEntAxesVal( int nEntId, DBLVECTOR& vAxes) const = 0 ; // Simulation virtual bool SimInit( void) = 0 ; virtual bool SimStart( bool bFirst) = 0 ; virtual bool SimMove( int& nStatus) = 0 ; virtual bool SimGetAxisInfoPos( int nI, std::string& sName, std::string& sToken, bool& bLinear, double& dVal) const = 0 ; virtual bool SimGetToolInfo( std::string& sName, double& dSpeed) const = 0 ; virtual bool SimGetOperationInfo( std::string& sName, int& nType) const = 0 ; virtual bool SimGetMoveInfo( int& nGmove, double& dFeed) const = 0 ; virtual bool SimSetStep( double dStep) = 0 ; virtual bool SimSetUiStatus( int nUiStatus) = 0 ; virtual bool SimGoHome( void) = 0 ; virtual bool SimExit( void) = 0 ; // Generation virtual bool Generate( const std::string& sCncFile, const std::string& sInfo) = 0 ; virtual bool Estimate( const std::string& sEstFile, const std::string& sInfo) = 0 ; // Machine Calc virtual bool SetCalcTable( const std::string& sTable) = 0 ; virtual bool SetCalcTool( const std::string& sTool, const std::string& sHead, int nExit) = 0 ; virtual bool GetAllCurrAxesName( STRVECTOR& vAxName) const = 0 ; virtual bool SetRotAxisBlock( const std::string& sAxis, double dVal) = 0 ; virtual bool GetRotAxisBlocked( int nInd, std::string& sAxis, double& dVal) const = 0 ; virtual bool GetCalcTool( std::string& sTool) const = 0 ; virtual bool GetCalcHead( std::string& sHead) const = 0 ; virtual bool GetCalcExit( int& nExit) const = 0 ; virtual bool GetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA, int& nStat, double& dAngA1, double& dAngB1, double& dAngA2, double& dAngB2) const = 0 ; virtual bool GetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA, int& nStat, DBLVECTOR& vAng1, DBLVECTOR& vAng2) const = 0 ; virtual bool GetCalcPositions( const Point3d& ptP, double dAngA, double dAngB, int& nStat, double& dX, double& dY, double& dZ) const = 0 ; virtual bool GetCalcPositions( const Point3d& ptP, const DBLVECTOR& vAng, int& nStat, double& dX, double& dY, double& dZ) const = 0 ; virtual bool GetCalcTipFromPositions( double dX, double dY, double dZ, double dAngA, double dAngB, bool bOverall, bool bBottom, Point3d& ptTip) const = 0 ; virtual bool GetCalcTipFromPositions( double dX, double dY, double dZ, const DBLVECTOR& vAng, bool bOverall, bool bBottom, Point3d& ptTip) const = 0 ; virtual bool GetCalcToolDirFromAngles( const DBLVECTOR& vAng, Vector3d& vtDir) const = 0 ; virtual bool GetCalcAuxDirFromAngles( const DBLVECTOR& vAng, Vector3d& vtDir) const = 0 ; virtual bool GetNearestAngleInStroke( int nInd, double dAngRef, double& dAng) const = 0 ; virtual bool LimitAngleToStroke( int nInd, double& dAng) const = 0 ; virtual bool VerifyOutstroke( double dX, double dY, double dZ, double dAngA, double dAngB, int& nStat) const = 0 ; virtual std::string GetOutstrokeInfo( bool bMM = true) const = 0 ; // Machine virtual int GetBaseId( const std::string& sBase) const = 0 ; virtual int GetTableId( const std::string& sTable) const = 0 ; virtual int GetAxisId( const std::string& sAxis) const = 0 ; virtual int GetHeadId( const std::string& sHead) const = 0 ; virtual int GetHeadExitCount( const std::string& sHead) const = 0 ; virtual int GetTcPosId( const std::string& sTcPos) const = 0 ; virtual bool GetAxisToken( const std::string& sAxis, std::string& sToken) const = 0 ; virtual bool GetAxisType( const std::string& sAxis, bool& bLinear) const = 0 ; virtual bool GetAxisInvert( const std::string& sAxis, bool& bInvert) const = 0 ; virtual bool GetAxisOffset( const std::string& sAxis, double& dOffset) const = 0 ; virtual bool SetAxisPos( const std::string& sAxis, double dVal, double* pdNewVal = nullptr) = 0 ; virtual bool GetAxisPos( const std::string& sAxis, double& dVal) const = 0 ; virtual bool GetAxisMin( const std::string& sAxis, double& dMin) const = 0 ; virtual bool GetAxisMax( const std::string& sAxis, double& dMaxn) const = 0 ; virtual bool GetAxisHomePos( const std::string& sAxis, double& dHomeVal) const = 0 ; virtual bool ResetAxisPos( const std::string& sAxis) = 0 ; virtual bool ResetAllAxesPos( void) = 0 ; virtual bool GetAllTablesNames( STRVECTOR& vNames) const = 0 ; virtual bool GetAllHeadsNames( STRVECTOR& vNames) const = 0 ; virtual bool GetAllTcPosNames( STRVECTOR& vNames) const = 0 ; virtual bool LoadTool( const std::string& sHead, int nExit, const std::string& sTool) = 0 ; virtual bool GetLoadedTool( const std::string& sHead, int nExit, std::string& sTool) const = 0 ; virtual bool UnloadTool( const std::string& sHead, int nExit) = 0 ; virtual bool ResetHeadSet( const std::string& sHead) = 0 ; virtual bool SetMachineLook( int nFlag) = 0 ; virtual int GetMachineLook( void) const = 0 ; } ; //----------------------------------------------------------------------------- extern "C" { EMK_EXPORT IMachMgr* CreateMachMgr(void) ; }