50template<
typename T>
class Grid;
54 return static_cast<fl::u16
>(
ceil_constexpr(
static_cast<float>(numLeds) / totalTurns));
146 Corkscrew(
float totalTurns, fl::u16 numLeds,
bool invert =
false,
const Gap& gapParams =
Gap());
172 void draw(
bool use_multi_sampling =
true);
187 fl::size
size()
const;
bool operator!=(const iterator &other) const
difference_type operator-(const iterator &other) const
iterator(const Corkscrew *corkscrew, fl::size position)
const Corkscrew * corkscrew_
bool operator==(const iterator &other) const
Corkscrew(const Corkscrew &)=default
fl::Variant< fl::span< CRGB >, fl::vector< CRGB, fl::allocator_psram< CRGB > > > PixelStorage
fl::shared_ptr< fl::Grid< CRGB > > & getOrCreateInputSurface()
Tile2x2_u8 at_splat_extrapolate(float i) const
Tile2x2_u8_wrap calculateTileAtWrap(float i) const
void setCachingEnabled(bool enabled)
fl::ScreenMap toScreenMap(float diameter=0.5f) const
Corkscrew(float totalTurns, fl::u16 numLeds, bool invert=false, const Gap &gapParams=Gap())
fl::Grid< CRGB > & surface()
fl::u16 cylinderWidth() const
void readFromMulti(const fl::Grid< CRGB > &target_grid) const
void fillInputSurface(const CRGB &color)
PixelStorage mPixelStorage
vec2f at_exact(fl::u16 i) const
fl::shared_ptr< fl::Grid< CRGB > > mInputSurface
fl::vector< Tile2x2_u8_wrap > mTileCache
void initializeBuffer() const
void initializeCache() const
Corkscrew(Corkscrew &&)=default
Tile2x2_u8_wrap at_wrap(float i) const
void draw(bool use_multi_sampling=true)
vec2f at_no_wrap(fl::u16 i) const
void readFrom(const fl::Grid< CRGB > &source_grid, bool use_multi_sampling=true)
fl::u16 cylinderHeight() const
fl::size pixelCount() const
Defines the red, green, and blue (RGB) pixel struct.
Corkscrew corkscrew(CORKSCREW_TURNS, NUM_LEDS)
constexpr int ceil_constexpr(float value)
constexpr fl::u16 calculateCorkscrewHeight(float totalTurns, fl::u16 numLeds)
constexpr fl::u16 calculateCorkscrewWidth(float totalTurns, fl::u16 numLeds)
HeapVector< T, Allocator > vector
Representation of an RGB pixel (Red, Green, Blue)
Gap & operator=(const Gap &other)=default
Gap(Gap &&other) noexcept=default
Gap & operator=(Gap &&other) noexcept=default
Gap(const Gap &other)=default
Struct representing gap parameters for corkscrew mapping.