⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 medplugin.h

📁 3DMed Plugins 是MITK的配套例子
💻 H
字号:
/*=========================================================================

  Program:   3DMed
  Date:      $Date: 2005/11/04 06:08:06 $
  Version:   $Version: 2.00 $
  Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences


=========================================================================*/
#ifndef __medPlugin_h
#define __medPlugin_h

#include "medSysIncs.h"

typedef const char* (*medStringFunc)();
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
	#define MEDEXPORT __declspec(dllexport)
#else
	#define MEDEXPORT
#endif


class medVolume;
class medMesh;
//=========================================================================
class MED_SDK_API medVolumeImportPlugin
{
public:	
	virtual bool Show(void) = 0;
	virtual void ChangeLanguage(void) {}
	virtual void Delete(void) { delete this; }
	medVolume* GetOutput(); 
protected:
	medVolumeImportPlugin();
	virtual ~medVolumeImportPlugin();

	medVolume *m_Data;

};

#define IMPLEMENT_VOLUME_IMPORT(ClassName, MenuDescription) \
extern "C" { \
	MEDEXPORT const char* GetTypeName() {return "VolumeImportPlugin"; } \
	MEDEXPORT const char* GetClassname() {return #ClassName;} \
	MEDEXPORT const char* GetMenuDescription() {return MenuDescription;} \
	MEDEXPORT medVolumeImportPlugin* MakePlugin() {return new ClassName;} \
}
typedef medVolumeImportPlugin* (*MakeVolumeImportPlugin)();
//=========================================================================
class MED_SDK_API medVolumeExportPlugin
{
public:	
	virtual bool Show(void) = 0;
	void SetInput(medVolume* input) {m_Data = input;}
	medVolume* GetInput() {return m_Data;}
	virtual void ChangeLanguage(void) {}
	virtual void Delete(void) { delete this; }
	
protected:
	medVolumeExportPlugin();
	virtual ~medVolumeExportPlugin();

	medVolume *m_Data;
};

#define IMPLEMENT_VOLUME_EXPORT(ClassName, MenuDescription) \
extern "C" { \
	MEDEXPORT const char* GetTypeName() {return "VolumeExportPlugin"; } \
	MEDEXPORT const char* GetClassname() {return #ClassName;} \
	MEDEXPORT const char* GetMenuDescription() {return MenuDescription;} \
	MEDEXPORT medVolumeExportPlugin* MakePlugin() {return new ClassName;} \
}
typedef medVolumeExportPlugin* (*MakeVolumeExportPlugin)();
//=========================================================================
class MED_SDK_API medVolumeFilterPlugin
{
public:	
	virtual bool Show(void) = 0;
	void SetInput(medVolume* input) {m_InData = input;}
	medVolume* GetInput() {return m_InData;}
	medVolume* GetOutput(); 
	virtual void ChangeLanguage(void) {}
	virtual void Delete(void) { delete this; }
protected:
	medVolumeFilterPlugin();
	virtual ~medVolumeFilterPlugin();

	medVolume *m_InData;
	medVolume *m_OutData;
};

#define IMPLEMENT_VOLUME_FILTER(ClassName, MenuDescription) \
extern "C" { \
	MEDEXPORT const char* GetTypeName() {return "VolumeFilterPlugin"; } \
	MEDEXPORT const char* GetClassname() {return #ClassName;} \
	MEDEXPORT const char* GetMenuDescription() {return MenuDescription;} \
	MEDEXPORT medVolumeFilterPlugin* MakePlugin() {return new ClassName;} \
}
typedef medVolumeFilterPlugin* (*MakeVolumeFilterPlugin)();
//=========================================================================
class MED_SDK_API medMeshImportPlugin
{
public:	
	virtual bool Show(void) = 0;
	medMesh* GetOutput(); 
	virtual void ChangeLanguage(void) {}
	virtual void Delete(void) { delete this; }
protected:
	medMeshImportPlugin();
	virtual ~medMeshImportPlugin();

	medMesh *m_Data;
};

#define IMPLEMENT_MESH_IMPORT(ClassName, MenuDescription) \
extern "C" { \
	MEDEXPORT const char* GetTypeName() {return "MeshImportPlugin"; } \
	MEDEXPORT const char* GetClassname() {return #ClassName;} \
	MEDEXPORT const char* GetMenuDescription() {return MenuDescription;} \
	MEDEXPORT medMeshImportPlugin* MakePlugin() {return new ClassName;} \
}
typedef medMeshImportPlugin* (*MakeMeshImportPlugin)();
//=========================================================================
class MED_SDK_API medMeshExportPlugin
{
public:	
	virtual bool Show(void) = 0;
	void SetInput(medMesh* input) {m_Data = input;}
	medMesh* GetInput() {return m_Data;}
	virtual void ChangeLanguage(void) {}
	virtual void Delete(void) { delete this; }
	
protected:
	medMeshExportPlugin();
	virtual ~medMeshExportPlugin();

	medMesh *m_Data;
};

#define IMPLEMENT_MESH_EXPORT(ClassName, MenuDescription) \
extern "C" { \
	MEDEXPORT const char* GetTypeName() {return "MeshExportPlugin"; } \
	MEDEXPORT const char* GetClassname() {return #ClassName;} \
	MEDEXPORT const char* GetMenuDescription() {return MenuDescription;} \
	MEDEXPORT medMeshExportPlugin* MakePlugin() {return new ClassName;} \
}
typedef medMeshExportPlugin* (*MakeMeshExportPlugin)();
//=========================================================================
class MED_SDK_API medMeshFilterPlugin
{
public:	
	virtual bool Show(void) = 0;
	void SetInput(medMesh* input) {m_InData = input;}
	medMesh* GetInput() {return m_InData;}
	medMesh* GetOutput(); 
	virtual void ChangeLanguage(void) {}
	virtual void Delete(void) { delete this; }
protected:
	medMeshFilterPlugin();
	virtual ~medMeshFilterPlugin();

	medMesh *m_InData;
	medMesh *m_OutData;
};

#define IMPLEMENT_MESH_FILTER(ClassName, MenuDescription) \
extern "C" { \
	MEDEXPORT const char* GetTypeName() {return "MeshFilterPlugin"; } \
	MEDEXPORT const char* GetClassname() {return #ClassName;} \
	MEDEXPORT const char* GetMenuDescription() {return MenuDescription;} \
	MEDEXPORT medMeshFilterPlugin* MakePlugin() {return new ClassName;} \
}
typedef medMeshFilterPlugin* (*MakeMeshFilterPlugin)();
//=========================================================================
class MED_SDK_API medSegmentationPlugin
{
public:	
	virtual bool Show(void) = 0;	
	virtual void ChangeLanguage(void) {}
	virtual void Delete(void) { delete this; }
	void SetInput(medVolume* input) {m_InData = input;}
	medVolume* GetInput() {return m_InData;}
	medVolume* GetOutput(); 	
	
protected:
	medSegmentationPlugin();
	virtual ~medSegmentationPlugin();
	medVolume *m_InData;	
	medVolume *m_OutData;
};

#define IMPLEMENT_SEGMENTATION(ClassName, MenuDescription) \
extern "C" { \
	MEDEXPORT const char* GetTypeName() {return "SegmentationPlugin"; } \
	MEDEXPORT const char* GetClassname() {return #ClassName;} \
	MEDEXPORT const char* GetMenuDescription() {return MenuDescription;} \
	MEDEXPORT medSegmentationPlugin* MakePlugin() {return new ClassName;} \
}
typedef medSegmentationPlugin* (*MakeSegmentationPlugin)();
//=========================================================================
class MED_SDK_API medRegistrationPlugin
{
public:	
	virtual void ChangeLanguage(void) {}
	virtual void Delete(void) { delete this; }
	
protected:
	medRegistrationPlugin();
	virtual ~medRegistrationPlugin();
};

#define IMPLEMENT_REGISTRATION(ClassName, MenuDescription) \
extern "C" { \
	MEDEXPORT const char* GetTypeName() {return "RegistrationPlugin"; } \
	MEDEXPORT const char* GetClassname() {return #ClassName;} \
	MEDEXPORT const char* GetMenuDescription() {return MenuDescription;} \
	MEDEXPORT medRegistrationPlugin* MakePlugin() {return new ClassName;} \
}
typedef medRegistrationPlugin* (*MakeRegistrationPlugin)();
//=========================================================================
class MED_SDK_API medVisualizationPlugin
{
public:
	virtual void ChangeLanguage(void) {}
	virtual void Delete(void) { delete this; }
	
protected:
	medVisualizationPlugin();
	virtual ~medVisualizationPlugin();

};

#define IMPLEMENT_VISUALIZATION(ClassName, MenuDescription) \
extern "C" { \
	MEDEXPORT const char* GetTypeName() {return "VisualizationPlugin"; } \
	MEDEXPORT const char* GetClassname() {return #ClassName;} \
	MEDEXPORT const char* GetMenuDescription() {return MenuDescription;} \
	MEDEXPORT medVisualizationPlugin* MakePlugin() {return new ClassName;} \
}
typedef medVisualizationPlugin* (*MakeVisualizationPlugin)();
//=========================================================================

#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -