26 Real dt = this->stateTimeStep()->getValue();
28 auto center = this->stateCenter()->getValue();
29 auto trans_velocity = this->stateVelocity()->getValue();
30 auto angular_velocity = this->stateAngularVelocity()->getValue();
32 auto quat = this->stateQuaternion()->getValue();
34 auto rot = this->stateRotationMatrix()->getValue();
36 auto inertia = this->stateInertia()->getValue();
37 auto initial_inertia = this->stateInitialInertia()->getValue();
39 trans_velocity += this->varGravity()->getValue() * dt;
40 center += trans_velocity * dt;
43 rot =
quat.toMatrix3x3();
46 Quat(angular_velocity[0], angular_velocity[1], angular_velocity[2], 0.0)
49 inertia = rot * initial_inertia * rot.inverse();
51 this->stateCenter()->setValue(center);
52 this->stateVelocity()->setValue(trans_velocity);
53 this->stateQuaternion()->setValue(
quat);
54 this->stateRotationMatrix()->setValue(rot);
55 this->stateInertia()->setValue(inertia);
void updateStates() override