avian3d/
type_registration.rs1use crate::{
2 prelude::*,
3 sync::{ancestor_marker::AncestorMarker, PreviousGlobalTransform, SyncConfig},
4};
5use bevy::prelude::*;
6use dynamics::solver::{schedule::SubstepCount, SolverConfig};
7
8pub struct PhysicsTypeRegistrationPlugin;
10
11impl Plugin for PhysicsTypeRegistrationPlugin {
12 fn build(&self, app: &mut App) {
13 app.register_type::<Time<Physics>>()
14 .register_type::<Time<Substeps>>()
15 .register_type::<SubstepCount>()
16 .register_type::<SleepingThreshold>()
17 .register_type::<DeactivationTime>()
18 .register_type::<Gravity>()
19 .register_type::<RigidBody>()
20 .register_type::<RigidBodyDisabled>()
21 .register_type::<Sleeping>()
22 .register_type::<SleepingDisabled>()
23 .register_type::<TimeSleeping>()
24 .register_type::<Position>()
25 .register_type::<Rotation>()
26 .register_type::<PreSolveAccumulatedTranslation>()
27 .register_type::<PreviousRotation>()
28 .register_type::<PreviousGlobalTransform>()
29 .register_type::<AccumulatedTranslation>()
30 .register_type::<LinearVelocity>()
31 .register_type::<AngularVelocity>()
32 .register_type::<PreSolveLinearVelocity>()
33 .register_type::<PreSolveAngularVelocity>()
34 .register_type::<MaxLinearSpeed>()
35 .register_type::<MaxAngularSpeed>()
36 .register_type::<Restitution>()
37 .register_type::<Friction>()
38 .register_type::<LinearDamping>()
39 .register_type::<AngularDamping>()
40 .register_type::<ExternalForce>()
41 .register_type::<ExternalTorque>()
42 .register_type::<ExternalImpulse>()
43 .register_type::<ExternalAngularImpulse>()
44 .register_type::<GravityScale>()
45 .register_type::<ColliderDensity>()
46 .register_type::<ColliderMassProperties>()
47 .register_type::<LockedAxes>()
48 .register_type::<ColliderOf>()
49 .register_type::<RigidBodyColliders>()
50 .register_type::<Dominance>()
51 .register_type::<ColliderAabb>()
52 .register_type::<CollisionLayers>()
53 .register_type::<CollidingEntities>()
54 .register_type::<CoefficientCombine>()
55 .register_type::<Sensor>()
56 .register_type::<ColliderTransform>()
57 .register_type::<SpeculativeMargin>()
58 .register_type::<SweptCcd>()
59 .register_type::<CollisionMargin>()
60 .register_type::<NarrowPhaseConfig>()
61 .register_type::<SolverConfig>()
62 .register_type::<SyncConfig>()
63 .register_type::<AncestorMarker<RigidBody>>()
64 .register_type::<AncestorMarker<ColliderMarker>>()
65 .register_type::<RayCaster>()
66 .register_type::<DistanceJoint>()
67 .register_type::<FixedJoint>()
68 .register_type::<PrismaticJoint>()
69 .register_type::<RevoluteJoint>()
70 .register_type::<PreSolveRotation>()
71 .register_type::<GlobalAngularInertia>();
72
73 #[cfg(feature = "default-collider")]
74 app.register_type::<ColliderConstructor>()
75 .register_type::<ColliderConstructorHierarchy>()
76 .register_type::<crate::collision::collider::ColliderConstructorHierarchyConfig>()
77 .register_type::<ShapeCaster>();
78
79 #[cfg(feature = "3d")]
80 app.register_type::<SphericalJoint>();
81 }
82}