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

Add (so far non-fucntional) reference node.

parent c4514d35
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_scenery::OpticScenery;
......@@ -13,6 +13,9 @@ fn main() {
let n3 = scenery.add_node(OpticNode::new("Faraday", 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));
node.set_inverted(true);
let n3i=scenery.add_node(node);
......
//! This module contains the concrete node types (lenses, filters, etc...)
mod node_dummy;
mod node_reference;
pub use node_dummy::NodeDummy;
\ No newline at end of file
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