mouseToPlaneCoords(mouseCoordinates) {
        // remember our ShaderPass objects don't have a scale property
        const scale = this.scale ? this.scale : tempVec2b.set(1, 1);

        // we need to adjust our plane document bounding rect to it's webgl scale
        const scaleAdjustment = tempVec2a.set(
            (this._boundingRect.document.width - this._boundingRect.document.width * scale.x) / 2,
            (this._boundingRect.document.height - this._boundingRect.document.height * scale.y) / 2,
        );

        // also we need to divide by pixel ratio
        const planeBoundingRect = {
            width: (this._boundingRect.document.width * scale.x) / this.renderer.pixelRatio,
            height: (this._boundingRect.document.height * scale.y) / this.renderer.pixelRatio,
            top: (this._boundingRect.document.top + scaleAdjustment.y) / this.renderer.pixelRatio,
            left: (this._boundingRect.document.left + scaleAdjustment.x) / this.renderer.pixelRatio,
        };

        // mouse position conversion from document to plane space
        return tempVec2a.set(
            (((mouseCoordinates.x - planeBoundingRect.left) / planeBoundingRect.width) * 2) - 1,
            1 - (((mouseCoordinates.y - planeBoundingRect.top) / planeBoundingRect.height) * 2)
        );
    }
This function takes the mouse position relative to the document and returns it relative to our plane
     It ranges from -1 to 1 on both axis

     params :
     @mouseCoordinates (Vec2 object): coordinates of the mouse

     returns :
     @mousePosition (Vec2 object): the mouse position relative to our plane in WebGL space coordinates
*