renamed all .h to .hpp
[supertux.git] / src / math / aatriangle.hpp
1 #ifndef __AATRIANGLE_H__
2 #define __AATRIANGLE_H__
3
4 #include "rect.hpp"
5
6 /**
7  * An axis aligned triangle (ie. a triangle where 2 sides are parallel to the x-
8  * and y-axis.
9  */
10 class AATriangle : public Rect
11 {
12 public:
13   /** Directions:
14    *
15    *    SOUTHEWEST    NORTHEAST   SOUTHEAST    NORTHWEST
16    *    *      or      *---*   or      *    or *---* 
17    *    | \             \  |         / |       |  /
18    *    |  \             \ |        /  |       | /
19    *    *---*              *       *---*       *
20    *
21    * Deform flags: (see docs/aatriangletypes.png for details)
22    */
23   enum Direction {
24     SOUTHWEST = 0,
25     NORTHEAST,
26     SOUTHEAST,
27     NORTHWEST,
28     DIRECTION_MASK = 0x0003,
29     DEFORM1 = 0x0010,
30     DEFORM2 = 0x0020,
31     DEFORM3 = 0x0030,
32     DEFORM4 = 0x0040,
33     DEFORM_MASK = 0x0070
34   };
35
36   AATriangle()
37     : dir(SOUTHWEST)
38   {
39   }
40   AATriangle(const Vector& v1, const Vector& v2, int newdir)
41     : Rect(v1, v2), dir(newdir)
42   {
43   }
44
45   int dir;
46 };
47
48 #endif
49