2013-07-26 22:38:34 +02:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
// STL includes
|
|
|
|
#include <ctime>
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
// Local includes
|
|
|
|
#include <utils/RgbColor.h>
|
|
|
|
|
|
|
|
// Forward class declarations
|
|
|
|
namespace Json { class Value; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The Led structure contains the definition of the image portion used to determine a single led's
|
|
|
|
* color.
|
|
|
|
* <pre>
|
|
|
|
* |--------------------image--|
|
|
|
|
* | minX maxX |
|
|
|
|
* | |-----|minY |
|
2013-08-14 17:02:09 +02:00
|
|
|
* | | | |
|
|
|
|
* | |-----|maxY |
|
2013-07-26 22:38:34 +02:00
|
|
|
* | |
|
|
|
|
* | |
|
|
|
|
* | |
|
|
|
|
* |---------------------------|
|
|
|
|
* <endpre>
|
|
|
|
*/
|
|
|
|
struct Led
|
|
|
|
{
|
|
|
|
/** The index of the led */
|
|
|
|
unsigned index;
|
|
|
|
|
|
|
|
/** The minimum vertical scan line included for this leds color */
|
|
|
|
double minX_frac;
|
|
|
|
/** The maximum vertical scan line included for this leds color */
|
|
|
|
double maxX_frac;
|
|
|
|
/** The minimum horizontal scan line included for this leds color */
|
|
|
|
double minY_frac;
|
|
|
|
/** The maximum horizontal scan line included for this leds color */
|
|
|
|
double maxY_frac;
|
|
|
|
};
|
|
|
|
|
|
|
|
class LedString
|
|
|
|
{
|
|
|
|
public:
|
2013-08-13 11:10:45 +02:00
|
|
|
static LedString construct(const Json::Value& ledConfig);
|
2013-07-26 22:38:34 +02:00
|
|
|
|
|
|
|
LedString();
|
|
|
|
|
|
|
|
~LedString();
|
|
|
|
|
2013-08-13 11:10:45 +02:00
|
|
|
std::vector<Led>& leds();
|
|
|
|
|
2013-07-26 22:38:34 +02:00
|
|
|
const std::vector<Led>& leds() const;
|
|
|
|
|
|
|
|
private:
|
|
|
|
std::vector<Led> mLeds;
|
|
|
|
};
|