Suporte a IR, talvez...
[Projeto-PCG.git] / geometry.h
blob2b8dbaed6d6eb793ab6c939487f1886e19deb000
1 #ifndef GEOMETRIA_H
2 #define GEOMETRIA_H
3 #include "SDL/SDL.h"
4 #include "SDL/SDL_opengl.h"
5 #include <vector>
7 const double PI = 3.14159265358979323846;
9 struct Ponto {
10 double x,y;
11 Ponto () { }
12 Ponto (double x1, double y1) {x = x1; y = y1;}
15 double distance(const Ponto &a,const Ponto &b);
17 double operator*(const Ponto &a, const Ponto &b);
18 Ponto operator-(const Ponto &a, const Ponto &b);
19 Ponto operator+(const Ponto &a, const Ponto &b);
21 struct Vetor {
22 double x,y;
25 class Linha {
26 public:
27 Ponto vertices[2];
29 void desenha();
30 Linha(double x1,double y1,double x2, double y2);
31 Linha(Ponto a, Ponto b) {vertices[0] = a; vertices[1] = b;}
34 class Rect {
35 private:
36 void normaliza();
37 public:
38 Ponto vertices[2];
39 Rect(double x1,double y1,double x2, double y2);
40 Rect(Ponto a, Ponto b) {vertices[0] = a; vertices[1] = b; normaliza();}
43 class Polygon {
44 public:
45 std::vector<Linha> linhas;
46 void addLinha(Linha linha) {linhas.push_back(linha);}
47 void desenha();
50 void drawCircle(double radius, int lines);
51 bool linesIntersect(const Linha a,const Linha b);
53 #endif