I have (somewhat blindly) been using quaternions for rotations in physics rigid body simulation for a while, but recently started getting confused about how quaternion rotations are generally defined and how I do it (based on the book Physics for game developers).
In the book you have an angular velocity angVel and a time step dt as well as an initial orientation.
It steps as follows
orientation += 0.5*orientation*angVel * dt
where the quaternion-vector multiplication is done by first converting the vector xyz to the quaternion xyz,0
This works, but everywhere else the procedure is instead to make a quaternion, which defines the time integrated angVel, over dt, and then multiply it on orientation. It essentially converts angVel*dt into a rotation (as makes perfect sense) which is then applied to the original orientation through multiplication, as seen here with better syntax https://math.stackexchange.com/questions/39553/how-do-i-apply-an-angular-velocity-vector3-to-a-unit-quaternion-orientation
My question is what 0.5 * quaternion * vector * scalar conceptually is in the above and what adding this resulting quaternion to my orientation is, considering you usually multiply, and not add, to rotate.