Why integrate quaternion of chassis transform compute this way in integrateBody ?

//Integrate quaternion.
PxQuat wq(w.x,w.y,w.z,0.0f);
PxQuat q=t.q;
PxQuat qdot=wq*q*(dt*0.5f);
q+=qdot;
q.normalize();
t.q=q;

after compute the chassis force/torque ,
in func integrateBody,
update the linear and angular velocity of chassis

w is the angular velocity of the chassis

what’s meaning of wq(w.x,w.y,w.z,0.0f),why vec3 → quat in this way?
I just know a rotation mat3 → quat / quat → mat3

why qdot compute just multiply wq to get the new t.q ?

fortunately I find the differential equation about quaternion

dq/dt = 0.5 * w * q;

So It’s clear now…