Better Naming

This commit is contained in:
Makuna
2016-04-16 14:11:13 -07:00
parent 43f53a0232
commit 007268ca00
9 changed files with 19 additions and 114 deletions

View File

@@ -2,7 +2,7 @@
// This example will move a Cylon Red Eye back and forth across the // This example will move a Cylon Red Eye back and forth across the
// the full collection of pixels on the strip. // the full collection of pixels on the strip.
// //
// This will demonstrate the use of the NeoPixelVerticalSpriteSheet // This will demonstrate the use of the NeoVerticalSpriteSheet
// //
#include <NeoPixelBus.h> #include <NeoPixelBus.h>
@@ -26,7 +26,7 @@ NeoPixelBus<MyPixelColorFeature, Neo800KbpsMethod> strip(PixelCount, PixelPin);
NeoPixelAnimator animations(AnimCount); // NeoPixel animation management object NeoPixelAnimator animations(AnimCount); // NeoPixel animation management object
// sprite sheet stored in progmem using the same pixel feature as the NeoPixelBus // sprite sheet stored in progmem using the same pixel feature as the NeoPixelBus
NeoPixelVerticalSpriteSheet<NeoPixelBufferProgmemMethod<MyPixelColorFeature>> spriteSheet( NeoVerticalSpriteSheet<NeoBufferProgmemMethod<MyPixelColorFeature>> spriteSheet(
myImageWidth, // image width and sprite width since its vertical sprite sheet myImageWidth, // image width and sprite width since its vertical sprite sheet
myImageHeight, // image height myImageHeight, // image height
1, // sprite is only one pixel high 1, // sprite is only one pixel high

View File

@@ -61,10 +61,10 @@ NeoHueBlendClockwiseDirection KEYWORD1
NeoHueBlendCounterClockwiseDirection KEYWORD1 NeoHueBlendCounterClockwiseDirection KEYWORD1
NeoBufferContext KEYWORD1 NeoBufferContext KEYWORD1
LayoutMapCallback KEYWORD1 LayoutMapCallback KEYWORD1
NeoPixelBufferMethod KEYWORD1 NeoBufferMethod KEYWORD1
NeoPixelBufferProgmemMethod KEYWORD1 NeoBufferProgmemMethod KEYWORD1
NeoPixelBuffer KEYWORD1 NeoBuffer KEYWORD1
NeoPixelVerticalSpriteSheet KEYWORD1 NeoVerticalSpriteSheet KEYWORD1
####################################### #######################################
# Methods and Functions (KEYWORD2) # Methods and Functions (KEYWORD2)

View File

@@ -7,7 +7,7 @@
"type": "git", "type": "git",
"url": "https://github.com/Makuna/NeoPixelBus" "url": "https://github.com/Makuna/NeoPixelBus"
}, },
"version": "2.1.0", "version": "2.1.1",
"frameworks": "arduino", "frameworks": "arduino",
"platforms": "*" "platforms": "*"
} }

View File

@@ -1,5 +1,5 @@
name=NeoPixelBus by Makuna name=NeoPixelBus by Makuna
version=2.1.0 version=2.1.1
author=Michael C. Miller (makuna@live.com) author=Michael C. Miller (makuna@live.com)
maintainer=Michael C. Miller (makuna@live.com) maintainer=Michael C. Miller (makuna@live.com)
sentence=A library that makes controlling NeoPixels (WS2811, WS2812 & SK6812) easy. sentence=A library that makes controlling NeoPixels (WS2811, WS2812 & SK6812) easy.

View File

@@ -41,9 +41,9 @@ License along with NeoPixel. If not, see
#include "internal/NeoMosaic.h" #include "internal/NeoMosaic.h"
#include "internal/NeoBufferContext.h" #include "internal/NeoBufferContext.h"
#include "internal/NeoPixelBufferMethods.h" #include "internal/NeoBufferMethods.h"
#include "internal/NeoPixelBuffer.h" #include "internal/NeoBuffer.h"
#include "internal/NeoPixelSpriteSheet.h" #include "internal/NeoSpriteSheet.h"
#include "internal/NeoEase.h" #include "internal/NeoEase.h"
#include "internal/NeoGamma.h" #include "internal/NeoGamma.h"

View File

@@ -25,10 +25,10 @@ License along with NeoPixel. If not, see
-------------------------------------------------------------------------*/ -------------------------------------------------------------------------*/
#pragma once #pragma once
template<typename T_BUFFER_METHOD> class NeoPixelBuffer template<typename T_BUFFER_METHOD> class NeoBuffer
{ {
public: public:
NeoPixelBuffer(uint16_t width, NeoBuffer(uint16_t width,
uint16_t height, uint16_t height,
PGM_VOID_P pixels) : PGM_VOID_P pixels) :
_method(width, height, pixels) _method(width, height, pixels)

View File

@@ -40,10 +40,10 @@ typedef std::function<uint16_t(int16_t x, int16_t y)> LayoutMapCallback;
#endif #endif
template<typename T_COLOR_FEATURE> class NeoPixelBufferMethod template<typename T_COLOR_FEATURE> class NeoBufferMethod
{ {
public: public:
NeoPixelBufferMethod(uint16_t width, uint16_t height, PGM_VOID_P pixels = NULL) : NeoBufferMethod(uint16_t width, uint16_t height, PGM_VOID_P pixels = NULL) :
_width(width), _width(width),
_height(height) _height(height)
{ {
@@ -157,10 +157,10 @@ private:
uint8_t* _pixels; uint8_t* _pixels;
}; };
template<typename T_COLOR_FEATURE> class NeoPixelBufferProgmemMethod template<typename T_COLOR_FEATURE> class NeoBufferProgmemMethod
{ {
public: public:
NeoPixelBufferProgmemMethod(uint16_t width, uint16_t height, PGM_VOID_P pixels) : NeoBufferProgmemMethod(uint16_t width, uint16_t height, PGM_VOID_P pixels) :
_width(width), _width(width),
_height(height), _height(height),
_pixels(pixels) _pixels(pixels)

View File

@@ -26,10 +26,10 @@ License along with NeoPixel. If not, see
#pragma once #pragma once
template<typename T_BUFFER_METHOD> class NeoPixelVerticalSpriteSheet template<typename T_BUFFER_METHOD> class NeoVerticalSpriteSheet
{ {
public: public:
NeoPixelVerticalSpriteSheet(uint16_t width, NeoVerticalSpriteSheet(uint16_t width,
uint16_t height, uint16_t height,
uint16_t spriteHeight, uint16_t spriteHeight,
PGM_VOID_P pixels) : PGM_VOID_P pixels) :

View File

@@ -1,95 +0,0 @@
/*-------------------------------------------------------------------------
Teture provides a texture object that can contain a matrix of Color
values
Written by Michael C. Miller.
I invest time and resources providing this open source code,
please support me by dontating (see https://github.com/Makuna/NeoPixelBus)
-------------------------------------------------------------------------
This file is part of the Makuna/NeoPixelBus library.
NeoPixelBus is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.
NeoPixelBus is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with NeoPixel. If not, see
<http://www.gnu.org/licenses/>.
-------------------------------------------------------------------------*/
#pragma once
NOTES:
Where does the data come from?
* Loaded by external routine
template<typename T_COLOR> class Texture
{
public:
Texture(uint16_t width, uint16_t height, T_COLOR* pixels) :
_width(width),
_height(height),
_pixels(pixels)
{
};
const T_COLOR* Blend(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, float progress)
{
x1 = constrain(x1, 0, _width - 1);
y1 = constrain(y1, 0, _height - 1);
x2 = constrain(x2, 0, _width - 1);
y2 = constrain(y2, 0, _height - 1);
// calc cordinate of the four nearby pixels
// first lerp our cordinates
float xf = (static_cast<float>(x2) - x1) * progress + x1;
float yf = (static_cast<float>(y2) - y1) * progress + y1;
uint16_t x = static_cast<uint16_t>(xf); // truncates to lower uint
uint16_t y = static_cast<uint16_t>(yf); // truncates to lower uint
uint16_t xn = x + 1;
uint16_t yn = y + 1;
T_COLOR c00 = PixelAt(x, y);
T_COLOR c01 = PixelAt(x, yn);
T_COLOR c10 = PixelAt(xn, y);
T_COLOR c11 = PixelAt(xn, yn);
// unitize progress cordinate to these pixels
xf -= x;
yf -= y;
return T_COLOR::BilinearBlend(c00, c01, c10, c11, xf, yf);
};
const T_COLOR& PixelAt(uint16_t x, uint16_t y)
{
uint16_t xSafe = constrain(x, 0, _width - 1);
uint16_t ySafe = constrain(y, 0, _height - 1);
return pixelAt(xSafe, ySafe);
}
private:
const uint16_t _width;
const uint16_t _height;
const T_COLOR* _pixels;
const T_COLOR& pixelAt(uint16_t x, uint16_t y)
{
return *(_pixels + x + y * _width);
}
};
typedef Texture<RgbColor> RgbTexture;
typedef Texture<RgbwColor> RgbwTexture;
typedef Texture<HtmlColor> HtmlTexture;