initial commit
This commit is contained in:
34
libraries/FastLED/src/fx/fx2d.h
Normal file
34
libraries/FastLED/src/fx/fx2d.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include "fl/stdint.h"
|
||||
|
||||
#include "fl/namespace.h"
|
||||
#include "fl/memory.h"
|
||||
#include "fl/xymap.h"
|
||||
#include "fx/fx.h"
|
||||
|
||||
namespace fl {
|
||||
|
||||
FASTLED_SMART_PTR(Fx2d);
|
||||
|
||||
// Abstract base class for 2D effects that use a grid, which is defined
|
||||
// by an XYMap.
|
||||
class Fx2d : public Fx {
|
||||
public:
|
||||
// XYMap holds either a function or a look up table to map x, y coordinates
|
||||
// to a 1D index.
|
||||
Fx2d(const XYMap &xyMap) : Fx(xyMap.getTotal()), mXyMap(xyMap) {}
|
||||
uint16_t xyMap(uint16_t x, uint16_t y) const {
|
||||
return mXyMap.mapToIndex(x, y);
|
||||
}
|
||||
uint16_t getHeight() const { return mXyMap.getHeight(); }
|
||||
uint16_t getWidth() const { return mXyMap.getWidth(); }
|
||||
void setXYMap(const XYMap &xyMap) { mXyMap = xyMap; }
|
||||
XYMap &getXYMap() { return mXyMap; }
|
||||
const XYMap &getXYMap() const { return mXyMap; }
|
||||
|
||||
protected:
|
||||
XYMap mXyMap;
|
||||
};
|
||||
|
||||
} // namespace fl
|
||||
Reference in New Issue
Block a user