drawLayoutMode(xOffset = 0, yOffset = 0){
        var ctx = simulationArea.context;
        if(layoutModeGet()) {
            this.checkHover();
        }
        if (this.subcircuitMetadata.x * this.scope.scale + this.scope.ox < -this.layoutProperties.rightDimensionX * this.scope.scale  || this.subcircuitMetadata.x * this.scope.scale + this.scope.ox > width + this.layoutProperties.leftDimensionX * this.scope.scale  || this.subcircuitMetadata.y * this.scope.scale + this.scope.oy < -this.layoutProperties.downDimensionY * this.scope.scale  || this.subcircuitMetadata.y * this.scope.scale + this.scope.oy > height + this.layoutProperties.upDimensionY * this.scope.scale) return;

        if (this.subcircuitMetadata.showLabelInSubcircuit) {
            var rX = this.layoutProperties.rightDimensionX;
            var lX = this.layoutProperties.leftDimensionX;
            var uY = this.layoutProperties.upDimensionY;
            var dY = this.layoutProperties.downDimensionY;

            // this.subcircuitMetadata.labelDirection
            if (this.subcircuitMetadata.labelDirection == "LEFT") {
                ctx.beginPath();
                ctx.textAlign = "right";
                ctx.fillStyle = "black";
                fillText(ctx, this.label, this.subcircuitMetadata.x + xOffset - lX - 10, this.subcircuitMetadata.y + yOffset + 5, 10);
                ctx.fill();
            } else if (this.subcircuitMetadata.labelDirection == "RIGHT") {
                ctx.beginPath();
                ctx.textAlign = "left";
                ctx.fillStyle = "black";
                fillText(ctx, this.label, this.subcircuitMetadata.x + xOffset + rX + 10, this.subcircuitMetadata.y + yOffset + 5, 10);
                ctx.fill();
            } else if (this.subcircuitMetadata.labelDirection == "UP") {
                ctx.beginPath();
                ctx.textAlign = "center";
                ctx.fillStyle = "black";
                fillText(ctx, this.label, this.subcircuitMetadata.x + xOffset, this.subcircuitMetadata.y + yOffset + 5 - uY - 10, 10);
                ctx.fill();
            } else if (this.subcircuitMetadata.labelDirection == "DOWN") {
                ctx.beginPath();
                ctx.textAlign = "center";
                ctx.fillStyle = "black";
                fillText(ctx, this.label, this.subcircuitMetadata.x + xOffset, this.subcircuitMetadata.y + yOffset + 5 + dY + 10, 10);
                ctx.fill();
            }
        }
        // calls the subcircuitDraw function in the element to draw it to canvas
        this.subcircuitDraw(xOffset, yOffset);
    }
Draws element in layout mode (inside the subcircuit)
        @param {number} xOffset - x position of the subcircuit
        @param {number} yOffset - y position of the subcircuit 

        Called by subcirucit.js/customDraw() - for drawing as a part of another circuit
        and layoutMode.js/renderLayout() -  for drawing in layoutMode