Skip to content
Snippets Groups Projects
lens_test.rs 875 B
Newer Older
use opossum::nodes::{RealLens, Source};
use opossum::{nodes::Detector, OpticScenery};
y.zobus's avatar
y.zobus committed
use std::fs::File;
use std::io::Write;

Udo Eisenbarth's avatar
Udo Eisenbarth committed
use opossum::error::OpossumError;
y.zobus's avatar
y.zobus committed

fn main() -> Result<(), OpossumError> {
    let mut scenery = OpticScenery::new();
    scenery.set_description("Lens Ray-trace test".into());
    let src = scenery.add_element("Source", Source::default());
    let l1 = scenery.add_element("Lens 1", RealLens::default());
    let l2 = scenery.add_element("Lens 2", RealLens::default());
    let det = scenery.add_element("Detector", Detector::default());
y.zobus's avatar
y.zobus committed

    scenery.connect_nodes(src, "out1", l1, "in1")?;
    scenery.connect_nodes(l1, "out1", l2, "in1")?;
    scenery.connect_nodes(l2, "out1", det, "in1")?;

    let path = "lens_system.dot";
    let mut output = File::create(path).unwrap();
    write!(output, "{}", scenery.to_dot("")?).unwrap();
y.zobus's avatar
y.zobus committed
    Ok(())
}