ProtoTracer  1.0
Real-time 3D rendering and animation engine
Loading...
Searching...
No Matches
KaiborgV1D1Xenrax.h
Go to the documentation of this file.
1#include <Arduino.h>
2#include <OctoWS2811.h>
3
4#include "Controller.h"
5#include "Render/Camera.h"
6#include "Flash/PixelGroups/KaiborgV1Pixels.h"
7#include "Flash/PixelGroups/XenraxStrip.h"
8#include "Flash/PixelGroups/XenraxSquare.h"
9#include "Flash/PixelGroups/XenraxRing.h"
10
11const int ledsPerStrip = 346;
12DMAMEM int displayMemory[346 * 6];
13int drawingMemory[346 * 6];
14const int config = WS2811_GRB | WS2811_800kHz;
15
17
19private:
21
22 //X: left/right, Y: up/down, Z: forward/back
25 Transform camFinTransform = Transform(Vector3D(0.0f, 0.0f, 1.0f), Vector3D(180.0f, 0, -500.0f), Vector3D(1, 1, 1));//Rotation/position/scale
26 Transform camSquTransform = Transform(Vector3D(0.0f, 0.0f, 1.0f), Vector3D(180.0f, 0, -500.0f), Vector3D(1, 1, 1));//Use Z axis to rotate panels
27 Transform camRinTransform = Transform(Vector3D(0.0f, 0.0f, 1.0f), Vector3D(180.0f, 0, -500.0f), Vector3D(1, 1, 1));//USE XY to move panels
28
34
40
42
43public:
45
46 void Initialize() override{
47 leds.begin();
48 leds.show();
49 }
50
51 void Display() override {
52 int offset;
53
54 for (int i = 0; i < 571; i++){
57
59
60 if(i < 36){
63 }
64 }
65
66 for (int i = 0; i < 571; i++) {
67 if (i < 346){
68 offset = i + 225;
69
70 leds.setPixel(i + 346 * 4, camLeftPixels.GetColor(offset)->R, camLeftPixels.GetColor(offset)->G, camLeftPixels.GetColor(offset)->B);//Pin 7
71 leds.setPixel(i + 346 * 5, camRghtPixels.GetColor(i)->R, camRghtPixels.GetColor(i)->G, camRghtPixels.GetColor(i)->B);//Pin 8
72 }
73 else{
74 offset = i - 346;
75
76 leds.setPixel(i + 346 * 6 - 346, camLeftPixels.GetColor(offset)->R, camLeftPixels.GetColor(offset)->G, camLeftPixels.GetColor(offset)->B);//Pin 8
77 leds.setPixel(i + 346 * 7 - 346, camRghtPixels.GetColor(i)->R, camRghtPixels.GetColor(i)->G, camRghtPixels.GetColor(i)->B);//Pin 8
78 }
79
80 if (i < 27){
81 leds.setPixel(i + 346 * 2, camFinPixels.GetColor(i)->R, camFinPixels.GetColor(i)->G, camFinPixels.GetColor(i)->B);
82 leds.setPixel(i + 346 * 3, camFinPixels.GetColor(i)->R, camFinPixels.GetColor(i)->G, camFinPixels.GetColor(i)->B);
83 }
84
85 if(i < 36){
86 leds.setPixel(i + 346 * 2 + 27, camSquPixels.GetColor(i)->R, camSquPixels.GetColor(i)->G, camSquPixels.GetColor(i)->B);
87 leds.setPixel(i + 346 * 3 + 27, camSquPixels.GetColor(i)->R, camSquPixels.GetColor(i)->G, camSquPixels.GetColor(i)->B);
88 leds.setPixel(i + 346 * 2 + 27 + 36, camRinPixels.GetColor(i)->R, camRinPixels.GetColor(i)->G, camRinPixels.GetColor(i)->B);
89 leds.setPixel(i + 346 * 3 + 27 + 36, camRinPixels.GetColor(i)->R, camRinPixels.GetColor(i)->G, camRinPixels.GetColor(i)->B);
90 }
91 }
92
93 leds.show();
94 }
95
96 void SetPixels(uint8_t strip, uint16_t led, RGBColor rgb){
97 leds.setPixel(346 * strip + led, rgb.R, rgb.G, rgb.B);//Pin 8
98 }
99};
Declares the Controller base class for managing lighting controllers.
DMAMEM int displayMemory[346 *6]
const int config
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config)
int drawingMemory[346 *6]
const int ledsPerStrip
Vector2D XenraxRing[36]
Definition XenraxRing.h:3
Vector2D XenraxSquare[36]
Definition XenraxSquare.h:3
Vector2D XenraxStrip[27]
Definition XenraxStrip.h:3
Base class for managing camera properties and transformations.
Definition CameraBase.h:26
Manages camera orientation and axis alignment.
@ YUp
Up along the positive Y-axis.
@ ZForward
Forward along the positive Z-axis.
Manages camera behavior and pixel groups.
Definition Camera.h:27
Base class for managing brightness and display operations of lighting controllers.
Definition Controller.h:25
uint8_t accentBrightness
Current accent brightness level.
Definition Controller.h:33
uint8_t brightness
Current brightness level.
Definition Controller.h:32
uint8_t maxBrightness
Maximum allowed brightness level.
Definition Controller.h:34
@ ZEROTOMAX
Traverse from minimum to maximum indices.
Definition IPixelGroup.h:32
@ MAXTOZERO
Traverse from maximum to minimum indices.
Definition IPixelGroup.h:33
PixelGroup< 36 > camSquPixels
void Initialize() override
Initializes the controller.
PixelGroup< 27 > camFinPixels
void SetPixels(uint8_t strip, uint16_t led, RGBColor rgb)
void Display() override
Updates and displays content on the lighting system.
PixelGroup< 571 > camLeftPixels
PixelGroup< 571 > camRghtPixels
KaiborgV1D1Controller(uint8_t maxBrightness)
PixelGroup< 36 > camRinPixels
Manages a collection of pixels with positions, colors, and spatial relationships.
Definition PixelGroup.h:27
RGBColor * GetColor(uint16_t count) override
Retrieves the color of a specific pixel.
Represents an RGB color and provides methods for manipulation.
Definition RGBColor.h:23
RGBColor Scale(const uint8_t &maxBrightness)
Scales the brightness of the color to a maximum value.
Definition RGBColor.cpp:29
uint8_t B
Blue component of the color (0-255).
Definition RGBColor.h:27
uint8_t G
Green component of the color (0-255).
Definition RGBColor.h:26
uint8_t R
Red component of the color (0-255).
Definition RGBColor.h:25
Represents a 3D transformation including position, rotation, and scale.
Definition Transform.h:22
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.
Definition Vector3D.h:26