diff --git a/opossum/examples/group_reverse.rs b/opossum/examples/group_reverse.rs index 1a07c2625c033ef1b0cf8327a7449fdaba3ce999..db4310667fc72c2455863a4f2cbff8a6cffdf371 100644 --- a/opossum/examples/group_reverse.rs +++ b/opossum/examples/group_reverse.rs @@ -2,7 +2,7 @@ use std::path::Path; use num::Zero; use opossum::{ - analyzers::{AnalyzerType, RayTraceConfig}, + analyzers::AnalyzerType, error::OpmResult, lightdata::{DataEnergy, LightData}, nodes::{Dummy, EnergyMeter, NodeGroup, Source}, @@ -22,7 +22,7 @@ fn main() -> OpmResult<()> { ))?; let mut group = NodeGroup::default(); - group.set_expand_view(true).unwrap(); + group.set_expand_view(true)?; let g_n1 = group.add_node(Dummy::new("node1"))?; let g_n2 = group.add_node(Dummy::new("node2"))?; @@ -38,6 +38,6 @@ fn main() -> OpmResult<()> { scenery.connect_nodes(i_g, "in1", i_d, "in1", Length::zero())?; let mut doc = OpmDocument::new(scenery); - doc.add_analyzer(AnalyzerType::RayTrace(RayTraceConfig::default())); + doc.add_analyzer(AnalyzerType::Energy); doc.save_to_file(Path::new("./opossum/playground/group_reverse.opm")) } diff --git a/opossum/src/nodes/dummy.rs b/opossum/src/nodes/dummy.rs index 38c85e1858de047b32463f589fd2678fde278490..1ad3ee5c6e16e0920d200ac5795ce841e7308cc3 100644 --- a/opossum/src/nodes/dummy.rs +++ b/opossum/src/nodes/dummy.rs @@ -11,7 +11,6 @@ use crate::{ lightdata::LightData, optic_node::OpticNode, optic_ports::{OpticPorts, PortType}, - reporting::node_report::NodeReport, surface::{OpticalSurface, Plane, Surface}, utils::geom_transformation::Isometry, }; @@ -132,14 +131,6 @@ impl AnalysisRayTrace for Dummy { } impl OpticNode for Dummy { - fn node_report(&self, uuid: &str) -> Option<NodeReport> { - Some(NodeReport::new( - &self.node_type(), - &self.name(), - uuid, - self.node_attr.properties().clone(), - )) - } fn node_attr(&self) -> &NodeAttr { &self.node_attr } @@ -203,7 +194,7 @@ mod test { #[test] fn report() { let report = Dummy::default().node_report("123"); - assert!(report.is_some()); + assert!(report.is_none()); } #[test] fn ports_inverted() { diff --git a/opossum/src/nodes/node_group/mod.rs b/opossum/src/nodes/node_group/mod.rs index 3181a7b224720e7564bcf5c8eecf9bbebd635978..c85f126a88c5aefbc26415217282dfc49cf81259 100644 --- a/opossum/src/nodes/node_group/mod.rs +++ b/opossum/src/nodes/node_group/mod.rs @@ -19,7 +19,6 @@ use crate::{ SceneryResources, }; use chrono::Local; -use log::{info, warn}; pub use optic_graph::OpticGraph; use petgraph::prelude::NodeIndex; use serde::{Deserialize, Serialize}; @@ -69,6 +68,7 @@ pub struct NodeGroup { #[serde(skip)] graph: OpticGraph, node_attr: NodeAttr, + #[serde(skip)] input_port_distances: BTreeMap<String, Length>, #[serde(skip)] accumulated_rays: Vec<Vec<Rays>>, @@ -306,17 +306,6 @@ impl NodeGroup { pub const fn graph(&self) -> &OpticGraph { &self.graph } - /// Write node specific data files to the given `data_dir`. - /// # Errors - /// This function will return an error if the underlying `export_data` function of the corresponding - /// node returns an error. - // pub fn export_node_data(&self, data_dir: &Path) -> OpmResult<()> { - // for node in self.graph.nodes() { - // let uuid = node.uuid().as_simple().to_string(); - // node.optical_ref.borrow().export_data(data_dir, &uuid)?; - // } - // Ok(()) - // } /// Generate a (top level) [`AnalysisReport`] containing the result of a previously preformed analysis. /// /// This [`AnalysisReport`] can then be used to either save it to disk or produce an HTML document from. In addition, @@ -327,8 +316,6 @@ impl NodeGroup { let mut analysis_report = AnalysisReport::new(get_version(), Local::now()); analysis_report.add_scenery(self); for node in self.graph.nodes() { - let node_name = &node.optical_ref.borrow().name(); - info!("toplevel report data for node {node_name}"); let uuid = node.uuid().as_simple().to_string(); if let Some(node_report) = node.optical_ref.borrow().node_report(&uuid) { analysis_report.add_node_report(node_report); @@ -405,26 +392,6 @@ impl NodeGroup { pub fn clear_edges(&mut self) { self.graph.clear_edges(); } - // fn export_data(&self, report_dir: &Path, _uuid: &str) -> OpmResult<()> { - // for node in self.graph.nodes() { - // let node_name = node.optical_ref.borrow().name(); - // info!("export data for node {node_name}"); - // let uuid = node.uuid().as_simple().to_string(); - // node.optical_ref.borrow().export_data(report_dir, &uuid)?; - // let hitmaps = node.optical_ref.borrow().hit_maps(); - // for hitmap in &hitmaps { - // let port_name = hitmap.0; - // info!(" found hitmap for port {port_name}"); - // let file_path = PathBuf::from(report_dir).join(Path::new(&format!( - // "hitmap_{node_name}_{port_name}_{uuid}.svg" - // ))); - // if !hitmap.1.is_empty() { - // hitmap.1.to_plot(&file_path, PltBackEnd::SVG)?; - // } - // } - // } - // Ok(()) - // } } impl OpticNode for NodeGroup { @@ -451,6 +418,7 @@ impl OpticNode for NodeGroup { if let Proptype::OpticGraph(g) = &self.node_attr.get_property("graph")? { self.graph = g.clone(); } + self.graph.set_is_inverted(self.node_attr.inverted()); Ok(()) } fn node_report(&self, uuid: &str) -> Option<NodeReport> { @@ -459,7 +427,6 @@ impl OpticNode for NodeGroup { let sub_uuid = node.uuid().as_simple().to_string(); if let Some(node_report) = node.optical_ref.borrow().node_report(&sub_uuid) { let node_name = &node.optical_ref.borrow().name(); - info!("report data for node {node_name}"); if !(group_props.contains(node_name)) { group_props .create(node_name, "", None, node_report.into())