Canvas Core API

Canvas Core API は Canvas を扱うための最低レベルのインタフェースです。このAPIはビジュアルプログラミングインタフェースから使われることを意図しますが、スクリプトから直接作動させることも可能です。

Canvas Core API の使用するオブジェクトは通常、 DFG で始まります。(歴史的経緯によります)そのようなわけで、文書内 Canvas を “the DFG” と指す箇所があります。

Canvas Core API の公開するメインのクラス:

  • FabricCore::DFGHost: 複数の、Canvas 実行コード、バインディング間で共有する全てのオブジェクトを管理します。undo/redo スタックや、プリセットツリー、新しいバインディングの作成インタフェースなどです。
  • FabricCore::DFGBinding: 実行可能なバインディングです。引数の集まりと実際にCanvas内で行う計算処理へのインタフェースです。バインドされる実行コードはサブグラフを伴う非常に複雑なグラフ1個でもよいが、基本的にはすべての演算はそれぞれのバインディングレベルで行われます。
  • FabricCore::DFGExec: Canvasの実行コードです。ノードからなるグラフであったり、KL関数であった理します。

これらのオブジェクトの API については詳細を後述します。

Canvas Core API と Python

Canvas Core API は全て Python の FabricEngine.Core モジュールを通じて利用可能です。呼び出しはCAPI 呼び出しと完全に 1対1対応しています。Canvas Core へ Python API からアクセスするには $FABRIC_DIR/Test/Core/Canvas の単体テストのファイルを参照し用例を確認してください。

Canvas Core API Enums

enum FabricCore::DFGPortType

Canvas のポートの型. 次のどれか:

  • DFGPortType_In
  • DFGPortType_IO
  • DFGPortType_Out

FabricCore::DFGExecType

Canvas 内の実行コードの型, 次のいずれか:

  • DFGExecType_Graph
  • DFGExecType_Func

FabricCore::DFGNodeType

Canvas グラフに存在するノードの型, 次のいずれか:

  • DFGNodeType_Inst - 実行されるモノのインスタンス
  • DFGNodeType_Get - 変数取得ノード
  • DFGNodeType_Set - 変数設定ノード
  • DFGNodeType_Var - 変数定義ノード
  • DFGNodeType_User - ユーザノード

Canvas Core API クラス

class FabricCore::DFGExec : public FabricCore::Ref
DFGExec()
DFGExec(DFGExec const &that)
DFGExec &operator=(DFGExec const &that)
~DFGExec()
DFGExecType getType() const

実行コードの型を返す FabricCore::DFGExecType_GraphFabricCore::DFGExecType_Func のどちらか

戻り値:実行コードの型
DFGNodeType getNodeType(char const *nodePath) const

グラフ中のノードの型を返す, ノードの型については DFGNodeType

パラメータ:nodeName – グラフ中のノードの名前
戻り値:ノードの型
DFGHost getHost() const

実行コードが属するホストを返す

戻り値:FabricCore::DFGHost
String getExecPath() const

Returns the canonical rooted path of the executable.

DFGExec getSubExec(char const *execPath) const

ある実行コードパスのサブ実行コードを戻す。サブ実行コードとは,”node.subnode.subnode” 形式のパスにより参照される。このパスは,パスのどの構成要素も実行コードが含むグラフ中のあるノードを示す。

パラメータ:execPath – サブ実行コード(sub-executable)のパス
戻り値:サブ実行コード(sub-executable)
String getErrors(bool recursive, bool connectedOnly) const

実行コードのエラーを戻す(JSON文字列配列)

String getErrors(bool recursive) const

実行コードのエラーを戻す(JSON文字列配列)

String getErrors(bool recursive, bool connectedOnly) const

実行コードのエラーを戻す(JSON文字列配列)

String getErrors(bool recursive) const

実行コードのエラーを戻す(JSON文字列配列)

String getLoadDiags() const

バインディングの負荷診断(load diagnostic)を戻す(JSON オブジェクト配列)

String getExtDeps() const

「実行コードのエクステンション依存概要」をJSON形式で取得

戻り値:JSON形式の実行コードのエクステンション依存概要
unsigned getExtDepCount() const

実行コードの「エクステンション依存の数」を取得. エクステンション依存情報にはインデックスによりアクセス可能; FabricCore::DFGExec::getExtDepName() , FabricCore::DFGExec::getExtDepVersion() も参照

戻り値:エクステンション依存の数
char const *getExtDepName(unsigned index) const

指定したインデックス番目の「エクステンション依存の名前」を取得. エクステンション依存情報にはインデックスによりアクセス可能; FabricCore::DFGExec::getExtDepCount() , FabricCore::DFGExec::getExtDepVersion() も参照

パラメータ:index – エクステンション依存のインデックス
戻り値:エクステンションの名前
String getExtDepVersion(unsigned index) const

指定したインデックス番目の「エクステンション依存のバージョン指定」を取得. エクステンション依存情報にはインデックスによりアクセス可能; FabricCore::DFGExec::getExtDepCount() , FabricCore::DFGExec::getExtDepName() も参照

パラメータ:index – エクステンション依存のインデックス
戻り値:エクステンションのバージョン情報名
bool haveExecPort(char const *portName) const

実行コードが、「指定した名前のポートを持つか」どうか問合せ

パラメータ:portName – 問い合せる名前
戻り値:問合せた名前が存在する場合 true, 存在しない場合 false
unsigned getExecPortCount() const

実行コード上の「ポートの数」を取得

戻り値:実行コードじょうのポートの数
unsigned getExecFixedPortCount() const

Get the number of ExecFixedPorts on the executable.

戻り値:The number of ExecFixedPorts on the executable
unsigned getExecBlockCount() const

Get the number of blocks on the executable.

戻り値:実行コードじょうのポートの数
char const *getExecBlockName(unsigned index) const

Get the name of the executable block at the given index.

パラメータ:index – ポートのインデックス
戻り値:ポートの名前
unsigned getNodeCount() const

「グラフ中のノードの数」を取得. 実行コードがグラフでない場合例外が発生.

戻り値:グラフ中のノードの数
char const *getNodeName(unsigned index) const

指定したインデックス番目のノード名を取得. 実行コードがグラフでない場合例外が発生.

パラメータ:index – ノードのインデックス
戻り値:グラフ中のノードの数
DFGNodeType getNodeType(unsigned index) const

指定したインデックス番目のノードの型を取得. 実行コードがグラフでない場合例外が発生. ノードの型についての情報は DFGNodeType を参照.

パラメータ:index – ノードのインデックス
戻り値:ノードの型
DFGExec getInstExec(unsigned index) const

指定したインデックス番目のノードのインスタンスである実行コードのハンドラを取得. 実行コードがグラフ,あるいはノードでない場合例外が発生.

パラメータ:index – インスタンスノードのインデックス
戻り値:インスタンスノードがその実行コードのインスタンスであるような実行コード
String getDesc()

実行コードの説明(description)を取得。JSON書式でデバッグに有用。ただし, インスタンスの永続化の目的で使用してはならない, FabricCore::DFGExec::exportJSON() を用いること

戻り値:JSON書式の実行コードの説明
String getExecPortDesc(char const *execPortName)

実行コードのポートの説明(description)を取得。JSON書式でデバッグに有用

パラメータ:execPortName – 実行コードのポートの名前
戻り値:JSON書式のポートの説明
String getNodeDesc(char const *nodeName)

実行コードのノードの説明(description)を取得。JSON書式でデバッグに有用

パラメータ:nodeName – グラフのノードの名前
戻り値:JSON書式のノードの説明
String getNodePortDesc(char const *nodePortPath)

実行コード中のポートの説明(description)を取得。path は “nodeName.portName” 形式でなければならない。説明はJSON書式でデバッグに有用

パラメータ:nodeName – グラフ中のノードのポートの path
戻り値:JSON書式のポートの説明
bool isExecPortResolvedType(unsigned index, char const *typeName)

実行コード中のポートの <解決された型> が, 与えた型(もしくはその型へのエイリアス)と一致するかどうか

パラメータ:
  • index – 実行コードのポートのインデックス
  • typeName – 型の名前
戻り値:

ポートの解決済の型が,与えた型かどうか

char const *getExecPortResolvedType(unsigned index)

<実行コード中の指定したインデックス番目のポート>の解決された型を取得

注釈

解決された型のエイリアスを戻すことがあリ, 通常,型チェックへの使用には不適。例: この関数はグラフがどのように作成されたかによって Integer あるいは SInt32 どちらかを返す。
パラメータ:index – 実行コードのポートのインデックス
戻り値:ポートの解決された型
char const *getPortResolvedType(char const *path)

Get the resolved type of the port in the executable with a given path.

注釈

解決された型のエイリアスを戻すことがあリ, 通常,型チェックへの使用には不適。例: この関数はグラフがどのように作成されたかによって Integer あるいは SInt32 どちらかを返す。
パラメータ:path – The path to a port in the executable
戻り値:ポートの解決された型
char const *getExecPortResolvedType(char const *path)

An alias for getPortResolvedType for backwards compatibility.

char const *getNodePortResolvedType(char const *path)

An alias for getPortResolvedType for backwards compatibility.

String exportJSON()

実行コードの,JSONでの表現を作成する。このJSONを FabricCore::DFGExec::addInstFromJSON() に与え,同内容の新規の実行コードの作成することができる

戻り値:グラフのJSONでの表現
char const *addInstFromPreset(char const *presetFilePath, char const *desiredName = 0)

グラフに新規インスタンスノードを作成, 与えたパスのプリセットのインスタンスのノード。パスにプリセットが無い場合,あるいはグラフ中に実行コードない場合,例外を投げる。作成する新規ノードの名前はプリセットの名前から引き継ぐ, ただしグラフ中ユニークなものへと変換される。

パラメータ:presetFilePath – プリセットツリー上のプリセットパス
戻り値:作成したノードの名前
char const *addInstWithNewGraph(char const *title = 0)

グラフ中に新規インスタンスノードを作成, ノードは新規(つまり空)のグラフのインスタンス。任意に新規グラフのタイトルを指定可能; 指定した場合,新規ノードの名前はグラフのタイトルを引き継ぐ

パラメータ:title – (任意) 作成するグラフのタイトル
戻り値:作成したノードの名前
char const *addInstWithNewFunc(char const *title = 0)

グラフ中に新規ノードを作成, ノードは新規(つまり空)関数のインスタンス。任意に新規関数のタイトルを指定可能。 指定した場合, 新規ノードの名前はその関数のタイトルを引き継ぐ

パラメータ:title – (任意) 作成する関数のタイトル
戻り値:作成したノードの名前
char const *addInstFromJSON(char const *json)

グラフ中に新規ノードを作成, ノードは FabricCore::DFGExec::exportJSON() により取得するJSONによって記述された,実行コードの新規インスタンス。ノードの名前はその実行コードのタイトルを引き継ぐ

パラメータ:json – 実行コードのJSON description
戻り値:作成したノードの名前
char const *addVar(char const *desiredName, char const *dataType, char const *extDep = 0)

グラフ中に新規の変数宣言ノードを作成, 型(必須)と依存エクステンション(任意)を指定する。ノードの実際の名前は desiredName パラメータより引き継ぐ

パラメータ:
  • desiredName – 変数のグラフ中での希望名
  • dataType – 変数のKLデータ型
  • extDep – (任意) 指定した型の依存するエクステンション {ExtensionName}:{VersionSpec} 形式
戻り値:

作成された変数宣言ノードの実際の名前

char const *addGet(char const *desiredName, char const *varPath)

グラフ中に変数取得ノードを新規作成

パラメータ:
  • desiredName – 変数取得ノードのグラフ中での希望名
  • varPath – 変数へのパス。変数パスは “namespacing” 規則に従い, 該当するものをまずはじめにカレントグラフを検索, つづいて該当するものが見つかるまで一段階親のグラフの検索し続ける
戻り値:

作成された変数取得ノードの実際の名前

char const *addSet(char const *desiredName, char const *varPath)

グラフ中に変数設定ノードを新規作成

パラメータ:
  • desiredName – 変数取得ノードのグラフ中での希望名
  • varPath – 変数へのパス。変数パスは “namespacing” 規則に従い, 該当するものをまずはじめにカレントグラフを検索, つづいて該当するものが見つかるまで一段階親のグラフの検索し続ける
戻り値:

作成された変数設定ノードの実際の名前

bool hasVar(char const *name)

Returns true if a variable with a given name exists.

パラメータ:name – The name of the variable within the graph
戻り値:True if the variable exists
char const *getVarType(char const *name)

Get the current KL type name of a variable within the graph.

パラメータ:name – The name of the variable within the graph
戻り値:The current KL type name of the variable
RTVal getVarValue(char const *name)

グラフ中の変数の現在値を取得

パラメータ:name – 取得する変数のグラフ中での名前
戻り値:変数の RTVal としての現在値(現在値が存在しない場合 null RTVal)
void setVarValue(char const *name, RTVal value)

グラフ中の変数の現在値を設定

パラメータ:
  • name – 取得する変数のグラフ中での名前
  • value – 変数の新しい値
char const *getRefVarPath(char const *name)

与えた変数参照ノード(get, setノード)と紐付いた変数パスを取得

パラメータ:name – 変数参照ノードの名前
戻り値:ノードの現在の変数パス
void setRefVarPath(char const *name, char const *varPath)

与えた変数参照ノード(get, setノード)と紐付いた変数パスを設定

パラメータ:
  • name – 変数参照ノードの名前
  • varPath – 設定する新規変数パス
char const *addUser(char const *desiredName)

グラフ中にユーザノードを新規作成

パラメータ:desiredName – ユーザノードのグラフ中での希望名
戻り値:作成されたユーザノードの実際の名前
void addExtDep(char const *extName, char const *versionRange = "")

実行コードにエクステンション依存を追加

パラメータ:
  • extName – エクステンションの名前
  • versionRange – (任意) エクステンションのバージョン範囲
void setExtDeps(uint32_t nameAndVerCount, char const **nameAndVers)

実行コードの現在のエクステンション依存を新しいもので上書き

パラメータ:
  • nameAndVerCount – エクステンション依存の新しい数
  • nameAndVers – あたらしいエクステンション依存(複数可)。いずれも {ExtensionName}:{VersionRange} 形式の文字列
void removeExtDep(char const *extName)

与えた名前のエクステンションを,エクステンション依存から削除

パラメータ:extName – エクステンションの名前
char const *addExecPort(char const *desiredName, FEC_DFGPortType portType, char const *typeSpec = 0)

実行コードにポートを新規追加

パラメータ:
  • desiredName – あたらしいポートの希望名
  • portType – ポートのタイプ, DFGPortType のどれか
  • typeSpec – ポートの型指定(例 Float32 or $TYPE$ )この型指定は関数のみで機能する, グラフでは機能しない
戻り値:

あたらしいポートの実際の名前

char const *addExecBlock(char const *desiredName)

Add a new block to the executable.

パラメータ:desiredName – The desired name for the new block
戻り値:The actual name of the new block
bool isInstExec()

Returns whether the exec is the implementation of an inst.

unsigned getInstBlockCount(char const *instName)

Returns the number of InstBlocks below an Inst.

bool isInstBlock(char const *path)

Returns whether the item is an inst block.

bool isInstBlock(char const *instName, char const *childName)

Returns whether the the child below the Inst is an InstBlock (as opposed to a port).

bool isInstBlockExec()

Returns whether the exec is the implementation of an inst block.

bool isExecBlock(char const *name)

Returns whether the given name in an exec is an exec block.

char const *addExecBlockPort(char const *blockName, char const *desiredPortName, FEC_DFGPortType portType, char const *typeSpec = 0)

Add a new port to the executable block.

パラメータ:
  • blockName – The name of the executable block
  • desiredPortName – あたらしいポートの希望名
  • portType – ポートのタイプ, DFGPortType のどれか
  • typeSpec – ポートの型指定(例 Float32 or $TYPE$ )この型指定は関数のみで機能する, グラフでは機能しない
戻り値:

あたらしいポートの実際の名前

DFGExec getInstBlockExec(char const *instName, char const *blockName) const

Returns the sub-executable associated with an instance block.

パラメータ:
  • instName – The name of the instance
  • blockName – The name of the block within the instance
戻り値:

サブ実行コード(sub-executable)

unsigned getInstBlockPortCount(char const *instName, char const *blockName) const

Returns the number of ports on an inst block.

パラメータ:
  • instName – The name of the instance
  • blockName – The name of the block within the instance
char const *getInstBlockPortName(char const *instName, char const *blockName, unsigned portIndex) const

Returns the name of the give inst block port.

パラメータ:
  • instName – The name of the instance
  • blockName – The name of the block within the instance
  • portIndex – The index of the port withing the inst block
void reorderPorts(char const *itemPath, unsigned newIndCount, unsigned const *newInds)

Reorder the ports of the item (Exec or ExecBlock). Takes an array of integers for which the element at index oldIndex is the newIndex for the existing port.

パラメータ:
  • itemPath – The path to the item.
  • newIndCount – インデックスマップの要素の数, ポートの数と同数である必要がある
  • newInds – インデックスの要素
void reorderExecPorts(unsigned newIndCount, unsigned const *newInds)

Reorder the ExecPorts of the Exec. Takes an array of integers for which the element at index oldIndex is the newIndex for the existing port.

パラメータ:
  • newIndCount – インデックスマップの要素の数, ポートの数と同数である必要がある
  • newInds – インデックスの要素
bool isConnectedTo(char const *srcPortPath, char const *dstPortPath) const

接続元ポートが宛先ポートへ接続されているかどうかの問い合わせ。ポートはノードポート,実行ポートどちらでも構わない。ノードポートは “nodeName.portName” 形式のパスで表されるもの, 実行ポートは “portName” 形式のパスで表されるもの

パラメータ:
  • srcPortPath – 接続を確認する, 接続元ポート
  • dstPortPath – 接続を確認する, 宛先ポート
bool hasSrcPorts(char const *portPath) const

指定したポートが他のポート一つと接続しているかの問い合わせ

パラメータ:portPath – チェックするポート
bool hasDstPorts(char const *portPath) const

与えたポートが他のポートと一つ以上の接続しているかどうか問い合わせ

パラメータ:portPath – チェックするポート
String canConnectTo(char const *srcPortPath, char const *dstPortPath, char const *separator) const

与えたポートが, 他のポートと接続可能であるか問い合わせ。可能であれば空の文字列を戻す。不可能であれば, 仮に接続した場合に生じるエラーを,指定の分割文字列で分割されたのエラーのリストを戻す

パラメータ:
  • srcPortPath – 接続チェックをおこなう接続元ポート
  • dstPortPath – 接続チェックをおこなう宛先ポート
  • separator – エラーリストの分割文字列
void connectTo(char const *srcPortPath, char const *dstPortPath)

グラフ中の2つのポートを接続

パラメータ:
  • srcPortPath – 接続元ポート
  • dstPortPath – 接続する宛先ポート
void disconnectFrom(char const *srcPortPath, char const *dstPortPath)

グラフ中の2つのポートの接続を解除

パラメータ:
  • srcPortPath – 解除する接続元ポート
  • dstPortPath – 解除する宛先ポート
void disconnectFromAll(char const *portPath)

与えたポートの接続を全て解除

パラメータ:portPath – 解除するポート
char const *attachPresetFile(char const *parentPresetDirPath, char const *desiredName, bool replaceExisting)

実行コードをプリセットとして, プリセットツリーの指定した場所に付け加える

パラメータ:
  • parentPresetDirPath – プリセットを付け加える,プリセットツリーのディレクトリパス
  • desiredName – プリセットディレクトリ中でのプリセットの希望名
  • replaceExisting – true の場合, 希望名をすでに使用したプリセットがあればそれを上書きする。false の場合あたらしいユニーク名を生成しそれを使用する
戻り値:

プリセットディレクリ中でのプリセットの実際の名前

char const *renamePort(char const *portPath, char const *desiredNewPortName)

実行コードのポートをリネーム

パラメータ:
  • portPath – The current path to the port (exec, node, exec block or instance block)
  • desiredNewPortName – ポートのあたらしい希望名
戻り値:

ポートの実際のあたらしい名前

char const *renameExecPort(char const *oldName, char const *desiredNewName)

An alias for renamePort.

char const *renameItem(char const *oldName, char const *desiredNewName)

Rename an item of the executable.

パラメータ:
  • oldName – ノードの古い名前
  • desiredNewName – ノードのあたらしい希望名
戻り値:

ノードの実際のあたらしい名前

char const *renameNode(char const *oldName, char const *desiredNewName)

An alias for renameItem

char const *getTitle()

実行コードのタイトルを取得

戻り値:実行コードのタイトル
void setTitle(char const *title)

実行コードのタイトルを設定

パラメータ:title – 実行コードのあたらしいタイトル
void setVersion(char const *version)

実行コードのバージョンを設定; プリセットをバージョン要件を用い参照する際に使用

パラメータ:version – 実行コードのあたらしいバージョン(”X.Y.Z” 形式)
char const *getInstTitle(unsigned index)

指定したノードインデックスの, インスタンスノードのタイトルを取得

パラメータ:index – インスタンスノードのインデックス
戻り値:インスタンスノードのタイトル
char const *getInstTitle(char const *nodeName)

指定した名前のインスタンスノードのタイトルを取得

パラメータ:nodeName – インスタンスノードの名前
戻り値:インスタンスノードのタイトル
void setInstTitle(unsigned index, char const *title)

指定したインデックス番目のインスタンスノードのタイトルを設定。タイトルに空を渡すと, インスタンス元の実行コードのタイトルを採用

パラメータ:
  • index – インスタンスノードのインデックス
  • title – インスタンスノードのあたらしいタイトル
void setInstTitle(unsigned index, char const *title)

指定した名前のインスタンスノードのタイトルを設定。タイトルに空を渡すと, インスタンス元の実行コードのタイトルを採用

パラメータ:
  • nodeName – インスタンスノードの名前
  • title – インスタンスノードのあたらしいタイトル
DFGPortType getPortType(char const *path)

Get the port type of a port in the executable.

The port type is the type of the port for connection within the graph. This is the inverse of the executable port type for an executable port; for example, if you have an ‘In’ executable port on a graph, this has a node port type of ‘Out’ because it acts like an ‘Out’ port within the graph, ie. it connects to other ‘In’ and ‘IO’ ports.

パラメータ:path – ポートのパス
戻り値:そのポートの <ノードポートタイプ>
DFGPortType getNodePortType(char const *path)

An alias of getPortType for backwards compatibility.

DFGPortType getOutsidePortType(char const *portPath)

Returns the outside port type for an ExecPort, ExecBlockPort or ExecFixedPort. This is the inverse of the port type; see comments in getPortType.

パラメータ:portPath – The path to the port.
戻り値:The outside port type of the port.
DFGPortType getExecPortType(char const *name)

An alias for getOutsidePortType().

DFGPortType getExecPortType(unsigned index)

Get the executable port type of the port of the executable at the given index. This is the inverse of the port type; see comments in getPortType.

パラメータ:index – 実行コードポートのインデックス
戻り値:そのポートの<実行コードポートタイプ>
DFGPortType getExecFixedPortType(unsigned index)

Get the executable port type of the ExecFixedPort of the executable at the given index. This is the inverse of the port type; see comments in getPortType.

パラメータ:index – The index of the ExecFixedPort
戻り値:そのポートの<実行コードポートタイプ>
void setOutsidePortType(char const *portPath, DFGPortType portType)

Set the outside port type of an ExecPort or ExecBlockPort.

パラメータ:
  • portPath – The path to the ExecPort or ExecBlockPort.
  • portType – The new outside port type for the port.
void setExecPortType(char const *portName, DFGPortType portType)

An alias for setOutsidePortType(portName, portType).

char const *getCode()

関数実行コードのKLコードを取得。実行コードが関数実行コードではない場合, 例外を投げる

戻り値:関数実行コードの KLコード
void setCode(char const *code)

関数実行コードへKLコードを設定。実行コードが関数実行コードではない場合, 例外を投げる

パラメータ:code – 関数実行コードの あたらしいKLコード
char const *getMetadata(char const *key) const

与えたキーの実行コードのメタデータを取得

パラメータ:key – メタデータのキー
戻り値:キーに対応したメタデータ, 対応するデータが存在しない場合空の文字列
char const *getPortMetadata(char const *portPath, char const *key)

与えたキーに対応するポートのメタデータを取得

パラメータ:
  • portPath – The portPath to the port
  • key – メタデータのキー
戻り値:

キーに対応したメタデータ, 対応するデータが存在しない場合空の文字列

char const *getExecPortMetadata(char const *path, char const *key)

An alias for getPortMetadata for backwards compatibility.

char const *getPortModelMetadata(char const *portPath, char const *key)

For a port that is an instance of another port, get the metadata associated with that other port.

パラメータ:
  • portPath – The portPath to the port
  • key – メタデータのキー
戻り値:

キーに対応したメタデータ, 対応するデータが存在しない場合空の文字列

char const *getItemMetadata(char const *itemName, char const *key)

Gets the metadata for an item (node, exec block, exec port) for the given key.

パラメータ:
  • itemName – ノードの名前
  • key – メタデータのキー
戻り値:

キーに対応したメタデータ, 対応するデータが存在しない場合空の文字列

char const *getNodeMetadata(char const *nodeName, char const *key)

An alias for getItemMetadata.

char const *getNodePortMetadata(char const *path, char const *key)

An alias for getPortMetadata for backwards compatibility.

void setMetadata(char const *key, char const *value, bool canUndo = true, bool shouldSplitFromPreset = true)

与えたキーに対応する実行コードのメタデータを設定

パラメータ:
  • key – メタデータのキー
  • value – メタデータの値
  • canUndo – アクションが undo可能 であるかどうか
  • shouldSplitFromPreset – 実行コードがプリセットのインスタンスである場合, メタデータの変更がプリセットの split を伴うかどうか
void setExecBlockPortMetadata(char const *blockName, char const *portName, char const *key, char const *value, bool canUndo = true, bool shouldSplitFromPreset = true)

与えた名前のに対応する実行コードポートのメタデータを設定

パラメータ:
  • blockName – The name of the block
  • portName – The name of the block port
  • key – メタデータのキー
  • value – メタデータの値
  • canUndo – アクションが undo可能 であるかどうか
  • shouldSplitFromPreset – 実行コードがプリセットのインスタンスである場合, メタデータの変更がプリセットの split を伴うかどうか
void setExecPortMetadata(unsigned index, char const *key, char const *value, bool canUndo = true, bool shouldSplitFromPreset = true)

与えた名前のに対応する実行コードポートのメタデータを設定

パラメータ:
  • index – 実行コードポートのインデックス
  • key – メタデータのキー
  • value – メタデータの値
  • canUndo – アクションが undo可能 であるかどうか
  • shouldSplitFromPreset – 実行コードがプリセットのインスタンスである場合, メタデータの変更がプリセットの split を伴うかどうか
void setItemMetadata(char const *name, char const *key, char const *value, bool canUndo = true, bool shouldSplitFromPreset = true)

Sets the metadata for an item (port, node or block, as appropriate) for the given key.

パラメータ:
  • name – ノードの名前
  • key – メタデータのキー
  • value – メタデータの値
  • canUndo – アクションが undo可能 であるかどうか
  • shouldSplitFromPreset – 実行コードがプリセットのインスタンスである場合, メタデータの変更がプリセットの split を伴うかどうか
void setNodeMetadata(char const *nodeName, char const *key, char const *value, bool canUndo = true, bool shouldSplitFromPreset = true)

An alias for setItemMetadata.

void setPortMetadata(char const *portPath, char const *key, char const *value, bool canUndo = true, bool shouldSplitFromPreset = true)

Sets the metadata for a port (exec, node, exec block or inst block) for the given key.

パラメータ:
  • portPath – The path to the port
  • key – メタデータのキー
  • value – メタデータの値
  • canUndo – アクションが undo可能 であるかどうか
  • shouldSplitFromPreset – 実行コードがプリセットのインスタンスである場合, メタデータの変更がプリセットの split を伴うかどうか
void setExecPortMetadata(char const *portPath, char const *key, char const *value, bool canUndo = true, bool shouldSplitFromPreset = true)

An alias for setPortMetadata.

void setNodePortMetadata(char const *nodePortPath, char const *key, char const *value, bool canUndo = true, bool shouldSplitFromPreset = true)

An alias for setPortMetadata.

bool isDepsPort(char const *portPath)

Returns true iff the port is a deps (built in exec) port.

パラメータ:portPath – The path the port (node, exec, exec block or inst block)
bool isDepsExecPort(unsigned portIndex)

Returns true iff the exec port is a deps (built in exec) port.

bool isDepsExecBlockPort(char const *blockName, unsigned portIndex)

Returns true iff the exec block port is a deps (built in exec) port.

RTVal getPortDefaultValue(char const *portPath, char const *typeName)

与えた型に対するポートの現在のディフォルト値を取得。ディフォルト値は, そのポートが未接続でかつ解決済みの型を持つ場合にそのポートの値として適用される。パスはノードポート ―つまり “nodeName.portName” 形式でも, 実行コードポートの名前そのものであっても良い

パラメータ:
  • portPath – 実行コードポートあるいはノードポートのパス
  • typeName – 現在のディフォルト値として戻すことになる型の名前
戻り値:

与えた型のポートの現在のディフォルト値

RTVal getPortResolvedDefaultValue(char const *path, char const *typeName)

Gets the current resolved default value for a port for a given type. The default value is the value the port has when it is disconnected but resolved to that type. The resolved default value differs from the default value in that it will fall back on the executable port that backs an instance port if there is no default value for the resolved type on the instance port.

パラメータ:
  • path – The path to the port
  • typeName – 現在のディフォルト値として戻すことになる型の名前
戻り値:

与えた型のポートの現在のディフォルト値

RTVal getInstPortResolvedDefaultValue(char const *path, char const *typeName)

An alias for getPortResolvedDefaultValue for backwards compatibility.

void setPortDefaultValue(char const *portPath, RTVal defaultValue, bool canUndo = true)

ポートに現在のディフォルト値を設定。与えた型としてのディフォルト値は, そのポートが未接続であるがその型として解決済である場合にそのポートの値として適用される。この場合, RTVal の型となる。パスはノードポート ―つまり “nodeName.portName” 形式でも, 実行コードポートの名前そのものであっても良い

パラメータ:
  • portPath – 実行コードポートあるいはノードポートのパス
  • defaultValue – ディフォルト値の型としての, そのポートのあたらしいディフォルト値
  • canUndo – アクションが undo可能 であるかどうか
char const *getImportPathname()

ある実行コードの現在の importパス名 を取得。importパス名とは, 読み込むプリセットのディスク上のパス名のこと。 実行コードをプリセットとして読み込む際, importパス名は自動的に実行コードに設定される。

戻り値:実行コードの importパス名
void setImportPathname(char const *importPathname)

実行コードにあたらしい importパス名を設定

パラメータ:importPathame – 実行コードのあたらしい importパス名
DFGBinding bind(uint32_t rtValCount = 0, RTVal const *rtVals = 0)

新規バインディングを作成, この実行コードに「ルート実行コード」としてバインドされる。任意で RTVal をバインディングの引数として与えることができる。

パラメータ:
  • rtValCount – (任意) バインディングにあたえる RTVal引数の 数量
  • rtValCount – (任意) バインディングにあたえる RTVal引数
void removePort(char const *portPath)

Remove the ExecPort or ExecBlockPort with the given path.

void removeExecPort(char const *portName)

An alias for removePort().

パラメータ:portName – ポートの名前
void removeExecPort(unsigned index)

与えたインデックス番目の実行コードポートを削除

パラメータ:index – ポートのインデックス
void removeNode(char const *nodeName)

与えた名前のノードを削除

パラメータ:nodeName – ノードの名前
void removeElement(char const *name)

Remove the element (port, node or block) with the given name

パラメータ:name – ノードの名前
DFGView createView(DFGNotificationCallback callback, void *userdata)

viewオブジェクトを作成, viewオブジェクトは実行コード中で生じる notifications を受信する

注釈

view は非再帰; つまり <実行コード自身, 内包するポート, 内包するノードとそのポート> の notifications を受信することになるが, サブ実行コードもしくはサブ実行コードのコンポーネントの通知については受信しない
パラメータ:
  • callback – ノーティフィケーションが送信された際,起動するコールバック関数
  • userdata – コールバック関数に渡すユーザデータ
char const *getItemPortTypeSpec(char const *itemPath, unsigned portIndex)

Get the current typeSpec for an item port.

char const *getExecPortTypeSpec(unsigned execPortIndex)

与えたインデックス番目の実行コードのポートの現在の型仕様(typeSpec)を取得

パラメータ:execPortIndex – 実行コードポートのインデックス
戻り値:ポートの現在の型仕様
char const *getPortTypeSpec(char const *portPath)

Get the current typeSpec for the ExecPort or ExecBlockPort with the given path.

char const *getExecPortTypeSpec(char const *execPortName)

An alias for getPortTypeSpec().

void setExecPortTypeSpec(unsigned execPortIndex, char const *typeSpec)

与えたインデックス番目の実行コードのポートの現在の型仕様(typeSpec)を設定

パラメータ:
  • execPortIndex – 実行コードポートのインデックス
  • typeSpec – 設定するあたらしい型仕様
void setPortTypeSpec(char const *portPath, char const *typeSpec)

Set the current typeSpec for the ExecPort or ExecBlockPort with the given path.

void setExecPortTypeSpec(char const *execPortName, char const *typeSpec)

An alias for setPortTypeSpec().

char const *getExecPortName(unsigned execPortIndex)

指定したインデックス番目の「実行コードのポートの名前」を取得

パラメータ:execPortIndex – 実行コードポートのインデックス
char const *getExecPortName(char const *execPortPathCStr)

Get the name of the executable port given the port path

パラメータ:execPortPathCStr – ポートのパス
char const *getExecFixedPortName(unsigned execPortIndex)

Get the name of the ExecFixedPort at the given index.

パラメータ:execPortIndex – The index of the ExecFixedPort
unsigned getItemPortCount(char const *itemName)

Get the number of ports on the given item (node or exec block).

パラメータ:itemName – ノードの名前
unsigned getNodePortCount(char const *nodeName)

An alias for getItemPortCount.

char const *getNodePortName(unsigned nodeIndex, unsigned nodePortIndex)

与えたノード, 与えたポートインデックス番目のノードポートの名前を取得

パラメータ:
  • nodeIndex – ノードのインデックス
  • nodePortIndex – ノードポートのインデックス
char const *getInstBlockName(char const *instName, unsigned instBlockIndex)

Get the name of an inst block.

パラメータ:
  • instName – The name of the item
  • instBlockIndex – The index of the item block
char const *getItemPortName(char const *itemName, unsigned itemPortIndex)

Get the name of an item (node or exec block) port.

パラメータ:
  • itemName – The name of the item
  • itemPortIndex – The index of the item port
char const *getNodePortName(char const *nodeName, unsigned nodePortIndex)

An alias for getItemPortName.

String exportItemsJSON(uint32_t itemCount, char const *const *itemNames)

Export a collection of items (nodes, blocks or ports) as JSON that can later be used by FabricCore::DFGExec::importItemsJSON() to recreate the items elsewhere.

パラメータ:
  • itemCount – The number of items to export
  • itemNames – The names of the items to export
戻り値:

The items encoded as JSON

String exportNodesJSON(uint32_t nodeCount, char const *const *nodeNames)

An alias for FabricCore::DFGExec::exportItemsJSON().

String importItemsJSON(char const *itemsJSON)

Import a collection of nodes from JSON that were exported using FabricCore::DFGExec::exportItemsJSON().

パラメータ:itemsJSON – JSONエンコードされたノード
戻り値:新しく作成されたノードの名前, 文字列のJSON配列
String importNodesJSON(char const *nodesJSON)

An alias for FabricCore::DFGExec::importItemsJSON().

char const *implodeNodes(char const *desiredName, uint32_t nodeCount, char const *const *nodeNames)

ノード一式を, 単一のノードへと畳み込む

注釈

複数のノードを畳み込むと, 畳み込まれるノード間に挟まれ, 接続されているような中間ノードも一緒に内包する
パラメータ:
  • desiredName – 結果としてできるノードの希望名
  • nodeCount – 畳み込みノードの数
  • nodeNames – 畳み込みノードの名前
戻り値:

結果としてできるノードの実際の名前

String explodeNode(char const *nodeName)

グラフのインスタンスな単一のノードを, 実行コード上に個々のノードとして展開する

パラメータ:nodeName – 展開するノードの名前
戻り値:結果としてできる複数ノードのそれぞれ名前
char const *getPresetName() const

実行コードのプリセットパスの コンポート名を取得。実行コードがプリセットインスタンスでない場合,空文字列を戻す。

String getPresetGUID() const

実行コードのプリセットGUIDを取得。実行コードがプリセットインスタンスでない場合,空文字列を戻す。

void setPresetGUID(char const *presetGUID) const

実行コードにプリセットGUIDを設定。プリセットGUIDは厳密に 32 hex digitでなければならない

警告

この関数は実行コードをプリセットから splitしない。つまりそのプリセットのインスタンス『全て』のプリセットGUIDを変更することになる
String getOrigPresetGUID() const

実行コードのオリジナルのプリセットGUIDを取得。なんらかのプリセットのインスタンスであったが, すでにプリセットではない場合に機能する, そうでない場合空の文字列を戻す

bool isPreset() const

あるプリセットが実行コードかどうか問い合わせ

bool instExecIsPreset(char const *instName) const

あるプリセットが実行コードかどうか問い合わせ

bool editWouldSplitFromPreset() const

実行コードの編集により, その実行コードあるいは内包するグラフがプリセットからの split を引き起こすかどうか問い合わせ

unsigned getExecPortIndex() const

Get the exec port index for the named exec port.

void maybeSplitFromPreset()

実行コードを,インスタンス元のプリセットから split。実行コードがプリセットのインスタンスでない場合何もなさない

void addPriorPortName(char const *oldName, char const *newName) const

Add a prior port name for a port, so that persisted versions of executable will be able to resolve the old port name.

bool allowsBlocks() const

Returns whether the executable allows blocks to be created within it

void promoteInstBlockExecsToDefault(char const *instPath)

Makes the current implementation of the inst blocks the defaults for their associated exec blocks.

class FabricCore::DFGBinding : public FabricCore::Ref
DFGBinding()
DFGBinding(DFGBinding const &that)
DFGBinding &operator=(DFGBinding const &that)
~DFGBinding()
DFGBinding getBindingID()

バインディングの バインディングID を取得。このバインディングIDを FabricCore::DFGHost::getBindingForID() に使用しバインディングのハンドラを得る。DFGBinding としてそのバインディングを渡せない状況で有用

戻り値:DFGBinding のバインディングID
DFGHost getHost() const

その DFGBindingを所持する DFGHost を取得

戻り値:DFGBinding を所持する DFGHost
DFGExec getExec() const

DFGBinding の root DFGExec を取得

戻り値:DFGBinding の root DFGExec
RTVal getArgValue(unsigned index)

指定したインデックス番目のバインディング引数の,RTVal値 を取得。指定したインデックスが Root実行コードバインディングの FabricCore::DFGExec::getExecPortCount を超えてしまう場合例外を投げる

パラメータ:index – 取得する引数のポートのインデックス
戻り値:RTVal としての引数の値
RTVal getArgValue(char const *name)

指定した名前のバインディング引数の,RTVal値を取得。該当する名前のポートが存在しない場合例外を投げる

パラメータ:name – 取得する引数のポートの名前
戻り値:RTVal としての引数の値
void setArgValue(LockType lockType, unsigned index, RTVal value, bool canUndo = true)

指定したインデックス番目のバインディング引数の, RTVal値を設定。指定した名前のポートが存在しない場合例外を投げる

設定するRTValのKL型は,その引数の現在の値のものと同一であっても異なっていてもよい

パラメータ:
  • lockType – ロック行う場合のタイプ。これは後に目にすることになるメッセージにも影響する
  • index – 設定する引数のポート上でのインデックス
  • value – 引数のあたらしい値
  • canUndo – 引数の変更が undo可能なアクションであるか
void setArgValue(unsigned index, RTVal value, bool canUndo = true)

FabricCore::DFGBindign::setArgValue(FabricCore::LockType_Exclusive, index, value, canUndo) へのエイリアス

void setArgValue(LockType lockType, char const *name, RTVal value, bool canUndo = true)

指定した名前のバインディング引数の, RTVal値を設定。指定した名前のポートが存在しない場合例外を投げる

設定するRTValのKL型は,その引数の現在の値のものと同一であっても異なっていてもよい

パラメータ:
  • lockType – ロック行う場合のタイプ。これは後に目にすることになるメッセージにも影響する
  • name – 設定する引数のポートの名前
  • value – 引数のあたらしい値
  • canUndo – 引数の変更が undo可能なアクションであるか
void setArgValue(char const *name, RTVal value, bool canUndo = true)

FabricCore::DFGBindign::setArgValue(FabricCore::LockType_Exclusive, name, value, canUndo) へのエイリアス

bool hasRecursiveConnectedErrors() const
String getErrors(bool recursive) const

バインディングのエラーを戻す(JSON オブジェクト配列)

String getLoadDiags() const

バインディングの負荷診断(load diagnostic)を戻す(JSON オブジェクト配列)

void dismissLoadDiag(unsigned diagIndex) const

指定の負荷診断を退ける

void setDirty()

Force the binding into the dirty state. A dirty notification for this binding will be emitted.

void suspendDirtyNotifs()

Suspends dirty notifications until resumeDirtyNotifs() is called

void resumeDirtyNotifs()

Suspends dirty notifications after suspectDirtyNotifs() has been called

void execute_lockType(LockType lockType)

バインディングを実行。例: root実行コード(グラフであったり関数であったり)から生成されたKL関数に, ポートの値をバインディングの引数の値としてわたし,実行する

グラフが実行可能でない場合例外を投げる。実行可能でない場合の例: 出力ポートの一部に(不慮の)接続エラーのあるノードがある場合

パラメータ:lockType – 実行している間保持する,ロックタイプ
void execute()

FabricCore::DFGBinding::execute_lockType(FabricCore::LockType_Exclusive) へのエイリアス

void registerNotificationCallback(DFGNotificationCallback callback, void *userdata)

ノーティフィケーションコールバック関数, 渡されるユーザデータを登録。この関数は以下のシグネチャを持つ必要がある:

void BindingNotificationCallback(
  void *userdata,
  char const *jsonCString,
  uint32_t jsonLength
  );

registerNotificationCallback に渡される userdata の値を受信する。jsonCString and jsonLength は JSONエンコードされた文字列でノーティフィケーションの内容を示す。

ノーティフィケーションに不要になったのであれば, コールバックは FabricCore::DFGBinding::unregisterNotificationCallback() により削除しなければならない

パラメータ:
  • callback – ノーティフィケーションのため呼ぶコールバック関数
  • userdata – コールバック関数へ渡すユーザデータの値
void setNotificationCallback(DFGNotificationCallback callback, void *userdata)

ノーティフィケーションコールバック関数を設定し, ユーザデータを渡す。この関数には以下のシグネチャを持つ必要がある:

void BindingNotificationCallback(
  void *userdata,
  char const *jsonCString,
  uint32_t jsonLength
  );

registerNotificationCallback に渡される userdata の値を受信する。jsonCString and jsonLength は JSONエンコードされた文字列でノーティフィケーションの内容を示す。

コールバックがすでに登録済である場合この関数は例外を投げる。コールバックが NULL である場合は既存のコールバックを削除する。

パラメータ:
  • callback – ノーティフィケーションに呼ばれるコールバック関数, あるいは現在のコールバックを削除するための NULL
  • userdata – コールバック関数へ渡すユーザデータの値
void unregisterNotificationCallback(DFGNotificationCallback callback, void *userdata)

FabricCore::DFGBinding::registerNotificationCallback() によって追加された ノーティフィケーションコールバック関数とユーザデータを登録解除。コールバック,ユーザデータともに登録の際に渡されたものと一致する必要がある

パラメータ:
  • callback – ノーティフィケーションのため呼ぶコールバック関数
  • userdata – コールバック関数へ渡すユーザデータの値
String exportJSON()

バインディングをJSONエンコードされた文字列としてエクスポート。この文字列を FabricCore::DFGHost::createBindingFromJSON() に使用し同内容のバインディングを作成可能

バインディングの中身は再帰的にエンコードされる。プリセットは,プリセットパス and/or GUID を通じ参照となる。対称にローカル定義されたグラフ,関数はインラインにエンコードされる。バインディング引数の値, ポートのディフォルト値も同様エンコードされ, Coreの提供するRTValコーデックへ与えられる。詳細は Coreクライアントコンストラクタを参照

戻り値:エンコードされたバインディング(JSON文字列)
void deallocValues()

このバインディングの使用する一時ストレージを全て破棄。この関数は,使用予定のないバインディングに対し呼び,このバインディングの使用するメモリを解放することができる。

char const *getMetadata(char const *keyCStr) const

このバインディングに紐づく名前付きメタデータの値を取得。key は case-sensitive であり,指定したキーに該当するメタデータが存在しない場合,この関数は空の文字列を戻す。 FabricCore::DFGBinding::setMetdata() 参照

パラメータ:key – 取得するメタデータの key
戻り値:メタデータの値, 存在しない場合空の文字列
void setMetadata(char const *keyCStr, char const *valueCStr, bool canUndo = true)

このバインディングに紐づく名前付きメタデータの値を設定。key は case-sensitive。key の現在値は常に上書きされる。canUndo パラメータ(任意)によりアクションが undo可能であるかどうか指定できる; undo不可能にすると, undoアクションとして保存されず,undoを行っても直前のメタデータの値は復元されない

パラメータ:
  • key – 取得するメタデータの key
  • value – メタデータの新しい値
  • canUndo – (任意)変更が undo可能か
String getVars()

バインディング中に使用可能な Canvas変数の JSONエンコードされた description を戻す

Result:Canvas変数の JSONエンコードされた description
uint32_t getVersion()

バインディングのバージョンを戻す。バインディングのバージョンとは,バインディングを初めて作成した段階でもゼロとなり,バインディングに変更を加える毎に1ずつインクリメントされる。バインディングバージョンの変更はバインディングがundoされると,共にundoされる。バージョンの主目的は, バインディングが変更されたかをアプリケーションから検知し,それを保存できるようにするためである。<注意:バインディングを永続化させても,バージョンは永続化しない>

Result:バインディングのバージョン
class FabricCore::DFGHost : public FabricCore::Ref
DFGHost()
DFGHost(DFGHost const &that)
DFGHost &operator=(DFGHost const &that)
DFGHost &~DFGHost()
Context &getContext() const

DFGHost の属する Fabric Core コンテクストを取得

bool maybeUndo()

Canvas Core コマンドを1個 undo 試行

戻り値:コマンドが undo できたか
bool maybeRedo()

Canvas Core コマンドを1個 redo 試行

戻り値:コマンドが uredo できたか
void flushUndoRedo()

undo, redoスタックを破棄。undo/redo されるコマンドの専有するメモリをパージするが, 該当コマンドは機能しなくなる

char const *getPresetImportPathname(char const *nameSpacePath)

インポートされたプリセットのファイル名を取得

パラメータ:presetPath – プリセットツリー上のプリセットパス
戻り値:インポート済みプリセットのファイル名, プリセットがファイルよりインポートされていない場合空の文字列
FabricCore::String getPresetDesc(char const *presetPath)

プリセットの JSON description を生成

パラメータ:presetPath – プリセットツリー上のプリセットパス
戻り値:JSON description
char const *getPresetMetadata(char const *presetPath, char const *key)

Get the metadata associated with the given key for the given preset. Returns NULL if there is no metadata for the given key.

パラメータ:
  • presetPath – プリセットツリー上のプリセットパス
  • key – The key for the metadata to be retrieved
char const *addPresetDir(char const *parentPresetDirPath, char const *desiredName, char const *pathname = 0)

あたらしいプリセットディレクトリ(子)を,プリセットツリー上の既存プリセットディレクトリ(親)へ追加

パラメータ:
  • parentPresetDirPath – あたらしい子プリセットディレクトリを格納する,親プリセットディレクトリのパス
  • desiredName – 新規子プリセットディレクトリの希望名
  • importPathname – (指定する場合)新規 子プリセットディレクトリに紐づくimportパス名
戻り値:

新規子プリセットディレクトリの実際の名前

char const *importPresetFileJSON(char const *parentPresetDirPath, char const *desiredName, char const *json, char const *importPathname = 0)

JSONエンコードされた新しいプリセット(子)を,既存のプリセットディレクトリ(親)にインポート。JSONエンコードされた表現物は通常 String exportPresetJSON() により取得する

パラメータ:
  • parentPresetDirPath – 新しい子プリセットを格納する親プリセットディレクトリのパス
  • desiredName – 新規子プリセットの希望名
  • json – 新規プリセット(JSONエンコード)
戻り値:

新規子プリセットの実際の名前

String exportPresetJSON(char const *presetPathCStr)

JSONとして既存プリセットをエクスポート

パラメータ:presetPath – プリセットのパス
戻り値:JSONにエンコードされたプリセット
void removePreset(char const *presetPath)

プリセットツリー上から既存プリセットを削除

パラメータ:presetPath – プリセットのパス
DFGExec createNewUnboundGraph()

あたらしい DFGExecオブジェクトを作成,空のグラフを参照する。このグラフはバインドされておらず ―― つまり DFGBinding にアタッチされていない,そのため編集は可能だが実行はできない

戻り値:新しい DFGExec オブジェクト
DFGExec createNewUnboundExecFromJSON(char const *json)

JSONで記述された あたらしい DFGExecオブジェクトを作成。JSONは通常 FabricCore::DFGExec::exportJSON() により得る。この実行コードはバインドされておらず ―― つまり DFGBinding にアタッチされていない,そのため編集は可能だが実行はできない

パラメータ:json – JSONエンコードされた実行コードの description
戻り値:新しい DFGExec オブジェクト
DFGExec createNewUnboundFunc()

空の関数を参照するあたらしい DFGExecオブジェクトを作成。この実行コードはバインドされておらず ―― つまり DFGBinding にアタッチされていない,そのため編集は可能だが実行はできない

戻り値:新しい DFGExec オブジェクト
DFGBinding createBindingToNewGraph()

ルート実行コードとして空のグラフをもつ あたらしい DFGBindingオブジェクトを作成。

戻り値:あたらしいDFGBinding
DFGBinding createBindingToNewFunc()

ルート実行コードとして空の関数をもつ あたらしい DFGBindingオブジェクトを作成。

戻り値:あたらしいDFGBinding
DFGBinding createBindingFromJSON(char const *json, uint32_t rtValCount = 0, RTVal const *rtVals = 0)

JSONで記述されたルート実行コードをもつ,あたらしい DFGBindingオブジェクトを作成。JSONは通常 FabricCore::DFGExec::exportJSON() により取得

パラメータ:
  • json – ルート実行コードの JSONエンコードされた description
  • rtValCount – (指定した場合)新しい DFGBinding の引数にバインドされる RTValの数
  • rtVals – (指定した場合)新しい DFGBinding の引数にバインドされる RTVal
戻り値:

あたらしいDFGBinding

DFGBinding createBindingToPreset(char const *presetFile, uint32_t rtValCount = 0, RTVal const *rtVals = 0)

ルート実行コードとしてが特定のプリセットのインスタンスである,あたらしい DFGBindingオブジェクトを作成。JSONは通常 FabricCore::DFGExec::exportJSON() により取得

パラメータ:
  • presetFilePath – ルート実行コードとして使用する,プリセットのプリセットツリー上でのパス
  • rtValCount – (指定した場合)新しい DFGBinding の引数にバインドされる RTValの数
  • rtVals – (指定した場合)新しい DFGBinding の引数にバインドされる RTVal
戻り値:

あたらしいDFGBinding

DFGBinding getBindingForID(uint32_t bindingID)

指定したバインディングIDの DFGBinding への参照を取得。 バインディングIDは FabricCore::DFGBinding::getBindingID() により得る

パラメータ:bindingID – バインディングID
戻り値:指定したバインディングID の DFGBinding
void blockComps()

DFGBinding の再コンパイルを阻害。これは重厚長大グラフを構築する際のパフォーマンス向上に役立つ。 再コンパイル阻害しているのに FabricCore::DFGBinding::execute() を呼び出すと例外を投げる

void unblockComps()

DFGBinding の再コンパイルの阻害を解除

class FabricCore::DFGNotifBracket

DFGNotifBracket クラスにより DFGコマンドが実行するまで通知の一時停止する。

DFGNotifBracket(DFGHost host)

カレントスコープにDFGNotifBracket を作成すると, 全てのDFGノーティフィケーションは現在のスコープが閉じるまで一時停止する。

~DFGNotifBracket()