MQBasePluginクラス

(new in Rev2.40)

MQBasePlugin クラスはすべての種類のプラグインの基底となるクラスで、MQBasePlugin.cpp および MQBasePlugin.h をプロジェクトに追加することでクラスライブラリとして利用します。MQBasePluginから派生したクラスを GetPluginClass() で返すことにより、本体との複雑なメッセージ処理を隠ぺい化して簡便な実装で各プラグインを作成することができます。

 

MQBasePlugin クラス内には各プラグイン関数が仮想関数として宣言されており、継承クラスで各仮想関数を実装する必要があります。

クラス
MQBasePlugin コンストラクタ
~MQBasePlugin デストラクタ
プラグイン
GetPlugInID プラグインIDの取得
GetPlugInName プラグイン名の取得
GetPlugInType プラグインの種類の取得
補助関数
OpenSetting 設定ファイルを開く
CloseSetting 設定ファイルを閉じる
GetResourceString リソース文字列を取得する
GetSettingValue 設定値を取得する
GetSystemColor システム色を取得する
GetResourceCursor 標準マウスカーソルを取得
GetScreenMouseCursor スクリーン用マウスカーソルを取得
SetScreenMouseCursor スクリーン用マウスカーソルを設定
GetLUTCount LUTの数を取得
GetLUTName LUT名を取得
GetLUTData LUTデータを取得
SendUserMessage 他のプラグインにプラグイン独自のメッセージを送る

MQBasePlugin::MQBasePlugin();

コンストラクタです。


virtual MQBasePlugin::~MQBasePlugin();

デストラクタです。仮想関数として定義されます。


virtual void MQBasePlugin::GetPlugInID(DWORD *Product, DWORD *ID);

Product
プロダクト名(制作者名)をセットすべきポインタ
ID
プロダクトIDをセットすべきポインタ

プロダクト名(制作者名)とIDを、全部で64bitの値として返します。

Product および ID の値は他と重複しないような適当にランダムなもので構いません。

純粋仮想関数として宣言されており、継承クラスで実装することにより MQGetPlugInID() を隠ぺい化します。


virtual const char *MQBasePlugin::GetPlugInName();

戻り値
プラグイン名

[プラグインについて]ダイアログ上で表示するプラグイン名を返します。

純粋仮想関数として宣言されており、継承クラスで実装することにより MQGetPlugInName() を隠ぺい化します。


virtual int MQBasePlugin::GetPlugInType();

戻り値
プラグインタイプ
[MQPLUGIN_TYPE_IMPORT] ファイル入力用
[MQPLUGIN_TYPE_EXPORT] ファイル出力用
[MQPLUGIN_TYPE_CREATE] オブジェクト作成用
[MQPLUGIN_TYPE_OBJECT] オブジェクト変形用
[MQPLUGIN_TYPE_SELECT] 選択部変形用
[MQPLUGIN_TYPE_STATION] 常駐型
[MQPLUGIN_TYPE_COMMAND] コマンド (new in Rev2.41)

プラグインの種類を返します。

純粋仮想関数として宣言されており、継承クラスで実装することにより MQGetPlugInType() を隠ぺい化します。


MQSetting *MQBasePlugin::OpenSetting();

戻り値
設定オブジェクト

Metasequoia が各種設定を保存する metaseq.setting.xml ファイルへのアクセスを行うためのクラスを取得します。

取得した設定クラスを操作することにより、プラグイン独自の設定情報を読み込み・保存することができます。

取得した MQSetting クラスは CloseSetting() で削除する必要があります。

(in Rev4.00)

アクセスするファイルは metaseq.ini から metaseq.setting.xml へ変更されました。


void MQBasePlugin::CloseSetting(MQSetting *setting);

setting
設定オブジェクト

OpenSetting() で開いた設定オブジェクトを閉じます。


std::wstring MQBasePlugin::GetResourceString(const char *id);

id
リソース文字列ID
戻り値
文字列

(new in Rev4.00)

現在の言語のcommand.xml内で定義される文字列を取得します。


std::wstring MQBasePlugin::GetSettingValue(MQSETTINGVALUE_TYPE type);

type
設定項目
[MQSETTINGVALUE_LANGUAGE] 言語
[MQSETTINGVALUE_ROTATION_HANDLE] 回転ハンドルの形状
[MQSETTINGVALUE_HANDLE_SIZE] ハンドルサイズ
[MQSETTINGVALUE_HANDLE_SCALE] ハンドルの拡大率
[MQSETTINGVALUE_NORMALMAP_FLIP] 法線マップの反転
戻り値
各設定の値

(new in Rev4.02)

システム内で設定されている値を取得します。


MQColor MQBasePlugin::GetSystemColor(MQSYSTEMCOLOR_TYPE color_type);

color_type
色の種類
[MQSYSTEMCOLOR_OBJECT] オブジェクト
[MQSYSTEMCOLOR_SELECT] 選択
[MQSYSTEMCOLOR_TEMP] 一時表示
[MQSYSTEMCOLOR_HIGHLIGHT] ハイライト表示
[MQSYSTEMCOLOR_UNACTIVE] 非選択
[MQSYSTEMCOLOR_MESH_YZ] YZ平面
[MQSYSTEMCOLOR_MESH_ZX] ZX平面
[MQSYSTEMCOLOR_MESH_XY] XY平面
[MQSYSTEMCOLOR_BLOB_PLUS] メタボール+
[MQSYSTEMCOLOR_BLOB_MINUS] メタボール-
[MQSYSTEMCOLOR_UV] UV展開
[MQSYSTEMCOLOR_AXIS_X] X軸
[MQSYSTEMCOLOR_AXIS_Y] Y軸
[MQSYSTEMCOLOR_AXIS_Z] Z軸
[MQSYSTEMCOLOR_AXIS_W] 中心軸
[MQSYSTEMCOLOR_AXIS_ACTIVE] アクティブな軸
[MQSYSTEMCOLOR_PREVIEW_BACK] プレビュー背景
戻り値

(new in Rev4.02)

システム内で設定されている色を取得します。


HCURSOR MQBasePlugin::GetResourceCursor(MQCURSOR_TYPE cursor_type);

cursor_type
マウスカーソルの種類
[MQCURSOR_SIZEALL] 4方向矢印
[MQCURSOR_HANDPOINT] 指先
[MQCURSOR_HELP] 疑問符付き
[MQCURSOR_NO] 禁止
[MQCURSOR_WAIT] 砂時計
[MQCURSOR_UPARROW] 上向き矢印
[MQCURSOR_SIZEWE] 左右を指す両方向矢印
[MQCURSOR_SIZENWSE] 左上と右下を指す両方向矢印
[MQCURSOR_SIZENS] 上下を指す両方向矢印
[MQCURSOR_SIZENESW] 右上と左下を指す両方向矢印
[MQCURSOR_CROSS] 十字
[MQCURSOR_NONE] 非表示
[MQCURSOR_DEFAULT] 標準
[MQCURSOR_RECT] 範囲
[MQCURSOR_ROPE] 投げ縄
[MQCURSOR_MOVE] 移動
[MQCURSOR_SCALE] 拡大
[MQCURSOR_ROTATE] 回転
戻り値
カーソルハンドル

(new in Rev2.46)

指定された種類のマウスカーソルを取得します。

取得したカーソルはSetScreenMouseCursor()MQCommandPlugin::SetMouseCursor()で利用します。


HCURSOR MQBasePlugin::GetScreenMouseCursor();

戻り値
カーソルハンドル

(new in Rev4.30)

現在のスクリーン用マウスカーソルを取得します。


void MQBasePlugin::SetScreenMouseCursor(HCURSOR cursor);

cursor
カーソルハンドル

(new in Rev4.30)

スクリーン用マウスカーソルを設定します。

設定するカーソルはGetResourceCursor()で取得したものか、またはWin32APIのLoadCursor()で得られるDLLのインスタンスが保持するリソースカーソルを指定して下さい。LoadCursor()でインスタンスにNULLを指定して得られる定義済みカーソルを指定した時の動作は保証されません。

3Dビューにカーソルを設定する場合はMQCommandPlugin::SetMouseCursor()を呼び出してください


int MQBasePlugin::GetLUTCount();

戻り値
LUTの数

(new in Rev4.40)

システムで用意されているLUT(カラーマップ)の数を取得します。


const unsigned char *MQBasePlugin::GetLUTData(int index);

index
LUTのインデックス
戻り値
LUTデータ

(new in Rev4.40)

システムで用意されているLUT(カラーマップ)データを取得します。

戻り値のポインタ内にはRGB順に256色分、計768バイトのデータが格納されています。


const unsigned char *MQBasePlugin::GetDefaultLUTData();

戻り値
デフォルトLUTデータ

(new in Rev4.40)

システムの標準LUT(カラーマップ)を取得します。

戻り値のポインタ内にはRGB順に256色分、計768バイトのデータが格納されています。


int MQBasePlugin::SendUserMessage(MQDocument doc, DWORD target_product, DWORD target_id, const char *description, void *param);

doc
ドキュメント
target_product
送出先プラグインのプロダクトID
target_id
送出先プラグインのプラグインID
description
メッセージの種類を示す任意の文字列
message
任意のメッセージ
戻り値
プラグインから返された値

(new in Rev2.41)

他の常駐型・コマンドプラグインに任意のメッセージを送ります。

プラグインに渡すデータは任意のものを message にポインタとして与えることができます。

target_product と target_id に 0 を指定すると、すべてのプラグインに通知されます。

送出されたメッセージは受け取り側のプラグイン側の MQStationPlugin::OnReceiveUserMessage() で受け取ります。

 

注意:Ver2.4.4または以前のバージョンでは、戻り値が正しく取得できません。