use opossum::optic_scenery::OpticScenery; use opossum::optic_node::OpticNode; use opossum::nodes::NodeDummy; use std::fs::File; use std::io::Write; fn main() { println!("PHELIX uOPA opticscenery example"); let mut scenery = OpticScenery::new(); scenery.set_description("OpticScenery PHELIX uOPA".into()); println!("default opticscenery: {:?}", scenery); println!("export to `dot` format: {}", scenery.to_dot()); let mira_node1 =scenery.add_node(OpticNode::new("Mira", Box::new(NodeDummy))); let qwp_node1 =scenery.add_node(OpticNode::new("Quarter Wave Plate", Box::new(NodeDummy))); // let pol_node1 =scenery.add_node(OpticNode::new("Polarizer", Box::new(NodeDummy))); // let dichroic_node1 =scenery.add_node(OpticNode::new("Dichroic Mirror", Box::new(NodeDummy))); // let fiber_amp_node1 =scenery.add_node(OpticNode::new("Fiber Amplifier", Box::new(NodeDummy))); // let periscope_node1 =scenery.add_node(OpticNode::new("Periscope", Box::new(NodeDummy))); // let kepler_tel_node1 =scenery.add_node(OpticNode::new("Kepler Telescope", Box::new(NodeDummy))); // let pol_node2 =scenery.add_node(OpticNode::new("Polarizer", Box::new(NodeDummy))); // let pockels_cell_node1 =scenery.add_node(OpticNode::new("Pockels Cell", Box::new(NodeDummy))); // let regen_amp_node1 =scenery.add_node(OpticNode::new("Regenerative Amplifier", Box::new(NodeDummy))); // let galilei_node1 =scenery.add_node(OpticNode::new("Galilei Telescope", Box::new(NodeDummy))); // let compressor_node1 =scenery.add_node(OpticNode::new("Compressor", Box::new(NodeDummy))); // let galilei_node2 =scenery.add_node(OpticNode::new("Galilei Telescope", Box::new(NodeDummy))); // let delay_node1 =scenery.add_node(OpticNode::new("Delay Stage", Box::new(NodeDummy))); scenery.connect_nodes(mira_node1, qwp_node1); // scenery.connect_nodes(qwp_node1, pol_node1); // scenery.connect_nodes(pol_node1, dichroic_node1); // scenery.connect_nodes(pol_node1, fiber_amp_node1); // scenery.connect_nodes(fiber_amp_node1, periscope_node1); // scenery.connect_nodes(periscope_node1, kepler_tel_node1); // scenery.connect_nodes(kepler_tel_node1, pol_node2); // scenery.connect_nodes(pol_node2, pockels_cell_node1); // scenery.connect_nodes(pockels_cell_node1, regen_amp_node1); // scenery.connect_nodes(regen_amp_node1, pockels_cell_node1); // scenery.connect_nodes(pockels_cell_node1, pol_node2); // scenery.connect_nodes(pol_node2, galilei_node1); // scenery.connect_nodes(galilei_node1, compressor_node1); // scenery.connect_nodes(compressor_node1, galilei_node2); // scenery.connect_nodes(galilei_node2, delay_node1); let path = "uOPA.dot"; let mut output = File::create(path).unwrap(); write!(output, "{}", scenery.to_dot()).unwrap(); }