圖上下文
不同的圖型別是為不同的場景設計的。
在 Divooka 中,共有八種圖型別(也稱為圖種類),分屬三種上下文和一個用於定義型別的類別:
- 資料流上下文:Flows、Function、Components(原名 System)
- 過程式上下文:Events、Routine
- 宣告式上下文:StateMachine、Constructs
- 型別定義:Type(原名 Struct)
| 圖型別 | 上下文 | 說明 | Divooka Explore | Divooka Compute |
|---|---|---|---|---|
| Flows | 資料流 | 自由形式的畫布:值沿著連線傳遞,一次執行會執行被標記為活動的節點及其依賴的一切。 | 建立、編輯、執行 | 建立、編輯、執行 |
| Function | 資料流 | 可被其他影像節點一樣呼叫的圖,帶有一個 Input 節點和一個 Output 節點。 | 建立、編輯、執行 | 建立、編輯、執行 |
| Components | 資料流 | 以資料流定義的物件:每個沒有被其他節點接收的輸出都會成為該物件的一個欄位,而建立一個物件就是執行這個圖。 | 開啟和執行 | 建立、編輯、執行 |
| Events | 過程式 | 由應用程式框架呼叫的回撥,例如 Start 和每一幀的更新。 | 建立、編輯、執行 | 建立、編輯、執行 |
| Routine | 過程式 | 沿執行連線依次執行的步驟,包含迴圈和分支。 | 建立、編輯、執行 | 建立、編輯、執行 |
| StateMachine | 宣告式 | 由命名的轉換連線起來的狀態,每個轉換都由一個條件守護。 | 開啟和執行 | 建立、編輯、執行 |
| Constructs | 宣告式 | 由建構函式和工廠組裝而成的物件樹,沒有副作用。 | 開啟和執行 | 建立、編輯、執行 |
| Type | 型別定義 | 你自己的資料結構,包含資料成員,並以 Function 或 Routine 圖作為其方法;它本身不會被執行。 | 建立、編輯 | 建立、編輯 |
Divooka Explore 可以建立 Flows、Function、Events、Routine 和 Type 圖;它可以開啟並執行包含 Components、StateMachine 或 Constructs 圖的文件,但不提供建立這些圖的選項。Divooka Compute 提供全部八種圖。編輯器會在畫布上方顯示圖的種類及其所屬類別,例如 Flows · dataflow。請參閱 Divooka Explore 中的圖和 Divooka Compute 中的圖指南。
較舊的文件和頁面可能使用以前的名稱:System 即 Components,Struct 即 Type(Type 仍然可以是 Class、Struct 或 Record,在其屬性中選擇)。
資料流上下文與過程式上下文

瞭解更多:
在過程式上下文中混用資料流上下文
在過程式上下文中混用資料流節點時,必須非常小心圖的狀態,如下例所示:

Bigger Than 計算將被求值兩次:一次由 Repeat 節點觸發,另一次由 Branch 節點觸發。這並不是標準化的行為,通常會產生“不確定”的結果。
宣告式上下文
在宣告式圖中,節點描述某個事物,而不是逐步計算它。StateMachine 用命名的轉換連線各個狀態,每個轉換都由一個條件守護:每個狀態的行為本身就是一個圖,一次執行會進入第一個狀態、執行它,然後選取第一個條件成立的轉換。Constructs 圖是由建構函式和工廠組裝而成的物件樹,沒有副作用;它是供其他圖讀取的描述。瞭解更多:宣告式上下文。
模組
模組定義成員資料和成員行為。在 Divooka 中,每個圖(無論是哪種型別/上下文)實際上都是一個模組。
型別
專用的 Type 圖可以讓你定義自己的資料型別:它的資料成員,以及作為其方法的 Function 或 Routine 圖。其他圖通過它的 Make 節點建立它的例項,並讀取和設定它的成員。Type 本身不會被執行;邏輯請使用 Function 和 Routine 圖。