#![forbid(unsafe_code)]
#![deny(missing_docs)]
pub mod abm4;
pub mod attach;
pub mod body_init;
pub mod constraints;
pub mod forces;
pub mod frame_attach;
pub mod gauss_jackson;
pub mod integration;
pub mod kinematic_joint;
pub mod kinematic_propagation;
pub mod mass;
pub mod mass_body;
pub mod mass_storage;
pub mod propagation;
pub mod rkf45;
pub mod rotational;
pub mod state;
pub mod subtree;
pub mod wrench;
pub use abm4::{abm4_translational_step, Abm4State};
pub use attach::{combine_states_at_attach, AttachCombineInputs, AttachCombineOutputs};
pub use body_init::{
compute_ned_rotation, init_from_lvlh, init_from_mean_anomaly, init_from_ned,
init_from_orbital_elements, init_from_time_periapsis,
};
pub use constraints::{apply_constraint, BaumgarteSolver, HolonomicConstraint, PendulumConstraint};
pub use forces::{
collect_forces, compute_frame_derivatives, compute_t_inertial_struct,
compute_translational_acceleration, compute_translational_derivatives, DynamicsConfig,
ForceContributions, FrameDerivatives, GravityAcceleration, TotalForce,
};
pub use frame_attach::{derive_frame_attached_state, FrameAttachInputs};
pub use gauss_jackson::config::GaussJacksonConfig;
pub use gauss_jackson::{GaussJacksonState, IntegratorResult};
pub use integration::{rk4_sixdof_step, rk4_translational_step, IntegratorType};
pub use kinematic_joint::{
evaluate as evaluate_joint_kinematics, evaluate_closure as evaluate_closure_kinematics,
evaluate_model as evaluate_joint_kinematics_model,
evaluate_multi_dof as evaluate_multi_dof_kinematics,
evaluate_sinusoidal as evaluate_sinusoidal_kinematics, ClosureJointKinematicsSpec,
JointKinematicsModel, JointKinematicsSpec, MultiDofJointKinematicsSpec, SingleDofKinematics,
SinusoidalJointKinematicsSpec, MAX_MULTI_DOF_AXES,
};
pub use kinematic_propagation::{
compute_kinematic_child_state, compute_kinematic_child_state_dquat,
compute_kinematic_child_state_typed, derive_kinematic_child_from_states, KinematicChildInputs,
KinematicChildOutputs,
};
pub use mass::{MassProperties, MassPropertiesTyped, INERTIA_CONSISTENCY_TOL};
pub use mass_body::{
point_mass_inertia, MassBody, MassBodyId, MassPoint, MassPointState, MassTree,
};
pub use mass_storage::{
compute_node_composite, finalize_child_in_parent_frame, recompute_composites_via_storage,
MassNodeOutputs, MassNodeView, MassStorage,
};
pub use propagation::{propagate_body_frames, propagate_forward, propagate_reverse};
pub use rkf45::{
rkf45_adaptive_sixdof_step, rkf45_adaptive_translational_step, rkf45_sixdof_step,
rkf45_translational_step, AdaptiveConfig, AdaptiveResult,
};
pub use rotational::{
compute_left_quat_deriv, compute_rotational_acceleration, normalize_integ, RotationalState,
RotationalStateTyped, SixDofState, SixDofStateTyped,
};
pub use state::TranslationalState;
pub use subtree::DetachedSubtreeState;
pub use wrench::{shift_wrench_to_parent, shift_wrench_to_parent_typed, Wrench};