I've run into a wonky (but semi-explicable) behavior on RGBSets and I'm wondering if

I’ve run into a wonky (but semi-explicable) behavior on RGBSets and I’m wondering if there’s any way to avoid manual iteration.

Given a LED array 0-11, an array of pointers subset[0] and subset[1] to RGBSets are made of LED(5,0) and LED(6,11).

The 5,0 successfully makes it so that subset[0][0] is LED 5, while [0][1] is 4, [0][2] is 3, and so on.

When I try to access subset 0 via the iterator though, either as subset[0]->operator()(0,5) or (*subset[0])(0,5) it ends up addressing LEDs against the main array in positive sequential order instead of the order of the set. So, for example, (2,3) will address 7 and 8, rather than 3 and 2. Then things like fill_rainbow address the set, but in LED incremental order rather than set incremental order.

Is there any way I can correct pointers or references or such to get the built-in iterators to address it in the reverse order that it’s stored in, or am I stuck losing the that benefit of RGBSets and having to make my own iterators anyway?

I’d have to take a look - but what you’re doing is making a subset of a subset - which I think is a bit undefined when one subset is reversed. I’ll add that to the list of things to poke at when I get back to working on this stuff. There’s a bunch of edge cases where I’m unhappy with how the sets work - and I’m thinking about different ways of doing/referencIng this stuff in the future.

@Daniel_Garcia Thank you for the awesome work you put into all this. I do usually find the weird ways to try to do things. I’m making due for the time being, so I won’t cross my fingers and hope for a hidden thing that I didn’t see. I’ll make my own happy loops then. ^.^