#![warn(missing_docs)]
#[cfg(doctest)]
#[doc = include_str!("../README.md")]
pub struct CrateReadmeDocTests;
#[cfg(doctest)]
#[doc = include_str!("../../../README.md")]
pub struct RepoReadmeDocTests;
pub use phyz_math;
pub use phyz_model;
pub use phyz_rigid;
pub use phyz_math as math;
pub use phyz_model as model;
pub use phyz_rigid as rigid;
#[cfg(feature = "collision")]
pub use phyz_collision;
#[cfg(feature = "collision")]
pub use phyz_collision as collision;
#[cfg(feature = "contact")]
pub use phyz_contact;
#[cfg(feature = "contact")]
pub use phyz_contact as contact;
#[cfg(feature = "diff")]
pub use phyz_diff;
#[cfg(feature = "diff")]
pub mod diff {
#[allow(deprecated)]
pub use phyz_diff::analytical_step_jacobians;
pub use phyz_diff::rollout::{
AdjointGradients, AdjointRollout, CollisionMesh, ContactSetup, DofLayout,
FinalStateObjective, GroundContact, N_INERTIA_PARAMS, adjoint_rollout_gradient,
inertia_params, joint_nq, rollout_objective,
};
pub use phyz_diff::rollout::{adjoint, step};
pub use phyz_diff::{
StepJacobians, finite_diff_jacobians, rollout, semi_implicit_step_jacobians, symbolic,
};
pub use phyz_diff::{
ConvexAdjointError, ConvexAdjointGradients, ConvexContactRollout, contact_adjoint,
convex_adjoint_gradient, convex_rollout_objective,
};
}
pub mod determinism;
#[cfg(all(feature = "contact", feature = "diff"))]
pub mod sim;
#[cfg(all(feature = "contact", feature = "diff"))]
pub use sim::{Rk4Solver, SemiImplicitEulerSolver, Simulator, Solver};
#[cfg(feature = "collision")]
pub use collision::{
AABB, Collision, Ray, RayHit, epa_penetration, epa_penetration_rot, gjk_distance,
gjk_distance_rot, ray_cast, ray_intersect, sweep_and_prune,
};
#[cfg(feature = "contact")]
pub use contact::{
ContactMaterial, ContactProblem, ContactSolverConfig, find_contacts, find_ground_contacts,
solve_contacts,
};
pub use math::{DMat, DVec, GRAVITY, Mat3, Mat4, Vec3, skew};
pub use math::{Quat, SpatialInertia, SpatialMat, SpatialTransform, SpatialVec};
pub use model::{
Actuator, Body, GeomInstance, Geometry, Joint, JointType, Model, ModelBuilder, State,
};
pub use rigid::{
BodyKinematics, IkConfig, IkGoal, IkGoalKind, IkSolution, aba, aba_with_external_forces,
body_wrenches, crba, forward_kinematics, forward_kinematics_acc, rnea, solve_ik,
};