jellyflow_runtime/runtime/rendering/
store.rs1use crate::runtime::store::NodeGraphStore;
2use jellyflow_core::core::{CanvasSize, EdgeId, GroupId, NodeId};
3
4use super::order::{
5 EdgeRenderOrderOptions, GroupRenderOrderOptions, NodeRenderOrderOptions,
6 resolve_edge_render_order, resolve_group_render_order, resolve_node_render_order,
7};
8use super::query::RenderingQueryResult;
9
10impl NodeGraphStore {
11 pub fn group_render_order(&self) -> Vec<GroupId> {
13 let interaction = self.resolved_interaction_state();
14 resolve_group_render_order(
15 self.graph(),
16 self.view_state(),
17 GroupRenderOrderOptions::from_interaction(&interaction),
18 )
19 }
20
21 pub fn node_render_order(&self) -> Vec<NodeId> {
23 let interaction = self.resolved_interaction_state();
24 resolve_node_render_order(
25 self.graph(),
26 self.view_state(),
27 NodeRenderOrderOptions::from_interaction(&interaction),
28 )
29 }
30
31 pub fn edge_render_order(&self) -> Vec<EdgeId> {
33 let interaction = self.resolved_interaction_state();
34 resolve_edge_render_order(
35 self.graph(),
36 self.view_state(),
37 EdgeRenderOrderOptions::from_interaction(&interaction),
38 )
39 }
40
41 pub fn rendering_query(&self, viewport_size: CanvasSize) -> RenderingQueryResult {
43 crate::runtime::query::rendering_query(self, viewport_size)
44 }
45}