ELEC2645 (2018/19) / Mbed 2 deprecated el17kz

Dependencies:   mbed

Committer:
kamtas
Date:
Tue May 07 19:09:03 2019 +0000
Revision:
0:1e61ade20a23
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kamtas 0:1e61ade20a23 1 #ifndef BITMAP_H
kamtas 0:1e61ade20a23 2 #define BITMAP_H
kamtas 0:1e61ade20a23 3
kamtas 0:1e61ade20a23 4 #include <vector>
kamtas 0:1e61ade20a23 5
kamtas 0:1e61ade20a23 6 // Forward declarations
kamtas 0:1e61ade20a23 7 class N5110;
kamtas 0:1e61ade20a23 8
kamtas 0:1e61ade20a23 9 /**
kamtas 0:1e61ade20a23 10 * @brief A black & white bitmap that can be rendered on an N5110 screen
kamtas 0:1e61ade20a23 11 * @author Alex Valavanis <a.valavanis@leeds.ac.uk>
kamtas 0:1e61ade20a23 12 *
kamtas 0:1e61ade20a23 13 * @code
kamtas 0:1e61ade20a23 14 // First declare the pixel map data using '1' for black,
kamtas 0:1e61ade20a23 15 // or '0' for white pixels
kamtas 0:1e61ade20a23 16 static int sprite_data[] = {
kamtas 0:1e61ade20a23 17 0,0,1,0,0,
kamtas 0:1e61ade20a23 18 0,1,1,1,0,
kamtas 0:1e61ade20a23 19 0,0,1,0,0,
kamtas 0:1e61ade20a23 20 0,1,1,1,0,
kamtas 0:1e61ade20a23 21 1,1,1,1,1,
kamtas 0:1e61ade20a23 22 1,1,1,1,1,
kamtas 0:1e61ade20a23 23 1,1,0,1,1,
kamtas 0:1e61ade20a23 24 1,1,0,1,1
kamtas 0:1e61ade20a23 25 };
kamtas 0:1e61ade20a23 26
kamtas 0:1e61ade20a23 27 // Instantiate the Bitmap object using the data above
kamtas 0:1e61ade20a23 28 Bitmap sprite(sprite_data, 8, 5); // Specify rows and columns in sprite
kamtas 0:1e61ade20a23 29
kamtas 0:1e61ade20a23 30 // We can render the bitmap wherever we want on the screen
kamtas 0:1e61ade20a23 31 sprite.render(lcd, 20, 6); // x and y locations for rendering
kamtas 0:1e61ade20a23 32 sprite.render(lcd, 30, 10);
kamtas 0:1e61ade20a23 33
kamtas 0:1e61ade20a23 34 // We can also print its values to the terminal
kamtas 0:1e61ade20a23 35 sprite.print();
kamtas 0:1e61ade20a23 36 * @endcode
kamtas 0:1e61ade20a23 37 */
kamtas 0:1e61ade20a23 38 class Bitmap
kamtas 0:1e61ade20a23 39 {
kamtas 0:1e61ade20a23 40 private:
kamtas 0:1e61ade20a23 41 /**
kamtas 0:1e61ade20a23 42 * @brief The contents of the drawing, with pixels stored in row-major order
kamtas 0:1e61ade20a23 43 * @details '1' represents a black pixel; '0' represents white
kamtas 0:1e61ade20a23 44 */
kamtas 0:1e61ade20a23 45 std::vector<int> _contents;
kamtas 0:1e61ade20a23 46
kamtas 0:1e61ade20a23 47 unsigned int _height; ///< The height of the drawing in pixels
kamtas 0:1e61ade20a23 48 unsigned int _width; ///< The width of the drawing in pixels
kamtas 0:1e61ade20a23 49
kamtas 0:1e61ade20a23 50 public:
kamtas 0:1e61ade20a23 51 Bitmap(int const *contents,
kamtas 0:1e61ade20a23 52 unsigned int const height,
kamtas 0:1e61ade20a23 53 unsigned int const width);
kamtas 0:1e61ade20a23 54
kamtas 0:1e61ade20a23 55 int get_pixel(unsigned int const row,
kamtas 0:1e61ade20a23 56 unsigned int const column) const;
kamtas 0:1e61ade20a23 57
kamtas 0:1e61ade20a23 58 void print() const;
kamtas 0:1e61ade20a23 59
kamtas 0:1e61ade20a23 60 void render(N5110 &lcd,
kamtas 0:1e61ade20a23 61 unsigned int const x0,
kamtas 0:1e61ade20a23 62 unsigned int const y0) const;
kamtas 0:1e61ade20a23 63 };
kamtas 0:1e61ade20a23 64
kamtas 0:1e61ade20a23 65 #endif // BITMAP_H