Main Page | Namespace List | Class Hierarchy | Compound List | File List | Compound Members | File Members | Related Pages

gl_box.h

Go to the documentation of this file.
00001 #ifndef GL_BOX_H
00002 #define GL_BOX_H
00003 
00004 #include <iostream>
00005 #include <stdio.h>
00006 #include <stdlib.h>
00007 #include <string.h>
00008 #include <unistd.h>
00009 #include <math.h>
00010 #include <time.h>
00011 #include <sys/time.h>
00012 #include "movie.h"
00013 #include "drawable.h"
00014 #include "arcball.h"
00015 
00016 #ifdef GRAPHICS
00017 #include <FL/Fl.h>
00018 #include <FL/Fl_Window.h>
00019 #include <FL/Fl_Slider.h>
00020 #include <FL/Fl_Roller.h>
00021 #include <FL/Fl_Gl_Window.h>
00022 #include <FL/gl.h>
00023 #include <FL/glut.h>
00024 #include <GL/glu.h>
00025 #endif
00026 
00056 class gl_box : public Fl_Gl_Window
00057 {
00058     public:
00066         movie *m;
00067 
00077         double eye[3];
00078 
00082         double focus[3];
00083 
00087         double min_coords[3];
00088 
00092         double max_coords[3];
00093 
00098         double max_diff;
00099 
00106         ap_array<drawable> *objects;
00107 
00115         ap_array<gl_cylinder_f> *gl_cylinders;
00116 
00120         ap_array<gl_cylinder_s> *short_gl_cylinders;
00121 
00126         ap_array<byte> *pixels;
00127 
00131         double distance;
00132 
00137         double near_percent;
00138 
00143         double far_percent;
00144 
00145         bool rotating;          
00146         int wobble;             
00147         double wobble_theta;    
00148         timeval wobble_start;   
00149         timeval now;            
00150 
00151         bool full;              
00152         bool stereo;            
00153         bool cross_eyed;        
00154 
00155         double eye_separation;
00163         int spin_rate;          
00164         double spin;            
00165         timeval last_spin;      
00166 
00167         int save_detail;        
00168         double save_delay;      
00169 
00170         int mouse_start_x;      
00171         int mouse_start_y;      
00172         int mouse_x;            
00173         int mouse_y;            
00174         Arcball *a;             
00175         Arcball *light_arcball; 
00176         ap_color bg_color;
00177         bool stop;              
00178         bool lights;            
00179         bool blend;             
00180         bool axes;              
00181         bool box;               
00182         bool save_frame;        
00183         int  save_movie;        
00184         char *ppm_file;         
00185         const char *ppm_prefix; 
00186         int detail;             
00187         GLUquadricObj *qobj;    
00188         int sphere_lists;       
00189         int cylinder_lists;     
00190 
00199         int highlight;
00200 
00201         bool quash;             
00202 
00211         bool need_to_copy;
00212 
00217         const static double theta=0.00025;
00218 
00229         void set_limits ( double min_coords[3], double max_coords[3] );
00230 
00240         void reset_view();
00241 
00252         void set_stereo ( int option );
00253 
00259         void draw_axes();
00260 
00264         void draw_box();
00265 
00271         void copy_image_to_ppm();
00272 
00284         void add_to_color ( int i, int amount );
00285 
00289         void set_movie ( movie *m );
00290 
00298         void draw();
00299 
00305         void draw_frame(bool left);
00306 
00314         void gl_init();
00315 
00327         template <class T, class S>
00328         void draw ( sphere<T,S> *s );
00329 
00342         template <class T, class S>
00343         void draw ( gl_cylinder<T,S> *c );
00344 
00353         int handle ( int event );
00354 
00368         gl_box ( int x, int y, int w, int h, const char *label=0 );
00369 };
00370 
00371 #endif

Generated on Thu Nov 27 08:17:11 2003 for Animp - Animated Particles by doxygen 1.3.2