public Quaternion opposite(Quaternion store) {
        if (store == null)
            store = new Quaternion();
        
        Vector3f axis = new Vector3f();
        float angle = toAngleAxis(axis);

        store.fromAngleAxis((float)Math.PI + angle, axis);
        return store;
    }