FastLED
3.9.15
Loading...
Searching...
No Matches
animartrix_detail.h
Go to the documentation of this file.
1
#pragma once
2
// IWYU pragma: private, include "fl/fx/2d/animartrix.hpp"
3
// allow-include-after-namespace
4
5
// Animartrix detail: Modular implementation of Animartrix effects.
6
// Original concept by Stefan Petrick 2023. Adapted to C++ by Netmindz 2023.
7
// Adapted to FastLED by Zach Vorhies 2024.
8
// Refactored to free-function architecture 2026.
9
// Fixed-point optimization migration 2026.
10
//
11
// Licensed under the MIT License.
12
// See LICENSE file in the root of this repository.
13
//
14
// Architecture: Context struct holds all shared state. Each animation is an
15
// IAnimartrix2Viz subclass with a draw(Context&) method. Internally delegates
16
// to animartrix_detail::ANIMartRIX for bit-identical output.
17
//
18
// NOTE: This is an internal implementation header. Do not include directly.
19
// Include "fl/fx/2d/animartrix.hpp" instead.
20
21
// IWYU pragma: begin_exports
22
// Include standalone Animartrix core functionality
23
#include "
fl/fx/2d/animartrix_detail/core_types.h
"
24
#include "
fl/fx/2d/animartrix_detail/perlin_float.h
"
25
#include "
fl/fx/2d/animartrix_detail/engine_core.h
"
26
27
#include "crgb.h"
28
#include "
fl/stl/vector.h
"
29
#include "
fl/math/math.h
"
30
#include "
fl/stl/optional.h
"
31
#include "
fl/stl/stdint.h
"
32
#include "
fl/math/sin32.h
"
33
#include "
fl/math/fixed_point/s16x16.h
"
34
#include "
fl/math/simd.h
"
35
36
37
#ifndef PI
38
#define PI 3.1415926535897932384626433832795
39
#endif
40
41
#ifndef FL_ANIMARTRIX_USES_FAST_MATH
42
#define FL_ANIMARTRIX_USES_FAST_MATH 1
43
#endif
44
45
#if FL_ANIMARTRIX_USES_FAST_MATH
46
FL_FAST_MATH_BEGIN
47
FL_OPTIMIZATION_LEVEL_O3_BEGIN
48
#endif
49
50
// Helper structs extracted to separate headers for better organization
51
#include "
fl/fx/2d/animartrix_detail/context.h
"
52
#include "
fl/fx/2d/animartrix_detail/chasing_spiral_pixel_lut.h
"
53
#include "
fl/fx/2d/animartrix_detail/perlin_s16x16.h
"
54
#include "
fl/math/noise/perlin_s16x16_simd.h
"
55
#include "
fl/fx/2d/animartrix_detail/perlin_q16.h
"
56
#include "
fl/fx/2d/animartrix_detail/perlin_s8x8.h
"
57
#include "
fl/fx/2d/animartrix_detail/perlin_i16_optimized.h
"
58
#include "
fl/fx/2d/animartrix_detail/viz/chasing_spirals.h
"
59
#include "
fl/fx/2d/animartrix_detail/engine.h
"
60
61
// Visualizer declarations (implementations in viz/*.cpp.hpp via unity build)
62
#include "
fl/fx/2d/animartrix_detail/viz/rotating_blob.h
"
63
#include "
fl/fx/2d/animartrix_detail/viz/rings.h
"
64
#include "
fl/fx/2d/animartrix_detail/viz/waves.h
"
65
#include "
fl/fx/2d/animartrix_detail/viz/center_field.h
"
66
#include "
fl/fx/2d/animartrix_detail/viz/distance_experiment.h
"
67
#include "
fl/fx/2d/animartrix_detail/viz/caleido1.h
"
68
#include "
fl/fx/2d/animartrix_detail/viz/caleido2.h
"
69
#include "
fl/fx/2d/animartrix_detail/viz/caleido3.h
"
70
#include "
fl/fx/2d/animartrix_detail/viz/lava1.h
"
71
#include "
fl/fx/2d/animartrix_detail/viz/scaledemo1.h
"
72
#include "
fl/fx/2d/animartrix_detail/viz/yves.h
"
73
#include "
fl/fx/2d/animartrix_detail/viz/spiralus.h
"
74
#include "
fl/fx/2d/animartrix_detail/viz/spiralus2.h
"
75
#include "
fl/fx/2d/animartrix_detail/viz/hot_blob.h
"
76
#include "
fl/fx/2d/animartrix_detail/viz/zoom.h
"
77
#include "
fl/fx/2d/animartrix_detail/viz/zoom2.h
"
78
#include "
fl/fx/2d/animartrix_detail/viz/slow_fade.h
"
79
#include "
fl/fx/2d/animartrix_detail/viz/polar_waves.h
"
80
#include "
fl/fx/2d/animartrix_detail/viz/rgb_blobs.h
"
81
#include "
fl/fx/2d/animartrix_detail/viz/rgb_blobs2.h
"
82
#include "
fl/fx/2d/animartrix_detail/viz/rgb_blobs3.h
"
83
#include "
fl/fx/2d/animartrix_detail/viz/rgb_blobs4.h
"
84
#include "
fl/fx/2d/animartrix_detail/viz/rgb_blobs5.h
"
85
#include "
fl/fx/2d/animartrix_detail/viz/big_caleido.h
"
86
#include "
fl/fx/2d/animartrix_detail/viz/spiral_matrix1.h
"
87
#include "
fl/fx/2d/animartrix_detail/viz/spiral_matrix2.h
"
88
#include "
fl/fx/2d/animartrix_detail/viz/spiral_matrix3.h
"
89
#include "
fl/fx/2d/animartrix_detail/viz/spiral_matrix4.h
"
90
#include "
fl/fx/2d/animartrix_detail/viz/spiral_matrix5.h
"
91
#include "
fl/fx/2d/animartrix_detail/viz/spiral_matrix6.h
"
92
#include "
fl/fx/2d/animartrix_detail/viz/spiral_matrix8.h
"
93
#include "
fl/fx/2d/animartrix_detail/viz/spiral_matrix9.h
"
94
#include "
fl/fx/2d/animartrix_detail/viz/spiral_matrix10.h
"
95
#include "
fl/fx/2d/animartrix_detail/viz/complex_kaleido.h
"
96
#include "
fl/fx/2d/animartrix_detail/viz/complex_kaleido_2.h
"
97
#include "
fl/fx/2d/animartrix_detail/viz/complex_kaleido_3.h
"
98
#include "
fl/fx/2d/animartrix_detail/viz/complex_kaleido_4.h
"
99
#include "
fl/fx/2d/animartrix_detail/viz/complex_kaleido_5.h
"
100
#include "
fl/fx/2d/animartrix_detail/viz/complex_kaleido_6.h
"
101
#include "
fl/fx/2d/animartrix_detail/viz/water.h
"
102
#include "
fl/fx/2d/animartrix_detail/viz/parametric_water.h
"
103
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment1.h
"
104
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment2.h
"
105
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment3.h
"
106
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment4.h
"
107
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment5.h
"
108
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment6.h
"
109
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment7.h
"
110
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment8.h
"
111
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment9.h
"
112
#include "
fl/fx/2d/animartrix_detail/viz/module_experiment10.h
"
113
#include "
fl/fx/2d/animartrix_detail/viz/fluffy_blobs.h
"
114
// IWYU pragma: end_exports
115
116
namespace
fl
{
117
118
// Namespace wrappers for backwards compatibility with test code
119
120
namespace
q31
{
121
using
fl::Chasing_Spirals_Q31
;
// ok bare using
122
using
fl::Chasing_Spirals_Q31_SIMD
;
// ok bare using
123
}
124
125
namespace
q16
{
126
// Q16 implementation aliased to Q31 (Q16 was removed, use Q31 instead)
127
inline
void
Chasing_Spirals_Q16_Batch4_ColorGrouped
(
Context
&ctx) {
128
fl::Chasing_Spirals_Q31
().
draw
(ctx);
129
}
130
}
131
132
133
#if FL_ANIMARTRIX_USES_FAST_MATH
134
FL_OPTIMIZATION_LEVEL_O3_END
135
FL_FAST_MATH_END
136
#endif
137
138
}
// namespace fl
big_caleido.h
caleido1.h
caleido2.h
caleido3.h
center_field.h
chasing_spiral_pixel_lut.h
chasing_spirals.h
fl::Chasing_Spirals_Q31_SIMD
Definition
chasing_spirals.h:29
fl::Chasing_Spirals_Q31::draw
void draw(Context &ctx) override
Definition
chasing_spirals.cpp.hpp:362
fl::Chasing_Spirals_Q31
Definition
chasing_spirals.h:20
complex_kaleido.h
complex_kaleido_2.h
complex_kaleido_3.h
complex_kaleido_4.h
complex_kaleido_5.h
complex_kaleido_6.h
context.h
core_types.h
distance_experiment.h
engine.h
engine_core.h
fluffy_blobs.h
perlin_s16x16.h
hot_blob.h
lava1.h
math.h
module_experiment10.h
module_experiment1.h
module_experiment2.h
module_experiment3.h
module_experiment4.h
module_experiment5.h
module_experiment6.h
module_experiment7.h
module_experiment8.h
module_experiment9.h
fl::q16::Chasing_Spirals_Q16_Batch4_ColorGrouped
void Chasing_Spirals_Q16_Batch4_ColorGrouped(Context &ctx)
Definition
animartrix_detail.h:127
fl::q16
Definition
animartrix_detail.h:125
fl::q31
Definition
animartrix_detail.h:120
fl
Base definition for an LED controller.
Definition
crgb.hpp:179
optional.h
parametric_water.h
perlin_float.h
perlin_i16_optimized.h
perlin_q16.h
perlin_s16x16_simd.h
perlin_s8x8.h
polar_waves.h
rgb_blobs2.h
rgb_blobs3.h
rgb_blobs4.h
rgb_blobs5.h
rgb_blobs.h
rings.h
rotating_blob.h
s16x16.h
FL_OPTIMIZATION_LEVEL_O3_BEGIN
#define FL_OPTIMIZATION_LEVEL_O3_BEGIN
FL_FAST_MATH_BEGIN
#define FL_FAST_MATH_BEGIN
FL_FAST_MATH_END
#define FL_FAST_MATH_END
FL_OPTIMIZATION_LEVEL_O3_END
#define FL_OPTIMIZATION_LEVEL_O3_END
scaledemo1.h
simd.h
Umbrella header for SIMD subsystem.
sin32.h
slow_fade.h
spiral_matrix10.h
spiral_matrix1.h
spiral_matrix2.h
spiral_matrix3.h
spiral_matrix4.h
spiral_matrix5.h
spiral_matrix6.h
spiral_matrix8.h
spiral_matrix9.h
spiralus2.h
spiralus.h
stdint.h
fl::Context
Definition
context.h:24
vector.h
water.h
waves.h
yves.h
zoom2.h
zoom.h
fl
fx
2d
animartrix_detail.h
Generated on Tue Jun 16 2026 00:06:59 for FastLED by
1.13.2