Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. std::vector<LED_Arrangement*> LED_Arrangement::create_folded_arrangements(CRGBSet* new_leds, Strip_Parameters new_strip_parameters)
  2. {
  3.     std::vector<LED_Arrangement*> temp_arrangement_vector;
  4.     //CRGBSet* leds = new_leds;
  5.  
  6.     // TODO: change this to use an iterator over the Strip_Display_Mode enum
  7.     for (int i = 0; i < 4; i++)
  8.     {
  9.         int cur_group_number = 0;
  10.         LED_Group* temp_group = new LED_Group(cur_group_number);
  11.         LED_Arrangement* temp_arrangement = new LED_Arrangement(Strip_Display_Mode(i));
  12.  
  13.         switch (i)
  14.         {
  15.         case 0:
  16.         case 1:
  17.             for (int j = 0; j < new_strip_parameters.width_in_leds; j++)
  18.             {
  19.                 if (j % 2 == 1)
  20.                 {
  21.                     temp_group->add_to_group(new CRGBSet(new_leds[0](new_strip_parameters.length_in_leds* (j + 1) - 1, new_strip_parameters.length_in_leds * j)));
  22.                 }
  23.                 else
  24.                 {
  25.                     temp_group->add_to_group(new CRGBSet(new_leds[0](new_strip_parameters.length_in_leds * j, new_strip_parameters.length_in_leds * (j + 1) - 1)));
  26.                 }
  27.             }
  28.             temp_arrangement->add(temp_group);
  29.             break;
  30.         case 2:
  31.             temp_group->add_to_group(new_leds);
  32.             temp_arrangement->add(temp_group);
  33.             break;
  34.  
  35.         case 3:
  36.             temp_group->add_to_group(new CRGBSet(new_leds[0](new_strip_parameters.length_in_leds / 2 - 1, 0)));
  37.  
  38.             temp_group->add_to_group(new CRGBSet(new_leds[0](new_strip_parameters.length_in_leds / 2, new_strip_parameters.length_in_leds - 1)));
  39.  
  40.             temp_group->add_to_group(new CRGBSet(new_leds[0](new_strip_parameters.length_in_leds * 3 / 2 - 1, new_strip_parameters.length_in_leds)));
  41.  
  42.             temp_group->add_to_group(new CRGBSet(new_leds[0](new_strip_parameters.length_in_leds * 3 / 2, new_strip_parameters.length_in_leds * 2 - 1)));
  43.  
  44.             temp_arrangement->add(temp_group);
  45.         }
  46.  
  47.         temp_arrangement_vector.push_back(temp_arrangement);
  48.     }
  49.  
  50.     MEM;
  51.  
  52.     return temp_arrangement_vector;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement