接続と型変換#
接続は型の意味、入力が要求する制約、Fieldの構造を確認して決めます。NodeとCodeは同じ変換規則を使用します。
公開データ型の規則#
| 接続・変換 | 暗黙 | 条件・結果 |
|---|---|---|
| 同一Value型 | 可 | 値をそのまま渡す |
| Float → Vector | 可 | X,Y,Zに同じ値を複製 |
| Integer → Float | 不可 | 明示変換。丸めの可能性あり |
| Boolean → 数値 | 不可 | 明示操作でfalse=0、true=1を指定 |
| Float → Color | 不可 | 明示変換でRGB複製、Alpha=1 |
| Vector → Color | 不可 | 明示変換でXYZ→RGB、Alpha=1 |
| Color → Vector | 不可 | 明示変換でRGB→XYZ、Alphaを除く |
| Value → Field | 条件付き | セル型への変換が可能で、対象のShapeと座標が決まっていること |
| Grid<A,n> → Grid<B,n> | セル型に従う | Shape・軸・座標を変更しない要素変換 |
| Grid<Color,2> ↔ Image | 不可 | 明示的な意味付け。対象記述を検証 |
| Grid<Color,3> ↔ Video | 不可 | 明示的な意味付け。X,Y,Timeと時間座標を検証 |
| Image ↔ Video | 不可 | 時間Slice / Stackなど別の操作が必要 |
| 次元数の違うField | 不可 | 軸の追加・集約・切り出しを明示 |
暗黙変換が可能でも、接続先がそのValueやFieldを実行できるとは限りません。型チェック、値の構造検証、バックエンドの実行可否は別の段階です。
Shape・Dimension・Coordinate#
同じ型でも二つのFieldのShapeが異なることがあります。単項演算なら自身の領域を保持し、複数Fieldの要素対応を必要とする演算では対応条件を検査します。異なる座標を同じインデックスとして無言で足しません。自動の軸名アラインメント、転置、切り詰め、補間は行いません。
Broadcastは、決まった対象領域のすべてのセルへ一定Valueを展開することです。カーソル位置やパネルサイズからShapeを決めません。
入力待ちの接続#
多入力ノードは入力が揃う前にも編集できます。既知の入力を固定したまま、残る入力を補えば正当な型になる接続は受け付けます。ただし、実際の未接続ソケットを値で勝手に埋めません。まだ必要な入力があることを示します。
既知の入力だけで矛盾が確定する場合は、ハイライトせず接続を拒否します。拒否した操作によって既存の接続・値・型設定を変更してはいけません。循環参照、存在しないソケット、ロックされた入力も同様です。
型の上書き#
Edit Parameterの型選択は、ノードが持つ型パラメータや入力制約を指定するものです。固定機能を別の型で無理に実行するスイッチではありません。結果から導出される出力型は、入力またはOperationで変えます。変更できない理由を表示します。