48template<
typename T>
class Grid;
52 return static_cast<fl::u16
>(
ceil_constexpr(
static_cast<float>(numLeds) / totalTurns));
143 Corkscrew(
float totalTurns, fl::u16 numLeds,
bool invert =
false,
const Gap& gapParams =
Gap());
166 void draw(
bool use_multi_sampling =
true);
181 fl::size
size()
const;
bool operator!=(const iterator &other) const
difference_type operator-(const iterator &other) const
const Corkscrew * mCorkscrew
iterator(const Corkscrew *corkscrew, fl::size position)
fl::bidirectional_iterator_tag iterator_category
bool operator==(const iterator &other) const
fl::variant< fl::span< CRGB >, fl::vector_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
Corkscrew(Corkscrew &&) FL_NOEXCEPT=default
void setCachingEnabled(bool enabled)
Corkscrew(const Corkscrew &) FL_NOEXCEPT=default
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
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
fl::Corkscrew corkscrew(CORKSCREW_TURNS, NUM_LEDS)
constexpr int ceil_constexpr(float value) FL_NOEXCEPT
constexpr fl::u16 calculateCorkscrewHeight(float totalTurns, fl::u16 numLeds)
constexpr fl::u16 calculateCorkscrewWidth(float totalTurns, fl::u16 numLeds)
Base definition for an LED controller.
Representation of an 8-bit RGB pixel (Red, Green, Blue)
Gap & operator=(const Gap &other)=default
Gap(const Gap &other) FL_NOEXCEPT=default
Gap() FL_NOEXCEPT=default
Gap & operator=(Gap &&other) FL_NOEXCEPT=default
Gap(Gap &&other) FL_NOEXCEPT=default
Struct representing gap parameters for corkscrew mapping.