#pragma once #include "EarThwormDef.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class DLLIMPEXP AecMInterfaces { public: AecMInterfaces(void); virtual ~AecMInterfaces(void); virtual bool GetInterface(AcArray& arInfs) const = 0; virtual bool GetInterface(int nIndex,AecInterface& inf) const = 0; virtual bool GetInterface(const AcGePoint3d& ptHit,AecInterface& inf) const; virtual bool HasInterface(const AcGePoint3d& ptCon, const AcGeVector3d& vtDir); virtual int GetInterfaceCount() const = 0; virtual int GetActiveInf() const = 0; virtual void SetActiveInf(int nIndex) = 0; virtual void LockInf(int nInf) = 0; virtual bool TransformAssocInf(int nInf,const AcGeMatrix3d& xform) = 0; virtual bool GetNearInf(const AcGePoint3d& ptOn,AecInterface& inf); }; // Protocols of AecMInterfaces available in macro from. #define MINTERFACES_METHODS \ virtual bool GetInterface(AcArray& arInfs) const; \ virtual bool GetInterface(int nIndex,AecInterface& inf) const; \ virtual int GetInterfaceCount() const; \ virtual int GetActiveInf() const; \ virtual void SetActiveInf(int nIndex); \ virtual void LockInf(int nInf); \ virtual bool TransformAssocInf(int nInf,const AcGeMatrix3d& xform);