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
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"
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
48#endif
49
50// Helper structs extracted to separate headers for better organization
60
61// Visualizer declarations (implementations in viz/*.cpp.hpp via unity build)
114// IWYU pragma: end_exports
115
116namespace fl {
117
118// Namespace wrappers for backwards compatibility with test code
119
120namespace q31 {
121 using fl::Chasing_Spirals_Q31; // ok bare using
122 using fl::Chasing_Spirals_Q31_SIMD; // ok bare using
123}
124
125namespace q16 {
126 // Q16 implementation aliased to Q31 (Q16 was removed, use Q31 instead)
130}
131
132
133#if FL_ANIMARTRIX_USES_FAST_MATH
136#endif
137
138} // namespace fl
void draw(Context &ctx) override
void Chasing_Spirals_Q16_Batch4_ColorGrouped(Context &ctx)
Base definition for an LED controller.
Definition crgb.hpp:179
#define FL_OPTIMIZATION_LEVEL_O3_BEGIN
#define FL_FAST_MATH_BEGIN
#define FL_FAST_MATH_END
#define FL_OPTIMIZATION_LEVEL_O3_END
Umbrella header for SIMD subsystem.