added rotation by quaternion