]> git.treefish.org Git - phys/latlib.git/blob - culooks.h
45fa31990118bcafbf930ea17328e4ef228e5a77
[phys/latlib.git] / culooks.h
1 #ifndef CULOOKS_H
2 #define CULOOKS_H
3
4 #include <pthread.h>
5 #include <vector>
6 #include <GL/glut.h>
7 #include <GL/glx.h>
8 #include <GL/gl.h>
9 #include <X11/Xlib.h>
10 #include <X11/Xutil.h>
11 #include <string>
12
13 using namespace std;
14
15 class culooks
16 {
17  public:
18   class cube {
19   public:
20     cube(int l);
21     void draw();
22     int id;
23     float az, alt;
24     float zoom;
25   private:
26     void drawAll();
27     void drawBox();
28     static int allid;
29     float *plaq;
30     float *link;
31     int l;
32   };
33   
34   struct window {
35     int layout[2];
36     double aspect;
37     vector<cube> cubes;
38     int w, h;
39     int gwinid;
40     bool initialized;
41     string name;
42   };
43
44   culooks (const char* name, const int& xcubes, const int& ycubes, const int& l, int *argc, char **argv);
45
46   static vector< pair<int,window*> > Windows;
47
48   struct wincontext {
49     GLXDrawable gDrawable;
50     Display *gDisplay;
51     GLXContext gContext;
52   };
53
54  private:
55   static pthread_t glThreadId;
56   static int windowid;
57   int mywid;
58   
59 };
60
61 #endif