generate-sequence

wayland/generate-sequence/generate-sequence

Generate a linear sequence of numbers.
generate-sequence
@/generate-sequence
Generate a linear sequence of numbers.
Startnumber
Sequence start value.
Stopnumber
Sequence end value. Should be greater than start value.
Stepnumber
Step size. Should be greater than zero.
UPDpulse
Update. Begin generation of sequence.
generate-sequence
Start
Stop
Step
UPD
N
Next
Done
Donepulse
Pulse when last number in sequence has been output.
Nextpulse
Pulse each time a new number in the sequence is generated.
Nnumber
Number in sequence.
To use the node in your project you should have the wayland/generate-sequence 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

node {
    // Internal state variables defined at this level persists across evaluations
    Number n;
    Number start;
    Number stop;
    Number step;
    bool update;

    void evaluate(Context ctx) {
        if(isInputDirty<input_UPD>(ctx)) {
            start = getValue<input_Start>(ctx);
            stop = getValue<input_Stop>(ctx);
            step = getValue<input_Step>(ctx);
            n = start;
            update = true;
        }

        if (update) {
            if (n <= stop) {
                emitValue<output_N>(ctx, n);
                emitValue<output_Next>(ctx, 1);
                n += step;
                setImmediate();
            }
            else
            {
                update = false;
                emitValue<output_Done>(ctx, 1);
            }
        }
        
    }
}