Test for STM32F4

Dependents:   Nucleo_SSD1331

Fork of RGB_OLED_SSD1331 by Juergen M

Committer:
kkado
Date:
Wed Aug 02 22:12:49 2017 +0000
Revision:
18:47cbbfc890a8
Parent:
16:7984718638fc
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
messi1 16:7984718638fc 1 #ifndef __LINE_H_
messi1 16:7984718638fc 2 #define __LINE_H_
messi1 16:7984718638fc 3
messi1 16:7984718638fc 4 #include "Point.h"
messi1 16:7984718638fc 5
messi1 16:7984718638fc 6 template <class T>
messi1 16:7984718638fc 7 class Line {
messi1 16:7984718638fc 8
messi1 16:7984718638fc 9 public:
messi1 16:7984718638fc 10 Line():
messi1 16:7984718638fc 11 _x1(0),
messi1 16:7984718638fc 12 _y1(0),
messi1 16:7984718638fc 13 _x2(0),
messi1 16:7984718638fc 14 _y2(0)
messi1 16:7984718638fc 15 {}
messi1 16:7984718638fc 16
messi1 16:7984718638fc 17 Line(T x1, T y1, T x2, T y2):
messi1 16:7984718638fc 18 _x1(x1),
messi1 16:7984718638fc 19 _y1(y1),
messi1 16:7984718638fc 20 _x2(x2),
messi1 16:7984718638fc 21 _y2(y2)
messi1 16:7984718638fc 22 {}
messi1 16:7984718638fc 23
messi1 16:7984718638fc 24 Point<T> p1() const {return Point(_x1, _y1);}
messi1 16:7984718638fc 25 Point<T> p2() const {return Point(_x2, _y2);}
messi1 16:7984718638fc 26 void setP1(T x, T y){_x1 = x; _y1 = y;}
messi1 16:7984718638fc 27 void setP2(T x, T y){_x2 = x; _y2 = y;}
messi1 16:7984718638fc 28
messi1 16:7984718638fc 29 bool isNull() const {return (_x1 == 0 && _y1 == 0 && _x2 == 0 && _y2 == 0);}
messi1 16:7984718638fc 30
messi1 16:7984718638fc 31 friend inline bool operator==(const Line &l1, const Line<T> &l2){return (l1._x1==l2._x1 && l1._x2==l2._x2 && l1._y1==l2._y1 && l1._y2==l2._y2);}
messi1 16:7984718638fc 32 friend inline bool operator!=(const Line &l1, const Line<T> &l2){return (l1._x1!=l2._x1 || l1._x2!=l2._x2 || l1._y1!=l2._y1 || l1._y2!=l2._y2);}
messi1 16:7984718638fc 33
messi1 16:7984718638fc 34 bool contains(const Point<T> &p) const
messi1 16:7984718638fc 35 {
messi1 16:7984718638fc 36 T l = xp;
messi1 16:7984718638fc 37 T r = xp;
messi1 16:7984718638fc 38 if (w < 0)
messi1 16:7984718638fc 39 l += w;
messi1 16:7984718638fc 40 else
messi1 16:7984718638fc 41 r += w;
messi1 16:7984718638fc 42 if (l == r) // null rect
messi1 16:7984718638fc 43 return false;
messi1 16:7984718638fc 44
messi1 16:7984718638fc 45 if (p.x() < l || p.x() > r)
messi1 16:7984718638fc 46 return false;
messi1 16:7984718638fc 47
messi1 16:7984718638fc 48 T t = yp;
messi1 16:7984718638fc 49 T b = yp;
messi1 16:7984718638fc 50 if (h < 0)
messi1 16:7984718638fc 51 t += h;
messi1 16:7984718638fc 52 else
messi1 16:7984718638fc 53 b += h;
messi1 16:7984718638fc 54 if (t == b) // null rect
messi1 16:7984718638fc 55 return false;
messi1 16:7984718638fc 56
messi1 16:7984718638fc 57 if (p.y() < t || p.y() > b)
messi1 16:7984718638fc 58 return false;
messi1 16:7984718638fc 59
messi1 16:7984718638fc 60 return true;
messi1 16:7984718638fc 61 }
messi1 16:7984718638fc 62
messi1 16:7984718638fc 63 private:
messi1 16:7984718638fc 64 T _x1;
messi1 16:7984718638fc 65 T _y1;
messi1 16:7984718638fc 66 T _x2;
messi1 16:7984718638fc 67 T _y2;
messi1 16:7984718638fc 68 };
messi1 16:7984718638fc 69
messi1 16:7984718638fc 70
messi1 16:7984718638fc 71 #endif // __LINE_H_