_getSizes() {
        // if this is a fbo texture, its size is the same as its parent
        if(this.sourceType === "fbo") {
            return {
                parentWidth: this._parent._boundingRect.document.width,
                parentHeight: this._parent._boundingRect.document.height,
                sourceWidth: this._parent._boundingRect.document.width,
                sourceHeight: this._parent._boundingRect.document.height,
                xOffset: 0,
                yOffset: 0,
            };
        }

        // remember our ShaderPass objects don't have a scale property
        const scale = this._parent.scale ? tempVec2.set(this._parent.scale.x, this._parent.scale.y) : tempVec2.set(1, 1);

        const parentWidth  = this._parent._boundingRect.document.width * scale.x;
        const parentHeight = this._parent._boundingRect.document.height * scale.y;

        const sourceWidth = this._size.width;
        const sourceHeight = this._size.height;

        const sourceRatio = sourceWidth / sourceHeight;
        const parentRatio = parentWidth / parentHeight;

        // center image in its container
        let xOffset = 0;
        let yOffset = 0;

        if(parentRatio > sourceRatio) { // means parent is larger
            yOffset = Math.min(0, parentHeight - (parentWidth * (1 / sourceRatio)));
        }
        else if(parentRatio < sourceRatio) { // means parent is taller
            xOffset = Math.min(0, parentWidth - (parentHeight * sourceRatio));
        }

        return {
            parentWidth: parentWidth,
            parentHeight: parentHeight,
            sourceWidth: sourceWidth,
            sourceHeight: sourceHeight,
            xOffset: xOffset,
            yOffset: yOffset,
        };
    }
This is used to calculate how to crop/center an texture

     returns:
     @sizes (obj): an object containing plane sizes, source sizes and x and y offset to center the source in the plane
*