콘텐츠로 이동

플러그인 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 포인트클라우드 처리 설계

개발 가이드

플러그인 프로젝트 생성

plugins/MyPlugin/
├── CMakeLists.txt
├── MyPlugin.hpp
└── MyPlugin.cpp

기본 구조

#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)

빌드

add_library(MyPlugin SHARED MyPlugin.cpp)
target_link_libraries(MyPlugin PRIVATE GeoOmniSDK)

SDK 헤더

파일 설명
IPlugin.hpp 플러그인 순수 가상 인터페이스
PluginBase.hpp 헬퍼 베이스 클래스
IPluginContext.hpp 앱 컨텍스트 접근
PluginMetadata.hpp 버전/설명 메타데이터
PluginError.hpp 에러 타입
PluginExport.hpp GO_PLUGIN_ENTRY 매크로

플러그인 서명 정책

정책 설명
없음 모든 플러그인 로드 허용
경고 서명 없는 플러그인에 경고 표시 (기본값)
필수 서명된 플러그인만 로드
신뢰 신뢰 목록의 플러그인만 로드