Skip to content
Snippets Groups Projects
Commit f6d1a9ce authored by Udo Eisenbarth's avatar Udo Eisenbarth :speech_balloon:
Browse files

Add group node example.

Analysis seems to work. Display of graph wrong.
parent 83aebfbf
No related branches found
No related tags found
No related merge requests found
......@@ -806,15 +806,15 @@ dependencies = [
[[package]]
name = "serde"
version = "1.0.175"
version = "1.0.177"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b"
checksum = "63ba2516aa6bf82e0b19ca8b50019d52df58455d3cf9bdaf6315225fdd0c560a"
[[package]]
name = "serde_derive"
version = "1.0.175"
version = "1.0.177"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4"
checksum = "401797fe7833d72109fedec6bfcbe67c0eed9b99772f26eb8afd261f0abc6fd3"
dependencies = [
"proc-macro2",
"quote",
......
use std::fs::File;
use std::io::Write;
use opossum::{
analyzer::AnalyzerEnergy,
error::OpossumError,
lightdata::{DataEnergy, LightData},
nodes::{Detector, Dummy, NodeGroup, Source},
optic_node::OpticNode,
optic_scenery::OpticScenery,
spectrum::create_he_ne_spectrum,
};
fn main() -> Result<(), OpossumError> {
let mut scenery = OpticScenery::new();
scenery.set_description("optic group demo");
let i_s = scenery.add_element(
"Source",
Source::new(LightData::Energy(DataEnergy {
spectrum: create_he_ne_spectrum(1.0),
})),
);
let i_d = scenery.add_element("Detector", Detector::default());
let mut group = NodeGroup::new();
let i_g_d1 = group.add_node(OpticNode::new("dummy1", Dummy));
let i_g_d2 = group.add_node(OpticNode::new("dummy2", Dummy));
group.connect_nodes(i_g_d1, "rear", i_g_d2, "front")?;
group.map_input_port(i_g_d1, "front", "input")?;
group.map_output_port(i_g_d2, "rear", "output")?;
let i_g = scenery.add_element("test group", group);
scenery.connect_nodes(i_s, "out1", i_g, "input")?;
scenery.connect_nodes(i_g, "output", i_d, "in1")?;
let path = "group_test.dot";
let mut output = File::create(path).unwrap();
write!(output, "{}", scenery.to_dot()).unwrap();
scenery.report();
println!("");
let mut analyzer = AnalyzerEnergy::new(&scenery);
print!("Analyze...");
analyzer.analyze()?;
println!("Sucessful");
println!("");
scenery.report();
Ok(())
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment