Loading [MathJax]/extensions/tex2jax.js
ProtoTracer
1.0
Real-time 3D rendering and animation engine
Toggle main menu visibility
Main Page
Related Pages
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
~
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
b
c
d
e
f
g
h
l
m
o
r
s
t
u
x
y
z
Related Symbols
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
k
l
m
n
o
p
r
s
v
w
x
Functions
Variables
_
a
c
d
h
k
l
p
v
w
x
Macros
a
b
c
d
e
f
g
h
l
m
n
p
r
s
Namespaces
Namespace List
Namespace Members
All
Variables
•
All
Classes
Namespaces
Files
Functions
Variables
Enumerations
Enumerator
Friends
Macros
Pages
Loading...
Searching...
No Matches
BetaProtoControllerOctoWS2811.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/ProtoDRMini.h"
8
#include "Flash/PixelGroups/HertzMini.h"
9
10
const
int
ledsPerStrip
= 346;
11
DMAMEM
int
displayMemory
[346 * 6];
12
int
drawingMemory
[346 * 6];
13
const
int
config
= WS2811_GRB | WS2811_800kHz;
14
15
OctoWS2811
leds
(
ledsPerStrip
,
displayMemory
,
drawingMemory
,
config
);
16
17
class
ProtoV2Controller
:
public
Controller
{
18
private
:
19
CameraLayout
cameraLayout
=
CameraLayout
(
CameraLayout::ZForward
,
CameraLayout::YUp
);
20
21
Transform
camRghtFrntTransform
=
Transform
(
Vector3D
(0.0f, 27.0f, 0.0f),
Vector3D
(1.0f, 0, -500.0f+14.0f),
Vector3D
(1, 1, 1));
22
Transform
camLeftFrntTransform
=
Transform
(
Vector3D
(0.0f, -27.0f, 0.0f),
Vector3D
(1.0f, 0, -500.0f-14.0f),
Vector3D
(1, 1, 1));
23
Transform
camRghtRearTransform
=
Transform
(
Vector3D
(-5.631f, -1.508f, 164.057f),
Vector3D
(460.0f, 290.0f, -500.0f+111.0f),
Vector3D
(1, 1, 1));
24
Transform
camLeftRearTransform
=
Transform
(
Vector3D
(5.631f, 1.508f, 164.057f),
Vector3D
(460.0f, 290.0f, -500.0f-111.0f),
Vector3D
(1, 1, 1));
25
Transform
camRghtChinTransform
=
Transform
(
Vector3D
(52.014f, 9.825f, 28.423f),
Vector3D
(19.0f + 30.0f, 30.0f, -500.0f-19.0f),
Vector3D
(1, 1, 1));
26
Transform
camLeftChinTransform
=
Transform
(
Vector3D
(-163.947f, -52.151f, 130.883f),
Vector3D
(145.0f + 30.0f, 30.0f, -500.0f+81.0f),
Vector3D
(1, 1, 1));
27
Transform
camRghtMiniTransform
=
Transform
(
Vector3D
(-5.631f, -1.508f, 164.057f),
Vector3D
(420.0f, 230.0f, -500.0f+111.0f),
Vector3D
(1, 1, 1));
28
Transform
camLeftMiniTransform
=
Transform
(
Vector3D
(5.631f, 1.508f, 164.057f),
Vector3D
(420.0f, 230.0f, -500.0f-111.0f),
Vector3D
(1, 1, 1));
29
30
PixelGroup
camRghtFrntPixels
=
PixelGroup
(KaiborgV1Pixels, 571,
PixelGroup::ZEROTOMAX
);
31
PixelGroup
camLeftFrntPixels
=
PixelGroup
(KaiborgV1Pixels, 571,
PixelGroup::MAXTOZERO
);
32
PixelGroup
camRghtRearPixels
=
PixelGroup
(KaiborgV1Pixels, 571,
PixelGroup::ZEROTOMAX
);
33
PixelGroup
camLeftRearPixels
=
PixelGroup
(KaiborgV1Pixels, 571,
PixelGroup::MAXTOZERO
);
34
PixelGroup
camRghtChinPixels
=
PixelGroup
(
ProtoDRMini
, 89);
35
PixelGroup
camLeftChinPixels
=
PixelGroup
(
ProtoDRMini
, 89);
36
PixelGroup
camRghtMiniPixels
=
PixelGroup
(
HertzMiniCamera
, 4);
37
PixelGroup
camLeftMiniPixels
=
PixelGroup
(
HertzMiniCamera
, 4);
38
39
Camera
camRghtFrnt
=
Camera
(&
camRghtFrntTransform
, &
cameraLayout
, &
camRghtFrntPixels
);
40
Camera
camLeftFrnt
=
Camera
(&
camLeftFrntTransform
, &
cameraLayout
, &
camLeftFrntPixels
);
41
Camera
camRghtRear
=
Camera
(&
camRghtRearTransform
, &
cameraLayout
, &
camRghtRearPixels
);
42
Camera
camLeftRear
=
Camera
(&
camLeftRearTransform
, &
cameraLayout
, &
camLeftRearPixels
);
43
Camera
camRghtChin
=
Camera
(&
camRghtChinTransform
, &
cameraLayout
, &
camRghtChinPixels
);
44
Camera
camLeftChin
=
Camera
(&
camLeftChinTransform
, &
cameraLayout
, &
camLeftChinPixels
);
45
Camera
camRghtMini
=
Camera
(&
camRghtMiniTransform
, &
cameraLayout
, &
camRghtMiniPixels
);
46
Camera
camLeftMini
=
Camera
(&
camLeftMiniTransform
, &
cameraLayout
, &
camLeftMiniPixels
);
47
48
Camera
*
cameras
[8] = { &
camRghtFrnt
, &
camLeftFrnt
, &
camRghtRear
, &
camLeftRear
, &
camRghtChin
, &
camLeftChin
, &
camRghtMini
, &
camLeftMini
};
49
uint8_t
maxBrightness
;
50
51
public
:
52
ProtoV2Controller
(uint8_t
maxBrightness
) :
Controller
(
cameras
, 8,
maxBrightness
, 0){
53
this->maxBrightness =
maxBrightness
;
54
}
52
ProtoV2Controller
(uint8_t
maxBrightness
) :
Controller
(
cameras
, 8,
maxBrightness
, 0) {
…
}
55
56
void
Initialize
()
override
{
57
leds
.begin();
58
leds
.show();
59
}
56
void
Initialize
()
override
{
…
}
60
61
void
Display
()
override
{
62
for
(
int
i = 0; i < 571; i++){
63
camLeftFrntPixels
.GetPixel(i)->Color =
camLeftFrntPixels
.GetPixel(i)->Color.Scale(
brightness
);
64
camRghtFrntPixels
.GetPixel(i)->Color =
camRghtFrntPixels
.GetPixel(i)->Color.Scale(
brightness
);
65
66
camLeftRearPixels
.GetPixel(i)->Color =
camLeftRearPixels
.GetPixel(i)->Color.Scale(
brightness
);
67
camRghtRearPixels
.GetPixel(i)->Color =
camRghtRearPixels
.GetPixel(i)->Color.Scale(
brightness
);
68
69
if
(i < 89){
70
camRghtChinPixels
.GetPixel(i)->Color =
camRghtChinPixels
.GetPixel(i)->Color.Scale(
brightness
* 2);
71
camLeftChinPixels
.GetPixel(i)->Color =
camLeftChinPixels
.GetPixel(i)->Color.Scale(
brightness
* 2);
72
}
73
74
if
(i < 4){
75
camRghtMiniPixels
.GetPixel(i)->Color =
camRghtMiniPixels
.GetPixel(i)->Color.Scale(
brightness
* 4);
76
camLeftMiniPixels
.GetPixel(i)->Color =
camLeftMiniPixels
.GetPixel(i)->Color.Scale(
brightness
* 4);
77
}
78
}
79
80
for
(
int
i = 0; i < 571; i++) {
81
if
(i < 346){
82
//Rear Panels
83
leds
.setPixel(i + 346 * 1,
camLeftRearPixels
.GetPixel(i + 225)->Color.R,
camLeftRearPixels
.GetPixel(i + 225)->Color.G,
camLeftRearPixels
.GetPixel(i + 225)->Color.B);
//Pin 7
84
leds
.setPixel(i + 346 * 3,
camRghtRearPixels
.GetPixel(i)->Color.R,
camRghtRearPixels
.GetPixel(i)->Color.G,
camRghtRearPixels
.GetPixel(i)->Color.B);
//Pin 8
85
86
//Front Panels
87
leds
.setPixel(i + 346 * 5,
camLeftFrntPixels
.GetPixel(i + 225)->Color.R,
camLeftFrntPixels
.GetPixel(i + 225)->Color.G,
camLeftFrntPixels
.GetPixel(i + 225)->Color.B);
//Pin 7
88
leds
.setPixel(i + 346 * 4,
camRghtFrntPixels
.GetPixel(i)->Color.R,
camRghtFrntPixels
.GetPixel(i)->Color.G,
camRghtFrntPixels
.GetPixel(i)->Color.B);
//Pin 8
89
}
90
else
{
91
//Rear Panels
92
leds
.setPixel(i + 346 * 0 - 346,
camLeftRearPixels
.GetPixel(i - 346)->Color.R,
camLeftRearPixels
.GetPixel(i - 346)->Color.G,
camLeftRearPixels
.GetPixel(i - 346)->Color.B);
//Pin 8
93
leds
.setPixel(i + 346 * 2 - 346,
camRghtRearPixels
.GetPixel(i)->Color.R,
camRghtRearPixels
.GetPixel(i)->Color.G,
camRghtRearPixels
.GetPixel(i)->Color.B);
//Pin 8
94
95
//Front Panels
96
leds
.setPixel(i + 346 * 7 - 346,
camLeftFrntPixels
.GetPixel(i - 346)->Color.R,
camLeftFrntPixels
.GetPixel(i - 346)->Color.G,
camLeftFrntPixels
.GetPixel(i - 346)->Color.B);
//Pin 8
97
leds
.setPixel(i + 346 * 6 - 346,
camRghtFrntPixels
.GetPixel(i)->Color.R,
camRghtFrntPixels
.GetPixel(i)->Color.G,
camRghtFrntPixels
.GetPixel(i)->Color.B);
//Pin 8
98
}
99
}
100
101
for
(
int
i = 0; i < 89; i++){
102
//Front Panels
103
leds
.setPixel(i + 346 * 7 + 225,
camLeftChinPixels
.GetPixel(i)->Color.R,
camLeftChinPixels
.GetPixel(i)->Color.G,
camLeftChinPixels
.GetPixel(i)->Color.B);
//Pin 8
104
leds
.setPixel(i + 346 * 6 + 225,
camRghtChinPixels
.GetPixel(i)->Color.R,
camRghtChinPixels
.GetPixel(i)->Color.G,
camRghtChinPixels
.GetPixel(i)->Color.B);
//Pin 8
105
}
106
107
for
(
int
i = 0; i < 4; i++){
108
//Front Panels
109
leds
.setPixel(i + 346 * 0 + 225,
camLeftMiniPixels
.GetPixel(i)->Color.R,
camLeftMiniPixels
.GetPixel(i)->Color.G,
camLeftMiniPixels
.GetPixel(i)->Color.B);
//Pin 8
110
leds
.setPixel(i + 346 * 2 + 225,
camRghtMiniPixels
.GetPixel(i)->Color.R,
camRghtMiniPixels
.GetPixel(i)->Color.G,
camRghtMiniPixels
.GetPixel(i)->Color.B);
//Pin 8
111
}
112
113
leds
.show();
114
}
61
void
Display
()
override
{
…
}
115
};
17
class
ProtoV2Controller
:
public
Controller
{
…
};
displayMemory
DMAMEM int displayMemory[346 *6]
Definition
BetaProtoControllerOctoWS2811.h:11
config
const int config
Definition
BetaProtoControllerOctoWS2811.h:13
leds
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config)
drawingMemory
int drawingMemory[346 *6]
Definition
BetaProtoControllerOctoWS2811.h:12
ledsPerStrip
const int ledsPerStrip
Definition
BetaProtoControllerOctoWS2811.h:10
Controller.h
Declares the Controller base class for managing lighting controllers.
HertzMiniCamera
DMAMEM Vector2D HertzMiniCamera[4]
Definition
HertzMini.h:3
ProtoDRMini
DMAMEM Vector2D ProtoDRMini[89]
Definition
ProtoDRMini.h:3
CameraLayout
Manages camera orientation and axis alignment.
Definition
CameraLayout.h:23
CameraLayout::YUp
@ YUp
Up along the positive Y-axis.
Definition
CameraLayout.h:44
CameraLayout::ZForward
@ ZForward
Forward along the positive Z-axis.
Definition
CameraLayout.h:32
Camera
Manages camera behavior and pixel groups.
Definition
Camera.h:27
Controller
Base class for managing brightness and display operations of lighting controllers.
Definition
Controller.h:25
Controller::brightness
uint8_t brightness
Current brightness level.
Definition
Controller.h:32
IPixelGroup::ZEROTOMAX
@ ZEROTOMAX
Traverse from minimum to maximum indices.
Definition
IPixelGroup.h:32
IPixelGroup::MAXTOZERO
@ MAXTOZERO
Traverse from maximum to minimum indices.
Definition
IPixelGroup.h:33
PixelGroup
Manages a collection of pixels with positions, colors, and spatial relationships.
Definition
PixelGroup.h:27
ProtoV2Controller
Definition
BetaProtoControllerOctoWS2811.h:17
ProtoV2Controller::ProtoV2Controller
ProtoV2Controller(uint8_t maxBrightness)
Definition
BetaProtoControllerOctoWS2811.h:52
ProtoV2Controller::camRghtMini
Camera camRghtMini
Definition
BetaProtoControllerOctoWS2811.h:45
ProtoV2Controller::camRghtRearPixels
PixelGroup camRghtRearPixels
Definition
BetaProtoControllerOctoWS2811.h:32
ProtoV2Controller::Initialize
void Initialize() override
Initializes the controller.
Definition
BetaProtoControllerOctoWS2811.h:56
ProtoV2Controller::camLeftChinTransform
Transform camLeftChinTransform
Definition
BetaProtoControllerOctoWS2811.h:26
ProtoV2Controller::camRghtChin
Camera camRghtChin
Definition
BetaProtoControllerOctoWS2811.h:43
ProtoV2Controller::camLeftRearPixels
PixelGroup camLeftRearPixels
Definition
BetaProtoControllerOctoWS2811.h:33
ProtoV2Controller::camRghtMiniTransform
Transform camRghtMiniTransform
Definition
BetaProtoControllerOctoWS2811.h:27
ProtoV2Controller::camLeftRearTransform
Transform camLeftRearTransform
Definition
BetaProtoControllerOctoWS2811.h:24
ProtoV2Controller::camLeftMini
Camera camLeftMini
Definition
BetaProtoControllerOctoWS2811.h:46
ProtoV2Controller::Display
void Display() override
Updates and displays content on the lighting system.
Definition
BetaProtoControllerOctoWS2811.h:61
ProtoV2Controller::camRghtChinTransform
Transform camRghtChinTransform
Definition
BetaProtoControllerOctoWS2811.h:25
ProtoV2Controller::camLeftMiniPixels
PixelGroup camLeftMiniPixels
Definition
BetaProtoControllerOctoWS2811.h:37
ProtoV2Controller::camLeftFrnt
Camera camLeftFrnt
Definition
BetaProtoControllerOctoWS2811.h:40
ProtoV2Controller::camLeftMiniTransform
Transform camLeftMiniTransform
Definition
BetaProtoControllerOctoWS2811.h:28
ProtoV2Controller::camRghtFrntTransform
Transform camRghtFrntTransform
Definition
BetaProtoControllerOctoWS2811.h:21
ProtoV2Controller::camRghtChinPixels
PixelGroup camRghtChinPixels
Definition
BetaProtoControllerOctoWS2811.h:34
ProtoV2Controller::maxBrightness
uint8_t maxBrightness
Definition
BetaProtoControllerOctoWS2811.h:49
ProtoV2Controller::camRghtFrntPixels
PixelGroup camRghtFrntPixels
Definition
BetaProtoControllerOctoWS2811.h:30
ProtoV2Controller::camLeftFrntPixels
PixelGroup camLeftFrntPixels
Definition
BetaProtoControllerOctoWS2811.h:31
ProtoV2Controller::camLeftFrntTransform
Transform camLeftFrntTransform
Definition
BetaProtoControllerOctoWS2811.h:22
ProtoV2Controller::cameras
Camera * cameras[8]
Definition
BetaProtoControllerOctoWS2811.h:48
ProtoV2Controller::camRghtRear
Camera camRghtRear
Definition
BetaProtoControllerOctoWS2811.h:41
ProtoV2Controller::camLeftRear
Camera camLeftRear
Definition
BetaProtoControllerOctoWS2811.h:42
ProtoV2Controller::camLeftChin
Camera camLeftChin
Definition
BetaProtoControllerOctoWS2811.h:44
ProtoV2Controller::camRghtMiniPixels
PixelGroup camRghtMiniPixels
Definition
BetaProtoControllerOctoWS2811.h:36
ProtoV2Controller::camLeftChinPixels
PixelGroup camLeftChinPixels
Definition
BetaProtoControllerOctoWS2811.h:35
ProtoV2Controller::cameraLayout
CameraLayout cameraLayout
Definition
BetaProtoControllerOctoWS2811.h:19
ProtoV2Controller::camRghtRearTransform
Transform camRghtRearTransform
Definition
BetaProtoControllerOctoWS2811.h:23
ProtoV2Controller::camRghtFrnt
Camera camRghtFrnt
Definition
BetaProtoControllerOctoWS2811.h:39
Transform
Represents a 3D transformation including position, rotation, and scale.
Definition
Transform.h:22
Vector3D
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.
Definition
Vector3D.h:26
lib
ProtoTracer
Controller
Deprecated
BetaProtoControllerOctoWS2811.h
Generated by
1.9.8