@@ -47,6 +47,8 @@ public class RigidBody extends CollisionBody {
4747 private final Vector3 mExternalTorque = new Vector3 ();
4848 private final Vector3 mLinearVelocity = new Vector3 ();
4949 private final Vector3 mAngularVelocity = new Vector3 ();
50+ private float mLinearDamping ;
51+ private float mAngularDamping ;
5052
5153 /**
5254 * Constructs a new rigid body from its transform, mass, local inertia tensor, collision shape and ID.
@@ -64,6 +66,8 @@ public RigidBody(Transform transform, float mass, Matrix3x3 inertiaTensorLocal,
6466 mInertiaTensorLocalInverse = inertiaTensorLocal .getInverse ();
6567 mMassInverse = 1 / mass ;
6668 mIsGravityEnabled = true ;
69+ mLinearDamping = 0 ;
70+ mAngularDamping = 0 ;
6771 }
6872
6973 /**
@@ -251,4 +255,46 @@ public void setMaterial(Material material) {
251255 public Material getMaterial () {
252256 return mMaterial ;
253257 }
258+
259+ /**
260+ * Returns the linear velocity damping factor.
261+ *
262+ * @return The linear damping
263+ */
264+ public float getLinearDamping () {
265+ return mLinearDamping ;
266+ }
267+
268+ /**
269+ * Sets the linear damping factor.
270+ *
271+ * @param linearDamping The liner damping
272+ */
273+ public void setLinearDamping (float linearDamping ) {
274+ if (linearDamping < 0 ) {
275+ throw new IllegalArgumentException ("Linear damping must be greater or equal to 0" );
276+ }
277+ mLinearDamping = linearDamping ;
278+ }
279+
280+ /**
281+ * Returns the angular velocity damping factor.
282+ *
283+ * @return The angular damping
284+ */
285+ public float getAngularDamping () {
286+ return mAngularDamping ;
287+ }
288+
289+ /**
290+ * Sets the angular damping factor.
291+ *
292+ * @param angularDamping The angular damping
293+ */
294+ public void setAngularDamping (float angularDamping ) {
295+ if (angularDamping < 0 ) {
296+ throw new IllegalArgumentException ("Angular damping must be greater or equal to 0" );
297+ }
298+ mAngularDamping = angularDamping ;
299+ }
254300}
0 commit comments