Newer
Older
//! Optical Analyzers
use crate::{error::OpossumError, optic_scenery::OpticScenery};
use strum::EnumIter;
type Result<T> = std::result::Result<T, OpossumError>;
#[derive(Debug)]
pub struct AnalyzerEnergy {
scene: OpticScenery,
}
impl AnalyzerEnergy {
pub fn new(scenery: &OpticScenery) -> Self {
Self {
scene: (*scenery).to_owned(),
}
}
pub fn analyze(&mut self) -> Result<()> {
self.scene.analyze(&AnalyzerType::Energy)
}
}
#[derive(EnumIter)]
pub enum AnalyzerType {
Energy,
ParAxialRayTrace,
}