Angular momentum is equal the moment of inertial time the angular velocity.
that is. let
L = angular momentum
I = the inertia
w = angula velocity
then the equation is
L = I * w
According to all experiment and observations, even at the sub atomic level, angular momentum is always conserved. This means that the angular momentum at time t0 should be equal to the angular momentum at time t2, in the absent of external torques.
we also know that to get the external torque, you take the time derivative of the above equation and this time derivative must equal the external torque.
T = L' = I' * w + I * w'
here we can call the derivative of the angular velocity angular acceleration alpha, w' = a
a rotating body has a changing inertia matrix over time, and the derivative of a time varying quantity is the cross product of the angular velocity time the quantity. I' = w x I where x means the cross product operator, so we get
T = w x I * w + I * a
moving terms around and noticing that L = I * w, we get the equation for external torque acting on a body.
- Code: Select all
I * a = T - w x L
now some engines do not even consider the last turn w x L.
most engines, including newton until 4.0, the secund term w x L is optional, and the application has to select for it.
With Newton 4.0 this term is not longer an option, it is considered in all calculations,
the only way to disabled it is by making the inertia of the body spherical.
you may be right in not consider this an important part, for me on the other hand, conservation of momentum, alone with increase in entropy over time, are the two most important laws of nature human has even discovered, entropy is not part of a rigid body simulator, but conservation of momentum is.
so in my book is not just enough to say we have but can't be use in practice, for me it is a fundamental part of the simulation.
but like I said, if what you get from those engines is satisfactory for what you seek, them you can just ignore this and go with what is best for you.
I added the skeleton of the ndJointDryRollingFriction but is not populated yet, I will do that tomorrow morning and add some test case demos.