public static void Rotate(this IModelSpace model, float angleDegree, vec3 axis)
{
mat4 currentRotationMatrix = glm.rotate(model.RotationAngleDegree, model.RotationAxis);
mat4 newRotationMatrix = glm.rotate(angleDegree, axis);
mat4 latestRotationMatrix = newRotationMatrix * currentRotationMatrix;
Quaternion quaternion = latestRotationMatrix.ToQuaternion();
float latestAngle;
vec3 latestAxis;
quaternion.Parse(out latestAngle, out latestAxis);
model.RotationAngleDegree = latestAngle;
model.RotationAxis = latestAxis;
}