Rotate function
This is so stupid, but we felt pretty clever making it. Pls no haet
This commit is contained in:
		
							parent
							
								
									4424d237fb
								
							
						
					
					
						commit
						7bc6cdea78
					
				@ -3,6 +3,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "Arduino.h"
 | 
					#include "Arduino.h"
 | 
				
			||||||
#include <FastLED.h>
 | 
					#include <FastLED.h>
 | 
				
			||||||
 | 
					#include <math.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct LEDSelect {
 | 
					struct LEDSelect {
 | 
				
			||||||
	byte side;
 | 
						byte side;
 | 
				
			||||||
@ -55,6 +56,8 @@ void getNeighborLED(LEDSelect* origin, byte origin_dir, LEDSelect* Result);
 | 
				
			|||||||
void getRotNeighborLED(LEDSelect* origin, byte rot, LEDSelect* Result);
 | 
					void getRotNeighborLED(LEDSelect* origin, byte rot, LEDSelect* Result);
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
void translate(LEDSelect src, LEDSelect dst, CRGB* leds);
 | 
					void translate(LEDSelect src, LEDSelect dst, CRGB* leds);
 | 
				
			||||||
 | 
					// Rotates a side, in given direction, 0 - Clockwise, 1 - Anticlockwise
 | 
				
			||||||
 | 
					void rotate(byte side, bool dir, byte n, CRGB* leds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void initMap(void)
 | 
					void initMap(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -352,6 +355,21 @@ void translate(LEDSelect src, LEDSelect dst, CRGB* leds){
 | 
				
			|||||||
	leds[decodeLED(dst)] = leds[decodeLED(src)];
 | 
						leds[decodeLED(dst)] = leds[decodeLED(src)];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void rotate(byte side, bool direction, byte n, CRGB* leds)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						byte cyclus[8]; = {0, 3, 6, 7, 8, 5, 2, 1};
 | 
				
			||||||
 | 
						for (byte i = 0; i < n; i++)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							CRGB Saved = leds[cyclus[7 * direction]];
 | 
				
			||||||
 | 
							for(byte j = 8; j > 0; j--) {
 | 
				
			||||||
 | 
								leds[cyclus[j - (8 * !direction)]] = 
 | 
				
			||||||
 | 
									leds[cyclus[j - (8 * !direction) + (1 * -direction)]]; 
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							leds[cyclus[7 - (4 * direction)]] = Saved;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool setColor(LEDSelect selection, CRGB color, CRGB* leds)
 | 
					bool setColor(LEDSelect selection, CRGB color, CRGB* leds)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (selection.side == 255) {
 | 
						if (selection.side == 255) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user