Skip to content
Snippets Groups Projects
Commit fc70870e authored by y.zobus's avatar y.zobus
Browse files

Merge branch 'main' of git.gsi.de:phelix/rust/opossum

parents 48eaaad4 969a1de7
No related branches found
No related tags found
No related merge requests found
use opossum::nodes::NodeDummy; use opossum::nodes::{NodeDummy, NodeReference};
use opossum::optic_node::OpticNode; use opossum::optic_node::OpticNode;
use opossum::optic_scenery::OpticScenery; use opossum::optic_scenery::OpticScenery;
...@@ -13,6 +13,9 @@ fn main() { ...@@ -13,6 +13,9 @@ fn main() {
let n3 = scenery.add_node(OpticNode::new("Faraday", Box::new(NodeDummy))); let n3 = scenery.add_node(OpticNode::new("Faraday", Box::new(NodeDummy)));
let n4 = scenery.add_node(OpticNode::new("0° mirror", Box::new(NodeDummy))); let n4 = scenery.add_node(OpticNode::new("0° mirror", Box::new(NodeDummy)));
//let ref_node= NodeReference::new(&Box::new(NodeDummy));
let mut node= OpticNode::new("Faraday", Box::new(NodeDummy)); let mut node= OpticNode::new("Faraday", Box::new(NodeDummy));
node.set_inverted(true); node.set_inverted(true);
let n3i=scenery.add_node(node); let n3i=scenery.add_node(node);
......
//! This module contains the concrete node types (lenses, filters, etc...) //! This module contains the concrete node types (lenses, filters, etc...)
mod node_dummy; mod node_dummy;
mod node_reference;
pub use node_dummy::NodeDummy; pub use node_dummy::NodeDummy;
pub use node_reference::NodeReference;
\ No newline at end of file
use crate::optic_node::{OpticNode, Optical};
/// A virtual component referring to another existing component. This node type is necessary in order to model resonators (loops) or double-pass systems.
pub struct NodeReference<'a> {
reference: &'a Box<dyn Optical>,
}
impl<'a> NodeReference<'a> {
pub fn new(node: &'a Box<dyn Optical>) -> Self {
Self { reference: node }
}
}
impl<'a> Optical for NodeReference<'a> {
/// Returns "dummy" as node type.
fn node_type(&self) -> &str {
"reference"
}
}
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