플러그인 SDK
향후 구현 예정
플러그인 SDK는 현재 설계 단계입니다. 향후 버전에서 제공될 예정입니다.
개요
GeoOmni 플러그인 SDK는 C++ 기반의 확장 인터페이스를 제공합니다.
IPlugin / PluginBase 인터페이스를 상속하여 기능을 확장할 수 있습니다.
아키텍처
GeoOmni 앱
├── PluginLoader (DLL 동적 로딩)
├── IPlugin 인터페이스
│ ├── Initialize()
│ ├── Execute()
│ └── Shutdown()
└── PluginBase (헬퍼 베이스 클래스)
플러그인 타입
| 플러그인 | 기능 | 상태 |
|---|---|---|
| FileUtilPlugin | 파일 유틸리티 | 설계 |
| OrthoPlugin | 정사영상 생성 | 설계 |
| ControlPlugin | GCP/기준점 관리 | 설계 |
| DPSMasterPlugin | 레거시 DPS 파일 변환 | 설계 |
| ConnectPlugin | GIS/CAD/클라우드 연동 | 설계 |
| SurfacePlugin | 포인트클라우드 처리 | 설계 |
개발 가이드
플러그인 프로젝트 생성
기본 구조
#include <sdk/PluginBase.hpp>
class MyPlugin : public GeoOmni::PluginBase {
public:
bool Initialize(IPluginContext* ctx) override {
// 초기화
return true;
}
bool Execute(const std::string& command, const Json& params) override {
// 명령 처리
return true;
}
void Shutdown() override {
// 정리
}
};
GO_PLUGIN_ENTRY(MyPlugin)
빌드
SDK 헤더
| 파일 | 설명 |
|---|---|
IPlugin.hpp |
플러그인 순수 가상 인터페이스 |
PluginBase.hpp |
헬퍼 베이스 클래스 |
IPluginContext.hpp |
앱 컨텍스트 접근 |
PluginMetadata.hpp |
버전/설명 메타데이터 |
PluginError.hpp |
에러 타입 |
PluginExport.hpp |
GO_PLUGIN_ENTRY 매크로 |
플러그인 서명 정책
| 정책 | 설명 |
|---|---|
| 없음 | 모든 플러그인 로드 허용 |
| 경고 | 서명 없는 플러그인에 경고 표시 (기본값) |
| 필수 | 서명된 플러그인만 로드 |
| 신뢰 | 신뢰 목록의 플러그인만 로드 |