draw-rectangle

bradzilla84/arduino-tft-lib/draw-rectangle

Draw a Rectangle
draw-rectangle
@/draw-rectangle
Draw a Rectangle
DEV@/tft-device
From Device Node
ColourDraw@/colour
Colour to Draw With
ColourFill@/colour
Colour to Fill With
X1number
X Start Position
Y1number
Y Start Position
Widthnumber
Width(on the X axis)
Heightnumber
Height (on the Y axis)
INITpulse
Redraw the display
draw-rectangle
DEV
ColourDraw
ColourFill
X1
Y1
Width
Height
INIT
OUT
OK
OKpulse
Completed OK
OUT@/tft-device
To use the node in your project you should have the bradzilla84/arduino-tft-lib library installed. Use the “File → Add Library” menu item in XOD IDE if you don’t have it yet. See Using libraries for more info.

C++ implementation

struct State {
};

{{ GENERATED_CODE }}

void evaluate(Context ctx) {
    // The node responds only if there is an input pulse
    if (!isInputDirty<input_INIT>(ctx)){
    emitValue<output_OUT>(ctx, getValue<input_DEV>(ctx));
        return;}

    // Get a pointer to the `TFT` class instance
    auto Display = getValue<input_DEV>(ctx);
    auto ColourFill = getValue<input_ColourFill>(ctx);
    auto ColourDraw = getValue<input_ColourDraw>(ctx);

    if (!isInputDirty<input_ColourDraw>(ctx)){//Do we want a otline? (is it connected)
    Display->noStroke();
    }
    else
    {
    Display->stroke(ColourDraw.Red,ColourDraw.Green,ColourDraw.Blue);
    }

    if (!isInputDirty<input_ColourFill>(ctx)){//Do we want to Fill? (is it connected)
    Display->noFill();
    }
    else
    {
    Display->fill(ColourFill.Red,ColourFill.Green,ColourFill.Blue);
    }


    Display->rect(getValue<input_X1>(ctx),getValue<input_Y1>(ctx),getValue<input_Width>(ctx),getValue<input_Height>(ctx));

    // Pulse that module initialized successfully
    emitValue<output_OUT>(ctx, Display);
    emitValue<output_OK>(ctx, 1);
}