MEP 3: パラメータ
- Created: 2022-09-07 10:38:48
- Updated: 2025-5-14 23:55:00
フィルタの入出力のパラメータは、アトリビュートの一種として、以下のように記述する。
@param_f32 radius(SLIDER, label="半径", min=0.5, max=300.0, init=3.0)
@param_f32 angle(DIRECTION, init=10.0)
@param_i32 MOSAIC_WIDTH(SLIDER, label="幅", min=1, max=100, init=10)
@param_pos ORIGIN(POINTER, label="中心")
これらの記述で、UIに対応するウィジェットが表示されて、ユーザーからの入力を受け取る事が出来る。
MFGスクリプトとしては変数として見える。
コンストラクタ的シンタックスで、種別のあとに名前つき引数、というシンタックスになる。 種別や最初の@param_xxxの組み合わせで引数が変わってくる。
MFGとしては@param_xxxのあとの識別子を変数として扱う。
radiusはf32の変数、angleもf32の変数、MOSAIC_WIDTHはi32の変数として見える。 ORIGINはf32の2次元ベクトルとして使える。
@paramの種類
@param_XXXは以下の三種類がある。
@param_i32@param_f32@param_pos
それぞれあとに続く変数がi32, f32, f32の2次元ベクトルとなる。
また、次のwidgetのタイプはこのparamとの組み合わせで許されるものが決まっている(後述)。
widgetの種類
widgetは以下の種類がある
- SLIDER
- DIRECTION
- CHECKBOX
- POINTER
それぞれ許される引数が変わってくる。
SLIDERウィジェット
数値を選ぶスライダー。
@param_i32と@param_f32で使えるウィジェット。
例:
@param_f32 radius(SLIDER, label="半径", min=0.5, max=300.0, init=3.0)
引数*
- label: スライダーの横に表示されるラベル。文字列。
- min: スライダーの最小値。
@param_i32のときはi32で、@param_f32のときはf32で指定する(以下同様) - max: スライダーの最大値。
- init: スライダーの初期値。
DIRECTION
向きを選ぶウィジェット。 @param_f32で使える。
結果は0.0〜3.1415... のf32のラジアン。
例:
@param_f32 angle(DIRECTION, init=10.0)
引数*
- init: ウィジェットの向きの初期値。ラジアンで指定。
CHECKBOX
チェックボックスのウィジェット。 @param_i32で使える。
結果は0か1のi32。
例:
@param_i32 show_edge(CHECKBOX, label="エッジの表示", init=0)
引数*
- label: チェックボックスに表示されるラベル
- init: チェックボックスの初期値。0で非チェック、1でチェック状態から始まる
POINTER
キャンバス内の位置を指定する。結果はf32の2次元ベクトルで、0.0〜1.0で返る。
@param_posで使える。
例:
@param_pos ORIGIN(POINTER, label="中心")
引数:
- label: 位置を選ぶウィジェットの上に表示されるラベル。文字列。