gondola_core/physics/
reconstruction.rs1use crate::prelude::*;
5
6
7#[derive(Debug, Copy, Clone, PartialEq,FromRepr, AsRefStr, EnumIter)]
8#[repr(u8)]
9#[cfg_attr(feature = "pybindings", pyclass(eq, eq_int))]
10pub enum FitStatus {
11 Unknown = 0u8,
12 DidNotConverge = 10u8,
13 Success = 42u8,
14}
15
16expand_and_test_enum!(FitStatus, test_fitstatus_repr);
17
18
19pub fn line3d(z : f32, x_a : f32, y_a : f32, z_a : f32, dx : f32, dy : f32, dz : f32) -> (f32, f32, f32) {
25 let dz_nz : f32 = if dz != 0.0 {dz} else { 1e-5 };
29 let x = x_a + ((dx/dz_nz) * (z - z_a));
30 let y = y_a + ((dy/dz_nz) * (z - z_a));
31 (x,y,z)
32}
33
34pub struct LineFit {
35}
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50