Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- std::vector<LED_Arrangement*> LED_Arrangement::create_folded_arrangements(CRGBSet* new_leds, Strip_Parameters new_strip_parameters)
- {
- std::vector<LED_Arrangement*> temp_arrangement_vector;
- //CRGBSet* leds = new_leds;
- // TODO: change this to use an iterator over the Strip_Display_Mode enum
- for (int i = 0; i < 4; i++)
- {
- int cur_group_number = 0;
- LED_Group* temp_group = new LED_Group(cur_group_number);
- LED_Arrangement* temp_arrangement = new LED_Arrangement(Strip_Display_Mode(i));
- switch (i)
- {
- case 0:
- case 1:
- for (int j = 0; j < new_strip_parameters.width_in_leds; j++)
- {
- if (j % 2 == 1)
- {
- 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)));
- }
- else
- {
- 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)));
- }
- }
- temp_arrangement->add(temp_group);
- break;
- case 2:
- temp_group->add_to_group(new_leds);
- temp_arrangement->add(temp_group);
- break;
- case 3:
- temp_group->add_to_group(new CRGBSet(new_leds[0](new_strip_parameters.length_in_leds / 2 - 1, 0)));
- temp_group->add_to_group(new CRGBSet(new_leds[0](new_strip_parameters.length_in_leds / 2, new_strip_parameters.length_in_leds - 1)));
- 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)));
- 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)));
- temp_arrangement->add(temp_group);
- }
- temp_arrangement_vector.push_back(temp_arrangement);
- }
- MEM;
- return temp_arrangement_vector;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement