pub struct RotatingLEDArc {
pub led_thetas: Vec<f64>,
pub rotation_angles: Vec<f64>,
pub radius: f64,
pub axis_origin_offset: (f64, f64, f64),
pub axis_tilt_radians: (f64, f64),
pub led_angular_corrections: Option<Vec<(f64, f64)>>,
pub led_radial_offsets: Option<Vec<f64>>,
pub rotation_zero_radians: f64,
pub rotation_scale: f64,
pub rotation_backlash_radians: f64,
pub wavelength_override: Option<f64>,
pub led_intensity_weights: Option<Vec<f64>>,
}Expand description
A quarter-circle LED arc rotated about an axis nominally collinear with the optical axis.
Every LED is compiled at every commanded rotation angle. Sources are
ordered rotation-major and then by led_thetas. The nominal arm lies in the
x-z plane, with LED polar positions measured from positive z.
Fields§
§led_thetas: Vec<f64>Nominal LED polar positions along the quarter-circle arm, in radians.
rotation_angles: Vec<f64>Commanded arm azimuths in physical movement order, in radians.
radius: f64§axis_origin_offset: (f64, f64, f64)Point on the rotation axis relative to the sample, in metres.
axis_tilt_radians: (f64, f64)Rotation-axis tilt (rx, ry) away from the optical axis, in radians.
led_angular_corrections: Option<Vec<(f64, f64)>>Per-LED (delta_theta, delta_phi) mounting corrections.
led_radial_offsets: Option<Vec<f64>>Per-LED radial corrections to the nominal arm radius, in metres.
rotation_zero_radians: f64§rotation_scale: f64§rotation_backlash_radians: f64Total separation between increasing and decreasing rotation branches.
wavelength_override: Option<f64>§led_intensity_weights: Option<Vec<f64>>Intrinsic intensity weight for each LED, repeated at every rotation.
Implementations§
Source§impl RotatingLEDArc
impl RotatingLEDArc
pub fn new(led_thetas: Vec<f64>, rotation_angles: Vec<f64>, radius: f64) -> Self
pub fn axis_origin_offset(self, offset: (f64, f64, f64)) -> Self
pub fn axis_tilt_deg(self, x: f64, y: f64) -> Self
pub fn led_angular_corrections(self, corrections: Vec<(f64, f64)>) -> Self
pub fn led_radial_offsets(self, offsets: Vec<f64>) -> Self
pub fn rotation_encoder_zero_deg(self, degrees: f64) -> Self
pub fn rotation_encoder_scale(self, scale: f64) -> Self
pub fn rotation_backlash_deg(self, degrees: f64) -> Self
pub fn wavelength_override(self, wavelength: f64) -> Self
pub fn led_intensity_weights(self, weights: Vec<f64>) -> Self
pub fn source_count(&self) -> Result<usize>
pub fn validate(&self) -> Result<()>
Trait Implementations§
Source§impl Clone for RotatingLEDArc
impl Clone for RotatingLEDArc
Source§fn clone(&self) -> RotatingLEDArc
fn clone(&self) -> RotatingLEDArc
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more