It is easier as I thought. Well, after I figured…
I kept quaternions all way through, so I did not need to transform it to Euler in the first place. I use ofNodes to implement vec3f orientations, get quaternions via .getOrientationQuad()…
To get offset value differences
ofQuaternion qIn (incoming data)
ofQuaternion qOff (offset data)
ofQuaternion qDiff (difference between offset and current data)
quatNode is the actually used element in 3D space
When data are coming in
quatNode.setOrientation(qIn.inverse() * qDiff)
To reset offset
qDiff = qIn * qOff.inverse();
I used vectors to run it with many gyro data (Motion Capture System).
Hope it helps others too.