Newer
Older
use opossum::error::OpossumError;
use std::fs::File;
use std::io::Write;
fn main() -> Result<(), OpossumError> {
let mut scenery = OpticScenery::new();
scenery.set_description("Node Group test section".into());
group1.expand_view(true);
let g1_n1 = group1.add_node(Dummy::new("node1"));
let g1_n2 = group1.add_node(BeamSplitter::default());
group1.map_output_port(g1_n2, "out1_trans1_refl2", "out1")?;
group1.connect_nodes(g1_n1, "rear", g1_n2, "input1")?;
let nested_g_n1 = nested_group.add_node(Dummy::new("node1_1"));
let nested_g_n2 = nested_group.add_node(Dummy::new("node1_2"));
nested_group.connect_nodes(nested_g_n1, "rear", nested_g_n2, "front")?;
nested_group.map_input_port(nested_g_n1, "front", "in1")?;
nested_group.map_output_port(nested_g_n2, "rear", "out1")?;
let nested_group_index = group1.add_node(nested_group);
group1.connect_nodes(nested_group_index, "out1", g1_n1, "front")?;
group2.expand_view(true);
let g2_n1 = group2.add_node(Dummy::new("node2_1"));
let g2_n2 = group2.add_node(Dummy::new("node2_2"));
let scene_g1 = scenery.add_node(group1);
let scene_g2 = scenery.add_node(group2);
// set_output_port
println!("{}", serde_yaml::to_string(&scenery).unwrap());
let path = "graph_group.dot";
let mut output = File::create(path).unwrap();
write!(output, "{}", scenery.to_dot("LR")?).unwrap();
Ok(())
}