I was just looking at the multiple controller examples but don't think I see

I was just looking at the multiple controller examples but don’t think I see what I’m looking for:

I have short three strips of LEDs strung head to tail, but in a 3 x 5 array. Hopefully this will illustrate reasonably. Dashes indicate strip, pipe | indicates connection to adjacent strip. The single data line would come in to one of the strips with a free end.

----------
---------

I’d like to mirror all three strips, which means I need to reverse the orientation of one of the strip’s data since it’s physically reversed to the other two. How could something like this be accomplished without a bunch of manual color swapping?

Perhaps a function that takes the leds[] array (0-14) and returns a re-arranged version prior to FastLED.show() (sending back [0, … 4, 9, … 5, 10, … 14])?

Thanks for any tips or references!

This is what I tried, which ended up working. Thinking there may very well be another way:

// length of unit strip, and array for unit
// as well as true, full-length strip of 15
#define NUM_LEDS    5
CRGB unit[NUM_LEDS];
CRGB leds[NUM_LEDS * 3];

void setup()
{
  
// add full strip
 FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS * 3)

}

void loop()
{

  // this or whatever code defines a unit
  fill_rainbow(unit, NUM_LEDS, hue, delta);
  
  // cycle through and copy unit into main
  for(int i = 0; i < 5; i++)
  {
  	leds[i] = unit[i];
  	leds[5 + i] = unit[4 - i];
  	leds[10 + i] = unit[i];

  }

  FastLED.show();

}