diff --git a/examples/simulation.rs b/examples/simulation.rs index 7ef456b..8b9c864 100644 --- a/examples/simulation.rs +++ b/examples/simulation.rs @@ -18,7 +18,7 @@ use serde::de::DeserializeOwned; use serde::Deserialize; use marg_orientation::gyro_free::{MagneticReference, OwnedOrientationEstimator}; -use marg_orientation::{ +use marg_orientation::types::{ AccelerometerNoise, AccelerometerReading, GyroscopeReading, MagnetometerNoise, MagnetometerReading, }; @@ -432,9 +432,12 @@ fn main() -> Result<(), Box> { } // Obtain a rotation matrix from the estimated angles. - let north = estimator.rotate_vector_world(marg_orientation::Vector3::new(1.0, 0.0, 0.0)); - let east = estimator.rotate_vector_world(marg_orientation::Vector3::new(0.0, 1.0, 0.0)); - let down = estimator.rotate_vector_world(marg_orientation::Vector3::new(0.0, 0.0, 1.0)); + let north = + estimator.rotate_vector_world(marg_orientation::types::Vector3::new(1.0, 0.0, 0.0)); + let east = + estimator.rotate_vector_world(marg_orientation::types::Vector3::new(0.0, 1.0, 0.0)); + let down = + estimator.rotate_vector_world(marg_orientation::types::Vector3::new(0.0, 0.0, 1.0)); let filter_x = kiss3d_point(NorthEastDown::new(north.x, north.y, north.z)); let filter_y = kiss3d_point(NorthEastDown::new(east.x, east.y, east.z)); let filter_z = kiss3d_point(NorthEastDown::new(down.x, down.y, down.z)); diff --git a/src/gyro_free/filter.rs b/src/gyro_free/filter.rs index a351504..4801eef 100644 --- a/src/gyro_free/filter.rs +++ b/src/gyro_free/filter.rs @@ -1,9 +1,10 @@ use crate::gyro_free::types::*; -use crate::vector3::Vector3; -use crate::{ - Abs, AccelerometerNoise, AccelerometerReading, ArcSin, ArcTan, EulerAngles, IsNaN, - MagnetometerNoise, MagnetometerReading, NormalizeAngle, +use crate::prelude::*; +use crate::types::{ + AccelerometerNoise, AccelerometerReading, EulerAngles, MagnetometerNoise, MagnetometerReading, + Vector3, }; +use crate::IsNaN; use minikalman::buffers::types::*; use minikalman::extended::{ExtendedKalmanBuilder, ExtendedObservationBuilder}; use minikalman::matrix::MatrixDataType; diff --git a/src/lib.rs b/src/lib.rs index 338277d..e7e69b1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,30 +6,20 @@ // Only enables the `doc_cfg` feature when the `docsrs` configuration attribute is defined. #![cfg_attr(docsrs, feature(doc_cfg))] -mod accelerometer_noise; -mod accelerometer_reading; -mod euler_angles; pub mod gyro_drift; pub mod gyro_free; -mod gyroscope_bias; -mod gyroscope_noise; -mod gyroscope_reading; + mod macros; -mod magnetometer_noise; -mod magnetometer_reading; + mod num_traits; #[deprecated(note = "This is a test implementation not suitable for real use")] pub mod test_estimator; -mod vector3; - -pub use crate::accelerometer_noise::AccelerometerNoise; -pub use crate::accelerometer_reading::AccelerometerReading; -pub use crate::euler_angles::EulerAngles; -pub use crate::gyroscope_bias::GyroscopeBias; -pub use crate::gyroscope_noise::GyroscopeNoise; -pub use crate::gyroscope_reading::GyroscopeReading; -pub use crate::magnetometer_noise::MagnetometerNoise; -pub use crate::magnetometer_reading::MagnetometerReading; -pub use crate::vector3::Vector3; +pub mod types; pub use crate::num_traits::*; + +/// Imports commonly used types and traits. +pub mod prelude { + pub use crate::num_traits::*; + pub use crate::types::Vector3; +} diff --git a/src/test_estimator.rs b/src/test_estimator.rs index 94154f5..cba7e37 100644 --- a/src/test_estimator.rs +++ b/src/test_estimator.rs @@ -1,8 +1,7 @@ -use crate::vector3::Vector3; -use crate::{ - AccelerometerNoise, AccelerometerReading, ArcSin, ArcTan, DetectGimbalLock, EulerAngles, - GyroscopeBias, GyroscopeNoise, GyroscopeReading, IsNaN, MagnetometerNoise, MagnetometerReading, - NormalizeAngle, +use crate::prelude::*; +use crate::types::{ + AccelerometerNoise, AccelerometerReading, EulerAngles, GyroscopeBias, GyroscopeNoise, + GyroscopeReading, MagnetometerNoise, MagnetometerReading, }; use core::ops::Neg; use minikalman::buffers::types::*; diff --git a/src/types.rs b/src/types.rs new file mode 100644 index 0000000..6b1dd46 --- /dev/null +++ b/src/types.rs @@ -0,0 +1,19 @@ +mod accelerometer_noise; +mod accelerometer_reading; +mod euler_angles; +mod gyroscope_bias; +mod gyroscope_noise; +mod gyroscope_reading; +mod magnetometer_noise; +mod magnetometer_reading; +mod vector3; + +pub use crate::types::accelerometer_noise::AccelerometerNoise; +pub use crate::types::accelerometer_reading::AccelerometerReading; +pub use crate::types::euler_angles::EulerAngles; +pub use crate::types::gyroscope_bias::GyroscopeBias; +pub use crate::types::gyroscope_noise::GyroscopeNoise; +pub use crate::types::gyroscope_reading::GyroscopeReading; +pub use crate::types::magnetometer_noise::MagnetometerNoise; +pub use crate::types::magnetometer_reading::MagnetometerReading; +pub use crate::types::vector3::Vector3; diff --git a/src/accelerometer_noise.rs b/src/types/accelerometer_noise.rs similarity index 100% rename from src/accelerometer_noise.rs rename to src/types/accelerometer_noise.rs diff --git a/src/accelerometer_reading.rs b/src/types/accelerometer_reading.rs similarity index 100% rename from src/accelerometer_reading.rs rename to src/types/accelerometer_reading.rs diff --git a/src/euler_angles.rs b/src/types/euler_angles.rs similarity index 100% rename from src/euler_angles.rs rename to src/types/euler_angles.rs diff --git a/src/gyroscope_bias.rs b/src/types/gyroscope_bias.rs similarity index 100% rename from src/gyroscope_bias.rs rename to src/types/gyroscope_bias.rs diff --git a/src/gyroscope_noise.rs b/src/types/gyroscope_noise.rs similarity index 100% rename from src/gyroscope_noise.rs rename to src/types/gyroscope_noise.rs diff --git a/src/gyroscope_reading.rs b/src/types/gyroscope_reading.rs similarity index 100% rename from src/gyroscope_reading.rs rename to src/types/gyroscope_reading.rs diff --git a/src/magnetometer_noise.rs b/src/types/magnetometer_noise.rs similarity index 100% rename from src/magnetometer_noise.rs rename to src/types/magnetometer_noise.rs diff --git a/src/magnetometer_reading.rs b/src/types/magnetometer_reading.rs similarity index 100% rename from src/magnetometer_reading.rs rename to src/types/magnetometer_reading.rs diff --git a/src/vector3.rs b/src/types/vector3.rs similarity index 98% rename from src/vector3.rs rename to src/types/vector3.rs index 1194b67..36bb2bb 100644 --- a/src/vector3.rs +++ b/src/types/vector3.rs @@ -1,5 +1,4 @@ -use crate::accelerometer_reading::AccelerometerReading; -use crate::magnetometer_reading::MagnetometerReading; +use crate::types::{AccelerometerReading, MagnetometerReading}; use core::borrow::Borrow; use core::fmt::{Debug, Formatter}; use core::ops::{Add, Mul, Neg, Sub};