Skip to content
Snippets Groups Projects

Resolve "Make Aperture serializable"

Merged Udo Eisenbarth requested to merge 116-make-aperture-serializable into main
+ 8
8
@@ -34,12 +34,12 @@ use ncollide2d::{
query::PointQuery,
shape::{Ball, Cuboid, Polyline},
};
use serde_derive::Serialize;
use serde_derive::{Deserialize, Serialize};
/// The apodization type of an [`Aperture`].
///
/// Each aperture can act as a "hole" or "obstruction"
#[derive(Default, Serialize)]
#[derive(Default, Serialize, Deserialize)]
pub enum ApertureType {
/// the [`Aperture`] shape acts as a hole. The inner part of the shape is transparent.
#[default]
@@ -49,7 +49,7 @@ pub enum ApertureType {
}
/// Different aperture types
#[derive(Default, Serialize)]
#[derive(Default, Serialize, Deserialize)]
pub enum Aperture {
/// completely transparent aperture. This is the default.
#[default]
@@ -88,7 +88,7 @@ pub trait Apodize {
fn apodize(&self, point: &Point2<f64>) -> f64;
}
/// Configuration data for a circular aperture.
#[derive(Serialize)]
#[derive(Serialize, Deserialize)]
pub struct CircleConfig {
radius: f64,
center: Point2<f64>,
@@ -133,7 +133,7 @@ impl Apodize for CircleConfig {
}
}
/// Configuration data for a rectangular aperture.
#[derive(Serialize)]
#[derive(Serialize, Deserialize)]
pub struct RectangleConfig {
width: f64,
height: f64,
@@ -189,7 +189,7 @@ impl Apodize for RectangleConfig {
}
}
/// Configuration of a polygonal aperture defined by a given set of points.
#[derive(Serialize)]
#[derive(Serialize, Deserialize)]
pub struct PolygonConfig {
points: Vec<Point2<f64>>,
aperture_type: ApertureType,
@@ -231,7 +231,7 @@ impl Apodize for PolygonConfig {
}
}
/// Configuration data for a Gaussian aperture.
#[derive(Serialize)]
#[derive(Serialize, Deserialize)]
pub struct GaussianConfig {
waist: (f64, f64),
center: Point2<f64>,
@@ -282,7 +282,7 @@ impl Apodize for GaussianConfig {
}
}
/// Configuration of an aperture stack
#[derive(Serialize)]
#[derive(Serialize, Deserialize)]
pub struct StackConfig {
apertures: Vec<Aperture>,
aperture_type: ApertureType,
Loading