• Main Page
  • Classes
  • Files
  • File List

T:/Eigene Dateien/Visual Studio 2008/Projects/VisLuFramework/src/main.cpp

00001 ÿþ# i n c l u d e   " m a i n . h " 
00002  
00003  
00004  
00005  # i n c l u d e   " c o m m o n . h " 
00006  
00007  # i n c l u d e   " T i m e r . h " 
00008  
00009  
00010  
00011  # i n c l u d e   < w i n d o w s . h > 
00012  
00013  # i n c l u d e   < i o . h > 
00014  
00015  
00016  
00017  # i n c l u d e   < i l . h > 
00018  
00019  # i n c l u d e   < m a t h . h > 
00020  
00021  
00022  
00023  
00024  
00025  # i n c l u d e   < g l u i . h > 
00026  
00027  
00028  
00029  # i n c l u d e   " S h a d e r M a n a g e r . h p p " 
00030  
00031  # i n c l u d e   " u t i l i t y . h " 
00032  
00033  # i n c l u d e   " C o l o u r s . h " 
00034  
00035  
00036  
00037  # i n c l u d e   " H i s t o g r a m D r a w . h " 
00038  
00039  # i n c l u d e   " T r a n s f e r F u n c t i o n G U I . h " 
00040  
00041  # i n c l u d e   " T r a n s f e r F u n c t i o n T e x t u r e . h " 
00042  
00043  # i n c l u d e   " C o l o u r P i c k e r . h " 
00044  
00045  
00046  
00047  u s i n g   n a m e s p a c e   C o l o u r s ; 
00048  
00049  
00050  
00051  s t a t i c   c o n s t   s t d : : s t r i n g   S H A D E R _ P R O G R A M _ D I R   =   " . . / . . / R e s o u r c e s / S h a d e r P r o g r a m s / " ; 
00052  
00053  
00054  
00055  f l o a t   g _ f U 0 ,   g _ f U 1 ,   g _ f V 0 ,   g _ f V 1 ; 
00056  
00057  
00058  
00059  / /   O u r   g l u t I d l e F u n c 
00060  
00061  v o i d   g l u t I d l e ( v o i d ) 
00062  
00063  { 
00064  
00065          g l u t S e t W i n d o w ( g _ r e n d e r W i n d o w I D ) ; 
00066  
00067  
00068  
00069          / / t r i g g e r   t h e   d i s p l a y   f u n c t i o n   ( g l u t D i s p l a y   i s   c a l l e d   i n   t h e   n e x t   i t e r a t i o n   o f   t h e   g l u t M a i n L o o p ) 
00070  
00071          g l u t P o s t R e d i s p l a y ( ) ; 
00072  
00073  } 
00074  
00075  
00076  
00077  v o i d   r e n d e r R e n d e r W i n d o w ( ) 
00078  
00079  { 
00080  
00081          s t a t i c   T i m e r   t i m T i m e r ; 
00082  
00083          t i m T i m e r . s t a r t ( ) ; 
00084  
00085  
00086  
00087          p r e p a r e R e n d e r W i n d o w R e n d e r i n g ( ) ; 
00088  
00089  
00090  
00091          s t a r t F B O P e r s p e c t i v e ( ) ; 
00092  
00093          r e f r e s h F B O s ( ) ; 
00094  
00095  
00096  
00097          s t a r t R e n d e r V i e w P e r s p e c t i v e ( ) ; 
00098  
00099  
00100  
00101          / / d r a w C e n t e r C r o s s ( ) ; 
00102  
00103  
00104  
00105          s t a r t S h a d i n g ( ) ; 
00106  
00107          r e f r e s h S h a d e r D a t a ( ) ; 
00108  
00109          r e n d e r T o F u l l s c r e e n Q u a d ( ) ; 
00110  
00111          s t o p S h a d i n g ( ) ; 
00112  
00113  
00114  
00115  
00116  
00117          g l u t S w a p B u f f e r s ( ) ; 
00118  
00119  
00120  
00121          / / e s t i m a t e   f p s   
00122  
00123          c o n s t   d o u b l e   d T i m e P e r F r a m e   =   d o u b l e ( t i m T i m e r ) ; 
00124  
00125          c o n s t   d o u b l e   d F r a m e s P e r S e c o n d   =   d T i m e P e r F r a m e   >   0 . 0   ?   1 . 0   /   d T i m e P e r F r a m e   :   0 . 0 ; 
00126  
00127          p r i n t f ( " -   % 0 6 . 2 f   f r a m e s / s e c o n d   \ r " ,   d F r a m e s P e r S e c o n d ) ; 
00128  
00129  
00130  
00131          g e t _ e r r o r s ( ) ; 
00132  
00133  
00134  
00135          t i m T i m e r . s t o p ( ) ; 
00136  
00137  } 
00138  
00139  
00140  
00141  
00142  
00143  v o i d   r e n d e r R i g h t W i n d o w ( ) 
00144  
00145  { 
00146  
00147          g l C l e a r C o l o r ( 0 . 5 0 f ,   0 . 5 7 f ,   0 . 5 4 f ,   0 . f ) ; 
00148  
00149          g l C l e a r ( G L _ C O L O R _ B U F F E R _ B I T   |   G L _ D E P T H _ B U F F E R _ B I T   |   G L _ S T E N C I L _ B U F F E R _ B I T ) ; 
00150  
00151  
00152  
00153          g l u t S w a p B u f f e r s ( ) ; 
00154  
00155  } 
00156  
00157  
00158  
00159  v o i d   r e n d e r B o t t o m W i n d o w ( ) 
00160  
00161  { 
00162  
00163          g l C l e a r C o l o r ( 0 . 5 0 f ,   0 . 5 7 f ,   0 . 5 4 f ,   0 . f ) ; 
00164  
00165          g l C l e a r ( G L _ C O L O R _ B U F F E R _ B I T   |   G L _ D E P T H _ B U F F E R _ B I T   |   G L _ S T E N C I L _ B U F F E R _ B I T ) ; 
00166  
00167  
00168  
00169          i n t   w i n d o w W i d t h   =   g _ i M a i n W i n d o w W i d t h   -   g _ r i g h t W i n d o w W i d t h ; 
00170  
00171          i n t   w i n d o w H e i g h t   =   g _ b o t t o m W i n d o w H e i g h t ; 
00172  
00173  
00174  
00175          g l M a t r i x M o d e ( G L _ P R O J E C T I O N ) ; 
00176  
00177          g l L o a d I d e n t i t y ( ) ; 
00178  
00179          g l O r t h o ( ( G L d o u b l e ) 0 ,   ( G L d o u b l e ) w i n d o w W i d t h ,   ( G L d o u b l e ) 0 ,   ( G L d o u b l e ) w i n d o w H e i g h t ,   - 1 . 0 ,   1 . 0 ) ; 
00180  
00181          g l M a t r i x M o d e ( G L _ M O D E L V I E W ) ; 
00182  
00183          g l L o a d I d e n t i t y ( ) ; 
00184  
00185  
00186  
00187          g l V i e w p o r t ( 0 ,   0 ,   w i n d o w W i d t h ,   w i n d o w H e i g h t ) ; 
00188  
00189  
00190  
00191          g e t _ e r r o r s ( ) ; 
00192  
00193  
00194  
00195          r e f r e s h B o t t o m W i n d o w D a t a ( ) ; 
00196  
00197  
00198  
00199  
00200  
00201          d r a w T r a n s f e r T e x t u r e ( w i n d o w W i d t h ,   w i n d o w H e i g h t ,   ( f l o a t ) g _ i T r a n s f e r F u n c t i o n P i c k e r X O f f s e t ,   ( f l o a t ) g _ i T r a n s f e r F u n c t i o n P i c k e r Y O f f s e t ) ; 
00202  
00203  
00204  
00205          / / N o r m a l   s p a c e 
00206  
00207          d r a w T r a n s f e r F u n c P i c k e r ( w i n d o w W i d t h ,   w i n d o w H e i g h t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r X O f f s e t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r Y O f f s e t ) ; 
00208  
00209  
00210  
00211          / / O r t h o g o n a l   s p a c e 
00212  
00213          d r a w H i s t o g r a m ( w i n d o w W i d t h ,   w i n d o w H e i g h t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r X O f f s e t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r Y O f f s e t ) ; 
00214  
00215  
00216  
00217          d r a w C o n t r o l P o i n t s ( w i n d o w W i d t h ,   w i n d o w H e i g h t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r X O f f s e t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r Y O f f s e t ) ; 
00218  
00219  
00220  
00221          d r a w C o l o u r P i c k e r ( w i n d o w W i d t h ,   w i n d o w H e i g h t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r X O f f s e t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r Y O f f s e t ) ; 
00222  
00223          d r a w C o l o u r P i c k e r C u r s o r ( w i n d o w W i d t h ,   w i n d o w H e i g h t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r X O f f s e t ,   g _ i T r a n s f e r F u n c t i o n P i c k e r Y O f f s e t ) ; 
00224  
00225  
00226  
00227          g l u t S w a p B u f f e r s ( ) ; 
00228  
00229  
00230  
00231  } 
00232  
00233  
00234  
00235  v o i d   r e s h a p e F u n c B o t t o m W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
00236  
00237  { 
00238  
00239          p o s i t i o n B o t t o m W i n d o w ( w i d t h ,   h e i g h t ) ; 
00240  
00241  } 
00242  
00243  
00244  
00245  v o i d   r e s h a p e F u n c R e n d e r W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
00246  
00247  { 
00248  
00249          p o s i t i o n R e n d e r W i n d o w ( w i d t h ,   h e i g h t ) ; 
00250  
00251  } 
00252  
00253  
00254  
00255  v o i d   r e s h a p e F u n c R i g h t W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
00256  
00257  { 
00258  
00259          p o s i t i o n R i g h t W i n d o w ( w i d t h ,   h e i g h t ) ; 
00260  
00261  } 
00262  
00263  
00264  
00265  v o i d   g l u i M a s t e r S p e c i a l ( i n t   a ,   i n t   b ,   i n t   c ) 
00266  
00267  { 
00268  
00269  } 
00270  
00271  
00272  
00273  
00274  
00275  / /   O u r   g l u t R e s h a p e F u n c 
00276  
00277  v o i d   r e s h a p e M a i n W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
00278  
00279  { 
00280  
00281          / / g l u t S e t W i n d o w ( g _ m a i n W i n d o w I D ) ; 
00282  
00283          g _ i M a i n W i n d o w W i d t h   =   w i d t h ; 
00284  
00285          g _ i M a i n W i n d o w H e i g h t   =   h e i g h t ; 
00286  
00287  
00288  
00289          g _ i R e n d e r W i n d o w W i d t h   =   g _ i M a i n W i n d o w W i d t h - g _ r i g h t W i n d o w W i d t h ; 
00290  
00291          g _ i R e n d e r W i n d o w H e i g h t   =   g _ i M a i n W i n d o w H e i g h t - g _ b o t t o m W i n d o w H e i g h t ; 
00292  
00293          g _ f R a t i o _ r w   =   ( f l o a t ) g _ i R e n d e r W i n d o w H e i g h t / ( f l o a t ) g _ i R e n d e r W i n d o w W i d t h ; 
00294  
00295  
00296  
00297          r e s h a p e R e n d e r W i n d o w ( g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ) ; 
00298  
00299          p o s i t i o n R e n d e r W i n d o w ( 0 , 0 ) ; 
00300  
00301          r e s h a p e B o t t o m W i n d o w ( g _ i M a i n W i n d o w W i d t h ,   g _ b o t t o m W i n d o w H e i g h t ) ; 
00302  
00303          p o s i t i o n B o t t o m W i n d o w ( w i d t h ,   h e i g h t ) ; 
00304  
00305          r e s h a p e R i g h t W i n d o w ( g _ r i g h t W i n d o w W i d t h ,   g _ i M a i n W i n d o w H e i g h t   -   g _ b o t t o m W i n d o w H e i g h t ) ; 
00306  
00307          p o s i t i o n R i g h t W i n d o w ( w i d t h ,   h e i g h t ) ; 
00308  
00309  
00310  
00311          / / t o d o :   r e s h a p e   r e n d e r i n g   v i e w p o r t   h e r e 
00312  
00313          G L U I _ M a s t e r . a u t o _ s e t _ v i e w p o r t ( ) ; 
00314  
00315          g l u t P o s t R e d i s p l a y ( ) ; 
00316  
00317  } 
00318  
00319  
00320  
00321  / /   O u r   g l u t M o u s e F u n c 
00322  
00323  v o i d   m a i n W i n d o w M o u s e C a l l b a c k ( i n t   b u t t o n ,   i n t   s t a t e ,   i n t   x ,   i n t   y ) 
00324  
00325  { 
00326  
00327          / / t o d o :   d o   m o u s e   i n t e r a c t i o n   h e r e 
00328  
00329  } 
00330  
00331  
00332  
00333  v o i d   m o u s e W h e e l F u n c R e n d e r W i n d o w ( i n t   b u t t o n ,   i n t   d i r ,   i n t   x ,   i n t   y ) 
00334  
00335  { 
00336  
00337          i f   ( g _ i S l i c e D i r   = =   3 ) 
00338  
00339          { 
00340  
00341                  i f ( d i r > 0 ) 
00342  
00343                  { 
00344  
00345                          z o o m   - =   . 0 5 f ; 
00346  
00347                  } 
00348  
00349                  e l s e 
00350  
00351                  { 
00352  
00353                          z o o m   + =   . 0 5 f ; 
00354  
00355                  } 
00356  
00357                  u p d a t e R e n d e r W i n d o w ( 0 ) ; 
00358  
00359          } 
00360  
00361  } 
00362  
00363  
00364  
00365  v o i d   m o u s e M o t i o n R e n d e r W i n d o w ( i n t   x ,   i n t   y ) 
00366  
00367  { 
00368  
00369          i f ( v i e w R o t a t i o n D r a g g i n g ) 
00370  
00371                  u p d a t e V i e w R o t a t i o n W i t h D r a g P o s i t i o n ( x ,   y ) ; 
00372  
00373  } 
00374  
00375  
00376  
00377  v o i d   m o u s e M o t i o n B o t t o m W i n d o w ( i n t   x ,   i n t   y ) 
00378  
00379  { 
00380  
00381          i n t   t r a n s f e r F u n c S p a c e X   =   x ; 
00382  
00383          i n t   t r a n s f e r F u n c S p a c e Y   =   y ; 
00384  
00385          t r a n s f o r m C o o r d i n a t e s T o T r a n s f e r F u n c t i o n P i c k e r S p a c e ( t r a n s f e r F u n c S p a c e X ,   t r a n s f e r F u n c S p a c e Y ) ; 
00386  
00387  
00388  
00389          T F C o n t r o l P o i n t : : g _ b M o u s e I n s i d e B o t t o m W i n d o w   =   ( x   < =   g _ i R e n d e r W i n d o w W i d t h   & &   y   < =   g _ b o t t o m W i n d o w H e i g h t ) ; 
00390  
00391  
00392  
00393          T r a n s f e r F u n c t i o n G U I : : u p d a t e C o n t r o l P o i n t D r a g M o v e m e n t ( t r a n s f e r F u n c S p a c e X ,   t r a n s f e r F u n c S p a c e Y ) ; 
00394  
00395  
00396  
00397          i f ( g _ b D r a g g i n g C o l o u r P i c k e r C u r s o r ) 
00398  
00399                  u p d a t e C o l o u r P i c k e r C u r s o r M o v e m e n t ( x ,   y ) ; 
00400  
00401  
00402  
00403          u p d a t e B o t t o m W i n d o w ( 0 ) ; 
00404  
00405  } 
00406  
00407  
00408  
00409  
00410  
00411  / /   O u r   g l u t K e y b o a r d F u n c 
00412  
00413  v o i d   g l u t K e y b o a r d ( u n s i g n e d   c h a r   k e y ,   i n t   x ,   i n t   y ) 
00414  
00415  { 
00416  
00417          / / t o d o :   d o   k e y b o a r d   i n t e r a c t i o n   h e r e 
00418  
00419          s w i t c h   ( k e y )   { 
00420  
00421                  c a s e   ' w ' : 
00422  
00423                          g _ f C o o r d X Y Z   + =   g _ f I n c r e m e n t ; 
00424  
00425                          s t d : : c o u t   < <   g _ f C o o r d X Y Z   < <   " ;   " ; 
00426  
00427                          b r e a k ; 
00428  
00429                  c a s e   ' s ' : 
00430  
00431                          g _ f C o o r d X Y Z   - =   g _ f I n c r e m e n t ; 
00432  
00433                          b r e a k ; 
00434  
00435                  c a s e   ' d ' : 
00436  
00437                          g _ i S l i c e D i r   =   ( g _ i S l i c e D i r + 1 ) % 3 ; 
00438  
00439                          b r e a k ; 
00440  
00441          } 
00442  
00443  
00444  
00445  
00446  
00447          / / t h i s   s a v e s   a   s c r e e n s h o t   o f   t h e   O p e n G L   w i n d o w   i f   C t r l + G   i s   p r e s s e d 
00448  
00449          i f   ( k e y   = =   u n s i g n e d   c h a r ( 7 )   & &   ( g l u t G e t M o d i f i e r s ( )   &   G L U T _ A C T I V E _ C T R L ) )   / /   C t r l + G   t o   s a v e   s c r e e n s h o t s 
00450  
00451          {       
00452  
00453                  g l u t S e t W i n d o w ( g _ r e n d e r W i n d o w I D ) ; 
00454  
00455                  u n s i g n e d   i n t   u I m a g e   =   0 ; 
00456  
00457                  s t d : : v e c t o r < u n s i g n e d   c h a r >   v e c I m a g e ; 
00458  
00459  
00460  
00461                  c h a r   v c F i l e n a m e [ 1 0 2 4 ] ; 
00462  
00463                  / /   C h e c k   f o r   n e x t   f r e e   f i l e n a m e ,   s i n c e   w e   d o n ' t   w a n t   t o   o v e r w r i t e   e x i s t i n g   i m a g e s 
00464  
00465                  / /   i m a g e s   w i l l   b e   s a v e d   a s   ' V i s L u F r a m e w o r k 0 0 0 0 . p n g ' , ' V i s L u F r a m e w o r k 0 0 0 1 . p n g ' , ' V i s L u F r a m e w o r k 0 0 0 2 . p n g ' , e t c . 
00466  
00467                  f o r   ( i n t   i = 0 ; i < 9 9 9 9 ; i + + ) 
00468  
00469                  { 
00470  
00471                          s p r i n t f _ s ( v c F i l e n a m e , 1 0 2 4 , " V i s L u F r a m e w o r k % 0 4 d . p n g " , i ) ; 
00472  
00473  
00474  
00475                          / /   c h e c k   i f   f i l e   d o e s   n o t   e x i s t 
00476  
00477                          i f (   ( _ a c c e s s ( v c F i l e n a m e , 0 ) )   = =   - 1   ) 
00478  
00479                                  b r e a k ; 
00480  
00481                  } 
00482  
00483  
00484  
00485                  s t d : : c o u t   < <   " -   S a v i n g   s c r e e n s h o t   t o   ' "   < <   v c F i l e n a m e   < <   " '   . . . "   < <   s t d : : e n d l ; 
00486  
00487  
00488  
00489                  v e c I m a g e . r e s i z e ( g _ i R e n d e r W i n d o w W i d t h * g _ i R e n d e r W i n d o w H e i g h t * 4 ) ; 
00490  
00491  
00492  
00493                  / /   R e a d   t h e   O p e n G L   f r a m e b u f f e r 
00494  
00495                  g l P u s h A t t r i b ( G L _ P I X E L _ M O D E _ B I T ) ; 
00496  
00497                  g l R e a d B u f f e r ( G L _ F R O N T ) ; 
00498  
00499  
00500  
00501                  g l R e a d P i x e l s ( 0 , 0 , g _ i R e n d e r W i n d o w W i d t h , g _ i R e n d e r W i n d o w H e i g h t , G L _ R G B A , G L _ U N S I G N E D _ B Y T E , ( v o i d * )   & ( v e c I m a g e . f r o n t ( ) )   ) ; 
00502  
00503                  c o n s t   G L e n u m   g l E r r o r   =   g l G e t E r r o r ( ) ;         
00504  
00505  
00506  
00507                  g l P o p A t t r i b ( ) ; 
00508  
00509  
00510  
00511                  i f   ( g l E r r o r   ! =   G L _ N O _ E R R O R ) 
00512  
00513                  { 
00514  
00515                          s t d : : c e r r < < " U n a b l e   t o   r e a d   f r a m e   b u f f e r   " < < g l u E r r o r S t r i n g ( g l E r r o r ) < < s t d : : e n d l ; 
00516  
00517                  } 
00518  
00519                  e l s e 
00520  
00521                  { 
00522  
00523                          i l G e n I m a g e s ( 1 ,   & u I m a g e ) ; 
00524  
00525  
00526  
00527                          i f   ( i l G e t E r r o r ( )   ! =   I L _ N O _ E R R O R ) 
00528  
00529                          { 
00530  
00531                                  s t d : : c e r r < < " U n a b l e   t o   c r e a t e   i m a g e " < < s t d : : e n d l ; 
00532  
00533                          } 
00534  
00535                          e l s e 
00536  
00537                          { 
00538  
00539                                  i l B i n d I m a g e ( u I m a g e ) ; 
00540  
00541  
00542  
00543                                  i f   ( i l G e t E r r o r ( )   ! =   I L _ N O _ E R R O R ) 
00544  
00545                                  { 
00546  
00547                                          s t d : : c e r r < < " U n a b l e   t o   b i n d   i m a g e " < < s t d : : e n d l ; 
00548  
00549                                  } 
00550  
00551                                  e l s e 
00552  
00553                                  { 
00554  
00555                                          i l T e x I m a g e ( g _ i R e n d e r W i n d o w W i d t h , g _ i R e n d e r W i n d o w H e i g h t , 1 , 4 , I L _ R G B A , I L _ U N S I G N E D _ B Y T E , ( v o i d * )   & ( v e c I m a g e . f r o n t ( ) )   ) ; 
00556  
00557  
00558  
00559                                          i f   ( i l G e t E r r o r ( )   ! =   I L _ N O _ E R R O R ) 
00560  
00561                                          { 
00562  
00563                                                  s t d : : c e r r < < " U n a b l e   t o   s t o r e   i m a g e " < < s t d : : e n d l ; 
00564  
00565                                          } 
00566  
00567                                          e l s e 
00568  
00569                                          { 
00570  
00571                                                  / /   U s e   D e v I L   t o   s a v e   a   s c r e e n s h o t   o f   t h e   O p e n G L   w i n d o w 
00572  
00573                                                  i l S a v e I m a g e ( v c F i l e n a m e ) ; 
00574  
00575  
00576  
00577                                                  i f   ( i l G e t E r r o r ( )   ! =   I L _ N O _ E R R O R ) 
00578  
00579                                                  { 
00580  
00581                                                          s t d : : c e r r < < " U n a b l e   t o   s a v e   i m a g e " < < s t d : : e n d l ; 
00582  
00583                                                  } 
00584  
00585                                                  e l s e 
00586  
00587                                                  { 
00588  
00589                                                          s t d : : c o u t   < <   " -   S c r e e n s h o t   s a v e d . "   < <   s t d : : e n d l ; 
00590  
00591                                                  } 
00592  
00593                                          } 
00594  
00595                                  } 
00596  
00597                          } 
00598  
00599                  } 
00600  
00601                  i f   ( u I m a g e ) 
00602  
00603                  { 
00604  
00605                          i l B i n d I m a g e ( 0 ) ; 
00606  
00607                          i l D e l e t e I m a g e s ( 1 , & u I m a g e ) ; 
00608  
00609                  } 
00610  
00611          } 
00612  
00613  
00614  
00615  
00616  
00617          / / D e l e t i o n   o f   c o n t r o l p o i n t s   v i a   d e l e t e   k e y 
00618  
00619          i f ( k e y   = =   1 2 7 ) 
00620  
00621          { 
00622  
00623                  T r a n s f e r F u n c t i o n G U I : : d e l e t e S e l e c t e d C o n t r o l P o i n t ( ) ; 
00624  
00625                  u p d a t e B o t t o m W i n d o w ( 0 ) ; 
00626  
00627          } 
00628  
00629  } 
00630  
00631  
00632  
00633  / /   E x i t   f u n c t i o n   ( s o m e   c l e a n u p ) 
00634  
00635  v o i d   g l u t C l o s e ( ) 
00636  
00637  { 
00638  
00639          / / t o d o :   c l e a n u p 
00640  
00641  } 
00642  
00643  
00644  
00645  
00646  
00647  c o n s t   i n t   G e t N e x t P o w e r O f T w o ( c o n s t   i n t   i N u m b e r ) 
00648  
00649  { 
00650  
00651          i n t   i P o w e r O f T w o   =   1 ; 
00652  
00653  
00654  
00655          w h i l e   ( i P o w e r O f T w o   <   i N u m b e r ) 
00656  
00657                  i P o w e r O f T w o   =   i P o w e r O f T w o   *   2 ; 
00658  
00659  
00660  
00661          r e t u r n   i P o w e r O f T w o ; 
00662  
00663  } ; 
00664  
00665  
00666  
00667  
00668  
00669  / /   E n t r y   p o i n t 
00670  
00671  i n t   m a i n ( i n t   a r g c ,   c h a r   * * a r g v ) 
00672  
00673  { 
00674  
00675          s t d : : c o u t   < <   " V i s u a l i s i e r u n g   2 0 1 0 \ n \ n T h o m a s   R i t t l e r   < 0 1 2 5 7 2 8 >   ,   L u k a s   M e i n d l   < 1 0 2 8 1 6 0 > \ n "   < <   s t d : : e n d l ; 
00676  
00677  
00678  
00679          i f ( i n i t i a l i z a t i o n ( a r g c ,   a r g v )   ! =   E X I T _ S U C C E S S ) 
00680  
00681                  r e t u r n   E X I T _ F A I L U R E ; 
00682  
00683  
00684  
00685          e n t e r M a i n L o o p ( ) ; 
00686  
00687  
00688  
00689          s t d : : c o u t   < <   " -   M a i n   l o o p   t e r m i n a t e d . "   < <   s t d : : e n d l   < <   s t d : : e n d l ; 
00690  
00691          r e t u r n   E X I T _ S U C C E S S ; 
00692  
00693  } 
00694  
00695  
00696  
00697  v o i d   i n i t G L U I F u n c s M a i n ( ) 
00698  
00699  { 
00700  
00701          G L U I _ M a s t e r . s e t _ g l u t R e s h a p e F u n c ( r e s h a p e M a i n W i n d o w ) ; 
00702  
00703          G L U I _ M a s t e r . s e t _ g l u t K e y b o a r d F u n c ( g l u t K e y b o a r d ) ; 
00704  
00705          G L U I _ M a s t e r . s e t _ g l u t M o u s e F u n c ( m a i n W i n d o w M o u s e C a l l b a c k ) ; 
00706  
00707          G L U I _ M a s t e r . s e t _ g l u t S p e c i a l F u n c ( g l u i M a s t e r S p e c i a l ) ; 
00708  
00709  
00710  
00711          G L U I _ M a s t e r . s e t _ g l u t I d l e F u n c ( g l u t I d l e ) ; 
00712  
00713  } 
00714  
00715  
00716  
00717  v o i d   i n i t G L U I F u n c s B o t t o m W i n d o w ( ) 
00718  
00719  { 
00720  
00721          G L U I _ M a s t e r . s e t _ g l u t R e s h a p e F u n c ( r e s h a p e F u n c B o t t o m W i n d o w ) ; 
00722  
00723          G L U I _ M a s t e r . s e t _ g l u t K e y b o a r d F u n c ( g l u t B o t t o m W i n d o w K e y b o a r d ) ; 
00724  
00725          G L U I _ M a s t e r . s e t _ g l u t M o u s e F u n c ( m o u s e A c t i o n B o t t o m W i n d o w ) ; 
00726  
00727          G L U I _ M a s t e r . s e t _ g l u t S p e c i a l F u n c ( g l u i M a s t e r S p e c i a l ) ; 
00728  
00729  
00730  
00731          G L U I _ M a s t e r . s e t _ g l u t I d l e F u n c ( g l u t I d l e ) ; 
00732  
00733  } 
00734  
00735  
00736  
00737  v o i d   i n i t G L U I F u n c s R e n d e r W i n d o w ( ) 
00738  
00739  { 
00740  
00741          G L U I _ M a s t e r . s e t _ g l u t R e s h a p e F u n c ( r e s h a p e F u n c R e n d e r W i n d o w ) ; 
00742  
00743          G L U I _ M a s t e r . s e t _ g l u t K e y b o a r d F u n c ( g l u t K e y b o a r d ) ; 
00744  
00745          G L U I _ M a s t e r . s e t _ g l u t M o u s e F u n c ( m o u s e A c t i o n R e n d e r W i n d o w ) ; 
00746  
00747          G L U I _ M a s t e r . s e t _ g l u t S p e c i a l F u n c ( g l u i M a s t e r S p e c i a l ) ; 
00748  
00749  
00750  
00751          G L U I _ M a s t e r . s e t _ g l u t I d l e F u n c ( g l u t I d l e ) ; 
00752  
00753  } 
00754  
00755  
00756  
00757  v o i d   i n i t G L U I F u n c s R i g h t W i n d o w ( ) 
00758  
00759  { 
00760  
00761          G L U I _ M a s t e r . s e t _ g l u t R e s h a p e F u n c ( r e s h a p e F u n c R i g h t W i n d o w ) ; 
00762  
00763          G L U I _ M a s t e r . s e t _ g l u t K e y b o a r d F u n c ( g l u t K e y b o a r d ) ; 
00764  
00765          G L U I _ M a s t e r . s e t _ g l u t M o u s e F u n c ( m a i n W i n d o w M o u s e C a l l b a c k ) ; 
00766  
00767          G L U I _ M a s t e r . s e t _ g l u t S p e c i a l F u n c ( g l u i M a s t e r S p e c i a l ) ; 
00768  
00769  
00770  
00771          G L U I _ M a s t e r . s e t _ g l u t I d l e F u n c ( g l u t I d l e ) ; 
00772  
00773  } 
00774  
00775  
00776  
00777  v o i d   e n t e r M a i n L o o p ( ) 
00778  
00779  { 
00780  
00781          s t d : : c o u t   < <   " -   E n t e r i n g   m a i n   l o o p   . . . "   < <   s t d : : e n d l < <   s t d : : e n d l ; 
00782  
00783  
00784  
00785          s t d : : c o u t   < <   "     K e y b o a r d : "   < <   s t d : : e n d l ; 
00786  
00787          s t d : : c o u t   < <   "         [ C T R L + G ]                           s a v e   s c r e e n s h o t "   < <   s t d : : e n d l < <   s t d : : e n d l ; 
00788  
00789  
00790  
00791          / /   E n t e r   t h e   m a i n   l o o p 
00792  
00793          g l u t M a i n L o o p ( ) ; 
00794  
00795  
00796  
00797          g l u t C l o s e ( ) ; 
00798  
00799  } 
00800  
00801  
00802  
00803  v o i d   i n i t G l u t M a i n W i n d o w (   i n t   a r g c ,   c h a r   * *   a r g v   ) 
00804  
00805  { 
00806  
00807          / /   I n i t i a l i z e   G L U T   a n d   c r e a t e   w i n d o w 
00808  
00809          s t d : : c o u t   < <   " -   I n i t i a l i z i n g   G L U T   . . . "   < <   s t d : : e n d l ; 
00810  
00811          g l u t I n i t   ( & a r g c ,   a r g v ) ; 
00812  
00813  
00814  
00815          / / g l u t S e t O p t i o n ( G L U T _ A C T I O N _ O N _ W I N D O W _ C L O S E , G L U T _ A C T I O N _ G L U T M A I N L O O P _ R E T U R N S ) ; 
00816  
00817          g l u t I n i t W i n d o w S i z e   ( g _ i M a i n W i n d o w W i d t h , g _ i M a i n W i n d o w H e i g h t ) ; 
00818  
00819          g l u t I n i t D i s p l a y M o d e   ( G L U T _ R G B   |   G L U T _ D O U B L E   |   G L U T _ D E P T H   |   G L U T _ A L P H A ) ; 
00820  
00821  
00822  
00823          g _ m a i n W i n d o w I D   =   g l u t C r e a t e W i n d o w ( " V i s u a l i s i e r u n g   2 0 1 0   -   T h o m a s   R i t t l e r   < 0 1 2 5 7 2 8 >   ,   L u k a s   M e i n d l   < 1 0 2 8 1 6 0 > " ) ; 
00824  
00825          g _ h M a i n W i n d o w   =   F i n d W i n d o w ( 0 ,   " V i s u a l i s i e r u n g   2 0 1 0   -   T h o m a s   R i t t l e r   < 0 1 2 5 7 2 8 >   ,   L u k a s   M e i n d l   < 1 0 2 8 1 6 0 > " ) ; 
00826  
00827          g l u t C l o s e F u n c ( g l u t C l o s e ) ; 
00828  
00829  
00830  
00831          s t d : : c o u t   < <   " -   G L U T   i n i t i a l i z e d . "   < <   s t d : : e n d l   < <   s t d : : e n d l ; 
00832  
00833  } 
00834  
00835  
00836  
00837  
00838  
00839  i n t   i n i t D e v i l ( ) 
00840  
00841  { 
00842  
00843          / /   I n i t i a l i z e   D e v I L   ( a n   i m a g e   l i b r a r y ) 
00844  
00845          s t d : : c o u t   < <   " -   I n i t i a l i z i n g   D e v I L   . . . "   < <   s t d : : e n d l ; 
00846  
00847          i l I n i t ( ) ; 
00848  
00849  
00850  
00851          i f   ( i l G e t E r r o r ( )   ! =   I L _ N O _ E R R O R ) 
00852  
00853          { 
00854  
00855                  s t d : : c e r r   < <   " E r r o r   i n i t i a l i z i n g   D e v I L "   < <   s t d : : e n d l ; 
00856  
00857                  r e t u r n   E X I T _ F A I L U R E ; 
00858  
00859          } 
00860  
00861  
00862  
00863          i l E n a b l e ( I L _ O R I G I N _ S E T ) ; 
00864  
00865          i l O r i g i n F u n c ( I L _ O R I G I N _ L O W E R _ L E F T ) ; 
00866  
00867          s t d : : c o u t   < <   " -   D e v I L   i n i t i a l i z e d . "   < <   s t d : : e n d l   < <   s t d : : e n d l ; 
00868  
00869  
00870  
00871          r e t u r n   E X I T _ S U C C E S S ; 
00872  
00873  } 
00874  
00875  
00876  
00877  v o i d   p r o c e s s S l i c e O f D a t a ( s t d : : s t r i n g   s t r D a t a F i l e   ) 
00878  
00879  { 
00880  
00881          g l u t S e t W i n d o w ( g _ r e n d e r W i n d o w I D ) ; 
00882  
00883  
00884  
00885          G L e n u m   g l E r r o r   =   G L _ N O _ E R R O R ; 
00886  
00887  
00888  
00889          / / l o a d   v o l u m e 
00890  
00891          g _ V o l u m e . l o a d ( s t r D a t a F i l e ) ;   
00892  
00893  
00894  
00895          / / c r e a t e   t e x t u r e 
00896  
00897          i f ( g _ u E x a m p l e T e x t u r e   = =   0 ) 
00898  
00899          { 
00900  
00901                  g l G e n T e x t u r e s ( 1 ,   & g _ u E x a m p l e T e x t u r e ) ; 
00902  
00903                  g l E r r o r   =   g l G e t E r r o r ( ) ; 
00904  
00905          } 
00906  
00907  
00908  
00909          i f   ( g l E r r o r   ! =   G L _ N O _ E R R O R ) 
00910  
00911          { 
00912  
00913                  s t d : : c e r r < < " E r r o r   g e n e r a t i n g   t e x t u r e :   " < < g l u E r r o r S t r i n g ( g l E r r o r ) < < s t d : : e n d l ; 
00914  
00915          }   
00916  
00917          e l s e   i f   ( g _ u E x a m p l e T e x t u r e ) 
00918  
00919          { 
00920  
00921  
00922  
00923                  i f ( G L E W _ E X T _ t e x t u r e 3 D ) 
00924  
00925                  { 
00926  
00927                          s a v e D a t a T o 3 D T e x t u r e ( ) ; 
00928  
00929                  } 
00930  
00931                  e l s e 
00932  
00933                  { 
00934  
00935                          s a v e S l i c e T o 2 D T e x t u r e ( ) ; 
00936  
00937                  } 
00938  
00939          } 
00940  
00941  
00942  
00943          s t d : : c o u t   < <   s t d : : e n d l ; 
00944  
00945  
00946  
00947          g l C l e a r ( G L _ C O L O R _ B U F F E R _ B I T   |   G L _ D E P T H _ B U F F E R _ B I T ) ; 
00948  
00949          g l u t S w a p B u f f e r s ( ) ; 
00950  
00951  } 
00952  
00953  
00954  
00955  
00956  
00957  v o i d   i n i t R i g h t W i n d o w ( ) 
00958  
00959  { 
00960  
00961          i n i t I n t e r f a c e R i g h t ( ) ; 
00962  
00963  } 
00964  
00965  
00966  
00967  i n t   i n i t i a l i z a t i o n (   i n t   a r g c ,   c h a r   * *   a r g v ) 
00968  
00969  { 
00970  
00971          G l e w C o n t e n t M a n a g e m e n t *   g l e w C o n t e n t M a n a g e r   =   G l e w C o n t e n t M a n a g e m e n t : : g e t I n s t a n c e ( ) ; 
00972  
00973  
00974  
00975          i n i t G l u t M a i n W i n d o w ( a r g c ,   a r g v ) ; 
00976  
00977          i n i t G L U I F u n c s M a i n ( ) ; 
00978  
00979          g l u t M o u s e W h e e l F u n c ( m o u s e W h e e l F u n c R e n d e r W i n d o w ) ; 
00980  
00981          g l e w C o n t e n t M a n a g e r - > i n i t M a i n W i n d o w C o n t e x t ( ) ; 
00982  
00983  
00984  
00985          i n i t G l u t S u b W i n d o w R e n d e r i n g ( ) ; 
00986  
00987          i n i t G L U I F u n c s R e n d e r W i n d o w ( ) ; 
00988  
00989          g l e w C o n t e n t M a n a g e r - > i n i t R e n d e r W i n d o w C o n t e x t ( ) ; 
00990  
00991  
00992  
00993          i n i t G l u t S u b W i n d o w B o t t o m ( ) ; 
00994  
00995          i n i t G L U I F u n c s B o t t o m W i n d o w ( ) ; 
00996  
00997          g l e w C o n t e n t M a n a g e r - > i n i t B o t t o m W i n d o w C o n t e x t ( ) ; 
00998  
00999  
01000  
01001          i n i t G l u t S u b W i n d o w R i g h t ( ) ; 
01002  
01003          i n i t G L U I F u n c s R i g h t W i n d o w ( ) ; 
01004  
01005          g l e w C o n t e n t M a n a g e r - > i n i t R i g h t W i n d o w C o n t e x t ( ) ; 
01006  
01007  
01008  
01009          i f ( i n i t D e v i l ( )   ! =   E X I T _ S U C C E S S ) 
01010  
01011                  r e t u r n   E X I T _ F A I L U R E ; 
01012  
01013  
01014  
01015          g e t _ e r r o r s ( ) ; 
01016  
01017          i n i t R e n d e r W i n d o w ( ) ; 
01018  
01019          i n i t B o t t o m W i n d o w ( ) ; 
01020  
01021          i n i t R i g h t W i n d o w ( ) ; 
01022  
01023  
01024  
01025          g _ H i s t o g r a m D r a w   =   H i s t o g r a m D r a w : : g e t I n s t a n c e ( ) ; 
01026  
01027  
01028  
01029          b o o l   s u c c e s s   =   i n i t S h a d e r s ( ) ; 
01030  
01031          i f ( ! s u c c e s s ) 
01032  
01033                  r e t u r n   E X I T _ F A I L U R E ; 
01034  
01035  
01036  
01037          i n i t F B O s ( ) ; 
01038  
01039  
01040  
01041  
01042  
01043  
01044  
01045          r e t u r n   E X I T _ S U C C E S S ; 
01046  
01047  } 
01048  
01049  
01050  
01051  v o i d   i n i t G l u t S u b W i n d o w R e n d e r i n g ( ) 
01052  
01053  { 
01054  
01055          g _ r e n d e r W i n d o w I D   =   g l u t C r e a t e S u b W i n d o w ( g _ m a i n W i n d o w I D ,   0 ,   0 ,   1 ,   1 ) ; 
01056  
01057  
01058  
01059          g _ i R e n d e r W i n d o w W i d t h   =   g _ i M a i n W i n d o w W i d t h   -   g _ r i g h t W i n d o w W i d t h ; 
01060  
01061          g _ i R e n d e r W i n d o w H e i g h t   =   g _ i M a i n W i n d o w H e i g h t   -   g _ b o t t o m W i n d o w H e i g h t ; 
01062  
01063          g _ f R a t i o _ r w   =     ( f l o a t ) g _ i R e n d e r W i n d o w H e i g h t / ( f l o a t ) g _ i R e n d e r W i n d o w W i d t h ; 
01064  
01065  
01066  
01067          / / p o s i t i o n R e n d e r W i n d o w ( w i d t h ,   h e i g h t ) ; 
01068  
01069          r e s h a p e R e n d e r W i n d o w ( g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ) ; 
01070  
01071  
01072  
01073          g l u t I n i t D i s p l a y M o d e   ( G L U T _ R G B   |   G L U T _ D O U B L E   |   G L U T _ D E P T H   |   G L U T _ A L P H A ) ; 
01074  
01075          g l C l e a r ( G L _ C O L O R _ B U F F E R _ B I T   |   G L _ D E P T H _ B U F F E R _ B I T ) ; 
01076  
01077  
01078  
01079          g l V i e w p o r t ( 0 ,   0 ,   g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ) ; 
01080  
01081  
01082  
01083          g l M a t r i x M o d e ( G L _ P R O J E C T I O N ) ; 
01084  
01085          g l L o a d I d e n t i t y ( ) ; 
01086  
01087          g l u O r t h o 2 D ( 0 ,   g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ,   0 ) ;     
01088  
01089          g l M a t r i x M o d e ( G L _ M O D E L V I E W ) ; 
01090  
01091          g l L o a d I d e n t i t y ( ) ; 
01092  
01093  
01094  
01095          c o n s t   u n s i g n e d   c h a r   v p M e s s a g e [ ]   =   { " I n i t i a l i z i n g   ( s e e   c o n s o l e   f o r   d e t a i l s )   . . . " } ; 
01096  
01097          c o n s t   i n t   i M e s s a g e W i d t h   =   g l u t B i t m a p L e n g t h ( G L U T _ B I T M A P _ H E L V E T I C A _ 1 2 , v p M e s s a g e ) ; 
01098  
01099          c o n s t   i n t   i M e s s a g e H e i g h t   =   g l u t B i t m a p H e i g h t ( G L U T _ B I T M A P _ H E L V E T I C A _ 1 2 ) ; 
01100  
01101  
01102  
01103          g l C o l o r 4 f ( 1 . 0 f , 1 . 0 f , 1 . 0 f , 1 . 0 f ) ; 
01104  
01105          g l R a s t e r P o s 2 f ( - ( f l o a t ( i M e s s a g e W i d t h ) / f l o a t ( g _ i M a i n W i n d o w W i d t h ) ) , ( f l o a t ( i M e s s a g e H e i g h t ) / f l o a t ( g _ i M a i n W i n d o w H e i g h t ) ) ) ; 
01106  
01107          g l u t B i t m a p S t r i n g ( G L U T _ B I T M A P _ H E L V E T I C A _ 1 2 , v p M e s s a g e ) ; 
01108  
01109          g l R a s t e r P o s 2 f ( 0 . 0 f , 0 . 0 f ) ;       
01110  
01111          g l u t S w a p B u f f e r s ( ) ; 
01112  
01113  
01114  
01115          / / s e t   g l u t   ( c a l l b a c k - )   f u n c t i o n s 
01116  
01117          g l u t D i s p l a y F u n c   ( r e n d e r R e n d e r W i n d o w ) ; 
01118  
01119          g l u t M o t i o n F u n c   ( m o u s e M o t i o n R e n d e r W i n d o w ) ; 
01120  
01121          g l u t M o u s e W h e e l F u n c ( m o u s e W h e e l F u n c R e n d e r W i n d o w ) ; 
01122  
01123  } 
01124  
01125  
01126  
01127  v o i d   i n i t G l u t S u b W i n d o w B o t t o m ( ) 
01128  
01129  { 
01130  
01131          g _ b o t t o m W i n d o w I D   =   g l u t C r e a t e S u b W i n d o w ( g _ m a i n W i n d o w I D ,   0 ,     0 ,   1 ,   1 ) ; 
01132  
01133  
01134  
01135          u n s i g n e d   i n t   w i d t h   =   g _ i M a i n W i n d o w W i d t h ; 
01136  
01137          u n s i g n e d   i n t   h e i g h t   =   g _ b o t t o m W i n d o w H e i g h t ; 
01138  
01139  
01140  
01141          r e s h a p e B o t t o m W i n d o w ( w i d t h ,   h e i g h t ) ; 
01142  
01143  
01144  
01145          g l u t D i s p l a y F u n c ( r e n d e r B o t t o m W i n d o w ) ; 
01146  
01147          g l u t M o t i o n F u n c ( m o u s e M o t i o n B o t t o m W i n d o w ) ; 
01148  
01149  } 
01150  
01151  
01152  
01153  
01154  
01155  v o i d   i n i t G l u t S u b W i n d o w R i g h t ( ) 
01156  
01157  { 
01158  
01159          g _ r i g h t W i n d o w I D   =   g l u t C r e a t e S u b W i n d o w ( g _ m a i n W i n d o w I D ,   0 ,   0 ,   1 ,   1 ) ; 
01160  
01161  
01162  
01163          u n s i g n e d   i n t   w i d t h   =   g _ r i g h t W i n d o w W i d t h ; 
01164  
01165          u n s i g n e d   i n t   h e i g h t   =   g _ i M a i n W i n d o w H e i g h t   -   g _ b o t t o m W i n d o w H e i g h t ; 
01166  
01167  
01168  
01169  
01170  
01171          r e s h a p e R i g h t W i n d o w ( w i d t h ,   h e i g h t ) ; 
01172  
01173          g l u t D i s p l a y F u n c ( r e n d e r R i g h t W i n d o w ) ; 
01174  
01175  } 
01176  
01177  
01178  
01179  v o i d   p o s i t i o n R e n d e r W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
01180  
01181  { 
01182  
01183          g l u t S e t W i n d o w ( g _ r e n d e r W i n d o w I D ) ; 
01184  
01185          g l u t P o s i t i o n W i n d o w ( 0 ,   0 ) ; 
01186  
01187          g l u t P o s t R e d i s p l a y ( ) ; 
01188  
01189  } 
01190  
01191  
01192  
01193  v o i d   p o s i t i o n B o t t o m W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
01194  
01195  { 
01196  
01197          u n s i g n e d   i n t   b o t t o m W i n d o w V e r t i c a l P o s   =   g _ i M a i n W i n d o w H e i g h t   -   g _ b o t t o m W i n d o w H e i g h t ; 
01198  
01199  
01200  
01201          g l u t S e t W i n d o w ( g _ b o t t o m W i n d o w I D ) ; 
01202  
01203          g l u t P o s i t i o n W i n d o w ( 0 ,   b o t t o m W i n d o w V e r t i c a l P o s ) ; 
01204  
01205          g l u t P o s t R e d i s p l a y ( ) ; 
01206  
01207  } 
01208  
01209  
01210  
01211  v o i d   p o s i t i o n R i g h t W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
01212  
01213  { 
01214  
01215          u n s i g n e d   i n t   r i g h t W i n d o w H o r i z o n t i c a l P o s   =   g _ i M a i n W i n d o w W i d t h   -   g _ r i g h t W i n d o w W i d t h ; 
01216  
01217  
01218  
01219          g l u t S e t W i n d o w ( g _ r i g h t W i n d o w I D ) ; 
01220  
01221          g l u t P o s i t i o n W i n d o w ( r i g h t W i n d o w H o r i z o n t i c a l P o s ,   0 ) ; 
01222  
01223          g l u t P o s t R e d i s p l a y ( ) ; 
01224  
01225  } 
01226  
01227  
01228  
01229  v o i d   r e s h a p e R e n d e r W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
01230  
01231  { 
01232  
01233          g l u t S e t W i n d o w ( g _ r e n d e r W i n d o w I D ) ; 
01234  
01235          g l u t R e s h a p e W i n d o w ( w i d t h ,   h e i g h t ) ; 
01236  
01237  
01238  
01239          / / G L U I _ M a s t e r . a u t o _ s e t _ v i e w p o r t ( ) ; 
01240  
01241  } 
01242  
01243  
01244  
01245  
01246  
01247  v o i d   r e s h a p e R i g h t W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
01248  
01249  { 
01250  
01251          g l u t S e t W i n d o w ( g _ r i g h t W i n d o w I D ) ; 
01252  
01253          g l u t R e s h a p e W i n d o w ( w i d t h ,   h e i g h t ) ; 
01254  
01255  
01256  
01257          G L U I _ M a s t e r . a u t o _ s e t _ v i e w p o r t ( ) ; 
01258  
01259  } 
01260  
01261  
01262  
01263  v o i d   r e s h a p e B o t t o m W i n d o w ( i n t   w i d t h ,   i n t   h e i g h t ) 
01264  
01265  { 
01266  
01267          g l u t S e t W i n d o w ( g _ b o t t o m W i n d o w I D ) ; 
01268  
01269          g l u t R e s h a p e W i n d o w ( w i d t h ,   h e i g h t ) ; 
01270  
01271  
01272  
01273          G L U I _ M a s t e r . a u t o _ s e t _ v i e w p o r t ( ) ; 
01274  
01275  } 
01276  
01277  
01278  
01279  v o i d   s a v e S l i c e T o 2 D T e x t u r e ( ) 
01280  
01281  { 
01282  
01283          s t d : : c o u t < < " 3 D   t e x t u r e s   n o t   s u p p o r t e d ! " < < s t d : : e n d l ; 
01284  
01285  
01286  
01287          / / b i n d   t e x t u r e 
01288  
01289          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   g _ u E x a m p l e T e x t u r e ) ; 
01290  
01291  
01292  
01293          G L e n u m   g l E r r o r   =   g l G e t E r r o r ( ) ; 
01294  
01295          i f   ( g l E r r o r   ! =   G L _ N O _ E R R O R ) 
01296  
01297          { 
01298  
01299                  s t d : : c e r r < < " C o u l d   n o t   b i n d   t e x t u r e :   " < < g l u E r r o r S t r i n g ( g l E r r o r ) < < s t d : : e n d l ; 
01300  
01301          } 
01302  
01303          e l s e 
01304  
01305          { 
01306  
01307                  i n t   i T e x t u r e W i d t h = g _ V o l u m e . G e t W i d t h ( ) ; 
01308  
01309                  i n t   i T e x t u r e H e i g h t = g _ V o l u m e . G e t H e i g h t ( ) ; 
01310  
01311                  i n t   i T e x t u r e D e p t h = g _ V o l u m e . G e t D e p t h ( ) ; 
01312  
01313  
01314  
01315                  i f   ( ! G L E W _ A R B _ t e x t u r e _ n o n _ p o w e r _ o f _ t w o ) 
01316  
01317                  { 
01318  
01319                          i T e x t u r e W i d t h   =   G e t N e x t P o w e r O f T w o ( g _ V o l u m e . G e t W i d t h ( ) ) ; 
01320  
01321                          i T e x t u r e H e i g h t   =   G e t N e x t P o w e r O f T w o ( g _ V o l u m e . G e t H e i g h t ( ) ) ; 
01322  
01323                          i T e x t u r e D e p t h   =   G e t N e x t P o w e r O f T w o ( g _ V o l u m e . G e t D e p t h ( ) ) ;                             
01324  
01325                  } 
01326  
01327  
01328  
01329                  / / u p l o a d   
01330  
01331                  g l T e x I m a g e 2 D ( G L _ T E X T U R E _ 2 D ,   0 ,   G L _ L U M I N A N C E ,   i T e x t u r e W i d t h ,   i T e x t u r e H e i g h t ,   0 ,   G L _ L U M I N A N C E ,   G L _ F L O A T ,   N U L L ) ; 
01332  
01333                  g l T e x S u b I m a g e 2 D ( G L _ T E X T U R E _ 2 D ,   0 ,   0 ,   0 ,   g _ V o l u m e . G e t W i d t h ( ) ,   g _ V o l u m e . G e t H e i g h t ( ) ,   G L _ L U M I N A N C E ,   G L _ F L O A T ,   ( v o i d   * )   & ( g _ V o l u m e . G e t ( 0 , 0 ,   i n t ( f l o a t ( g _ V o l u m e . G e t D e p t h ( ) ) * 0 . 5 f )   ) ) ) ; 
01334  
01335  
01336  
01337                  g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ M I N _ F I L T E R ,   G L _ L I N E A R ) ; 
01338  
01339                  g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ M A G _ F I L T E R ,   G L _ L I N E A R ) ; 
01340  
01341  
01342  
01343                  g l E r r o r   =   g l G e t E r r o r ( ) ; 
01344  
01345                  i f   ( g l E r r o r   ! =   G L _ N O _ E R R O R ) 
01346  
01347                  { 
01348  
01349                          s t d : : c e r r < < " C o u l d   n o t   u p l o a d   t e x t u r e :   " < < g l u E r r o r S t r i n g ( g l E r r o r ) < < s t d : : e n d l ; 
01350  
01351                  } 
01352  
01353          } 
01354  
01355  } 
01356  
01357  
01358  
01359  v o i d   s a v e D a t a T o 3 D T e x t u r e ( ) 
01360  
01361  { 
01362  
01363          g _ f I n c r e m e n t   =   1 . f   /   f l o a t ( g _ V o l u m e . G e t D e p t h ( ) - 1 ) ; 
01364  
01365  
01366  
01367          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 3 D ,   g _ u E x a m p l e T e x t u r e ) ; 
01368  
01369  
01370  
01371          G L e n u m   g l E r r o r   =   g l G e t E r r o r ( ) ; 
01372  
01373          i f   ( g l E r r o r   ! =   G L _ N O _ E R R O R ) 
01374  
01375          { 
01376  
01377                  s t d : : c e r r < < " C o u l d   n o t   b i n d   t e x t u r e :   " < < g l u E r r o r S t r i n g ( g l E r r o r ) < < s t d : : e n d l ; 
01378  
01379          } 
01380  
01381          e l s e 
01382  
01383          { 
01384  
01385                  i n t   i T e x t u r e W i d t h = g _ V o l u m e . G e t W i d t h ( ) ; 
01386  
01387                  i n t   i T e x t u r e H e i g h t = g _ V o l u m e . G e t H e i g h t ( ) ; 
01388  
01389                  i n t   i T e x t u r e D e p t h = g _ V o l u m e . G e t D e p t h ( ) ; 
01390  
01391  
01392  
01393                  i f   ( ! G L E W _ A R B _ t e x t u r e _ n o n _ p o w e r _ o f _ t w o ) 
01394  
01395                  { 
01396  
01397                          i T e x t u r e W i d t h   =   G e t N e x t P o w e r O f T w o ( g _ V o l u m e . G e t W i d t h ( ) ) ; 
01398  
01399                          i T e x t u r e H e i g h t   =   G e t N e x t P o w e r O f T w o ( g _ V o l u m e . G e t H e i g h t ( ) ) ; 
01400  
01401                          i T e x t u r e D e p t h   =   G e t N e x t P o w e r O f T w o ( g _ V o l u m e . G e t D e p t h ( ) ) ;                             
01402  
01403                  } 
01404  
01405  
01406  
01407                  / / u p l o a d   t e x t u r e 
01408  
01409  
01410  
01411                  g l T e x I m a g e 3 D ( G L _ T E X T U R E _ 3 D _ E X T ,   0 ,   G L _ L U M I N A N C E ,   i T e x t u r e W i d t h ,   i T e x t u r e H e i g h t ,   i T e x t u r e D e p t h ,   0 ,   G L _ L U M I N A N C E ,   G L _ F L O A T ,   N U L L ) ; 
01412  
01413                  g l T e x S u b I m a g e 3 D ( G L _ T E X T U R E _ 3 D _ E X T ,   0 ,   0 ,   0 ,   0 ,   g _ V o l u m e . G e t W i d t h ( ) ,   g _ V o l u m e . G e t H e i g h t ( ) ,   g _ V o l u m e . G e t D e p t h ( ) ,   G L _ L U M I N A N C E ,   G L _ F L O A T ,   ( v o i d   * )   g _ V o l u m e . G e t ( ) ) ; 
01414  
01415  
01416  
01417                  g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 3 D ,   G L _ T E X T U R E _ M I N _ F I L T E R ,   G L _ L I N E A R ) ; 
01418  
01419                  g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 3 D ,   G L _ T E X T U R E _ M A G _ F I L T E R ,   G L _ L I N E A R ) ; 
01420  
01421                  g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 3 D ,   G L _ T E X T U R E _ W R A P _ R ,   G L _ C L A M P _ T O _ B O R D E R ) ; 
01422  
01423                  g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 3 D ,   G L _ T E X T U R E _ W R A P _ S ,   G L _ C L A M P _ T O _ B O R D E R ) ; 
01424  
01425                  g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 3 D ,   G L _ T E X T U R E _ W R A P _ T ,   G L _ C L A M P _ T O _ B O R D E R ) ; 
01426  
01427  
01428  
01429                  g _ f R a t i o _ x y   =   ( f l o a t ) i T e x t u r e H e i g h t / ( f l o a t ) i T e x t u r e W i d t h ; 
01430  
01431                  g _ f R a t i o _ x z   =   ( f l o a t ) i T e x t u r e D e p t h / ( f l o a t ) i T e x t u r e W i d t h ; 
01432  
01433                  g _ f R a t i o _ y z   =   ( f l o a t ) i T e x t u r e D e p t h / ( f l o a t ) i T e x t u r e H e i g h t ; 
01434  
01435  
01436  
01437                  f l o a t   x d   =   1 . 0 f ; 
01438  
01439                  f l o a t   y d   =   1 . 0 f ; 
01440  
01441                  f l o a t   z d   =   1 . 0 f ; 
01442  
01443  
01444  
01445                  i f   ( i T e x t u r e W i d t h   > =   i T e x t u r e H e i g h t   & &   i T e x t u r e W i d t h   > =   i T e x t u r e D e p t h )   { 
01446  
01447                          y d   =   1 . 0 f / g _ f R a t i o _ x y ; 
01448  
01449                          z d   =   1 . 0 f / g _ f R a t i o _ x z ; 
01450  
01451                  }   e l s e   i f   ( i T e x t u r e H e i g h t   > =   i T e x t u r e W i d t h   & &   i T e x t u r e H e i g h t   > =   i T e x t u r e D e p t h )   { 
01452  
01453                          x d   =   g _ f R a t i o _ x y ; 
01454  
01455                          z d   =   1 . 0 f / g _ f R a t i o _ y z ; 
01456  
01457                  }   e l s e   i f   ( i T e x t u r e D e p t h   > =   i T e x t u r e W i d t h   & &   i T e x t u r e D e p t h   > =   i T e x t u r e H e i g h t )   { 
01458  
01459                          x d   =   g _ f R a t i o _ x y ; 
01460  
01461                          y d   =   g _ f R a t i o _ y z ; 
01462  
01463                  } 
01464  
01465  
01466  
01467                  f l o a t   m a x d   =   ( f l o a t )   m a x ( i T e x t u r e W i d t h ,   i T e x t u r e H e i g h t ) ; 
01468  
01469                  m a x d   =   m a x ( m a x d ,   ( f l o a t ) i T e x t u r e D e p t h ) ; 
01470  
01471  
01472  
01473                  g _ f C u b e D i m e n s i o n N o r m e d X   =   i T e x t u r e W i d t h   /   m a x d ; 
01474  
01475                  g _ f C u b e D i m e n s i o n N o r m e d Y   =   i T e x t u r e H e i g h t   /   m a x d ; 
01476  
01477                  g _ f C u b e D i m e n s i o n N o r m e d Z   =   i T e x t u r e D e p t h   /   m a x d ; 
01478  
01479  
01480  
01481                  g l E r r o r   =   g l G e t E r r o r ( ) ; 
01482  
01483                  i f   ( g l E r r o r   ! =   G L _ N O _ E R R O R ) 
01484  
01485                  { 
01486  
01487                          s t d : : c e r r < < " C o u l d   n o t   u p l o a d   t e x t u r e :   "   < <   g l u E r r o r S t r i n g ( g l E r r o r )   < <   s t d : : e n d l ; 
01488  
01489                  } 
01490  
01491          } 
01492  
01493  } 
01494  
01495  
01496  
01497  v o i d   t e x t u r e A s p e c t R a t i o ( ) 
01498  
01499  { 
01500  
01501          f l o a t   d i f f 1   =   0 . f ,   d i f f 2   =   0 . f ; 
01502  
01503          s w i t c h ( g _ i S l i c e D i r ) 
01504  
01505          { 
01506  
01507          c a s e   0 : 
01508  
01509                  d i f f 1   =   ( g _ f R a t i o _ r w / g _ f R a t i o _ x y ) / 2 ; 
01510  
01511                  d i f f 2   =   ( g _ f R a t i o _ x y / g _ f R a t i o _ r w ) / 2 ; 
01512  
01513                  g _ f U 1   =   1 . 0 f + d i f f 2 ; 
01514  
01515                  g _ f U 0   =   0 . 0 f - d i f f 2 ; 
01516  
01517                  g _ f V 1   =   1 . 0 f ; / / + d i f f 1 ; 
01518  
01519                  g _ f V 0   =   0 . 0 f ; / / - d i f f 1 ; 
01520  
01521                  b r e a k ; 
01522  
01523  
01524  
01525          c a s e   1 : 
01526  
01527                  d i f f 1   =   ( g _ f R a t i o _ r w / g _ f R a t i o _ y z ) / 2 ; 
01528  
01529                  d i f f 2   =   ( g _ f R a t i o _ y z / g _ f R a t i o _ r w ) / 2 ; 
01530  
01531                  g _ f U 1   =   1 . 0 f ; / / + d i f f 2 ; 
01532  
01533                  g _ f U 0   =   0 . 0 f ; / / - d i f f 2 ; 
01534  
01535                  g _ f V 1   =   1 . 0 f + d i f f 1 ; 
01536  
01537                  g _ f V 1   =   0 . 0 f - d i f f 1 ;   
01538  
01539                  b r e a k ; 
01540  
01541  
01542  
01543          c a s e   2 : 
01544  
01545                  d i f f 1   =   ( g _ f R a t i o _ r w / g _ f R a t i o _ x z ) / 2 ; 
01546  
01547                  d i f f 2   =   ( g _ f R a t i o _ x z / g _ f R a t i o _ r w ) / 2 ; 
01548  
01549                  g _ f U 1   =   1 . 0 f ; / / + d i f f 2 ; 
01550  
01551                  g _ f U 0   =   0 . 0 f ; / / - d i f f 2 ;             
01552  
01553                  g _ f V 1   =   1 . 0 f + d i f f 1 ; 
01554  
01555                  g _ f V 0   =   0 . 0 f - d i f f 1 ; 
01556  
01557                  b r e a k ; 
01558  
01559          } 
01560  
01561  } 
01562  
01563  
01564  
01565  v o i d   i n i t I n t e r f a c e B o t t o m ( ) 
01566  
01567  { 
01568  
01569          G L U I *   c p _ g l u i   =   G L U I _ M a s t e r . c r e a t e _ g l u i _ s u b w i n d o w ( g _ b o t t o m W i n d o w I D ,   G L U I _ S U B W I N D O W _ R I G H T ) ; 
01570  
01571          c p _ g l u i - > s e t _ m a i n _ g f x _ w i n d o w ( g _ m a i n W i n d o w I D ) ; 
01572  
01573  
01574  
01575          g _ p C o l o u r P i c k e r S l i d e r T e x t     =   c p _ g l u i - > a d d _ s t a t i c t e x t ( " " ) ; 
01576  
01577          g _ p C o l o u r P i c k e r S l i d e r T e x t - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01578  
01579          g _ p C o l o u r P i c k e r S l i d e r   =     n e w   G L U I _ S c r o l l b a r ( c p _ g l u i ,   " " ,   G L U I _ S C R O L L _ V E R T I C A L ,   & C o l o u r P i c k e r : : c o l o u r P i c k e r S l i d e r V a l u e ,   0 ,   h a n d l e C o l o u r P i c k e r S l i d e r C h a n g e ) ;   
01580  
01581          g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ l i m i t s ( 0 . f , 1 0 0 . f ) ; 
01582  
01583          g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ v a l ( 8 8 . f ) ; 
01584  
01585          g _ p C o l o u r P i c k e r S l i d e r - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01586  
01587  
01588  
01589          G L U I _ S t a t i c T e x t *   c o l o u r P i c k e r S w i t c h e r T e x t     =   c p _ g l u i - > a d d _ s t a t i c t e x t ( " C o l o u r   c o m p o n e n t " ) ; 
01590  
01591          c o l o u r P i c k e r S w i t c h e r T e x t - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01592  
01593          L a b S w i t c h e r F o r C o l o u r P i c k e r   =   c p _ g l u i - > a d d _ r a d i o g r o u p ( N U L L ,   0 ,   h a n d l e C o l o u r P i c k e r S l i d e r M o d e C h a n g e ) ; 
01594  
01595          L a b S w i t c h e r F o r C o l o u r P i c k e r - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01596  
01597          c p _ g l u i - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( L a b S w i t c h e r F o r C o l o u r P i c k e r ,   " L " ) ; 
01598  
01599          c p _ g l u i - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( L a b S w i t c h e r F o r C o l o u r P i c k e r ,   " a " ) ; 
01600  
01601          c p _ g l u i - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( L a b S w i t c h e r F o r C o l o u r P i c k e r ,   " b " ) ; 
01602  
01603  
01604  
01605          c p _ g l u i - > a d d _ c o l u m n (   ) ; 
01606  
01607          c p _ g l u i - > a d d _ s t a t i c t e x t ( " L a b " ) ; 
01608  
01609          g _ C o l o u r S p i n n e r L a b L   =   c p _ g l u i - > a d d _ s p i n n e r ( " L " ,   G L U I _ S P I N N E R _ F L O A T ,   & g _ f C o l o u r L a b L ,   0 ,   h a n d l e G U I C o l o u r L a b L C h a n g e ) ;             
01610  
01611          g _ C o l o u r S p i n n e r L a b L - > s e t _ f l o a t _ l i m i t s ( 0 . f ,   1 0 0 . f ,   G L U I _ L I M I T _ C L A M P ) ; 
01612  
01613          g _ C o l o u r S p i n n e r L a b L - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01614  
01615          g _ C o l o u r S p i n n e r L a b A   =   c p _ g l u i - > a d d _ s p i n n e r ( " a " ,   G L U I _ S P I N N E R _ F L O A T ,   & g _ f C o l o u r L a b A ,   0 ,   h a n d l e G U I C o l o u r L a b A C h a n g e ) ; 
01616  
01617          g _ C o l o u r S p i n n e r L a b A - > s e t _ f l o a t _ l i m i t s ( - 1 3 0 . f ,   1 3 0 . f ,   G L U I _ L I M I T _ C L A M P ) ; 
01618  
01619          g _ C o l o u r S p i n n e r L a b A - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01620  
01621          g _ C o l o u r S p i n n e r L a b B   =   c p _ g l u i - > a d d _ s p i n n e r ( " b " ,   G L U I _ S P I N N E R _ F L O A T ,   & g _ f C o l o u r L a b B ,   0 ,   h a n d l e G U I C o l o u r L a b B C h a n g e ) ; 
01622  
01623          g _ C o l o u r S p i n n e r L a b B - > s e t _ f l o a t _ l i m i t s ( - 1 3 0 . f ,   1 3 0 . f ,   G L U I _ L I M I T _ C L A M P ) ; 
01624  
01625          g _ C o l o u r S p i n n e r L a b B - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01626  
01627  
01628  
01629  
01630  
01631          c p _ g l u i - > a d d _ s t a t i c t e x t ( " R G B " ) ; 
01632  
01633          g _ C o l o u r S p i n n e r R g b R   =   c p _ g l u i - > a d d _ s p i n n e r ( " R : " ,   G L U I _ S P I N N E R _ I N T ,   & g _ i C o l o u r R g b R ,   0 ,   h a n d l e G U I C o l o u r R g b C h a n g e ) ;                 
01634  
01635          g _ C o l o u r S p i n n e r R g b R - > s e t _ i n t _ l i m i t s ( 0 ,   2 5 5 ,   G L U I _ L I M I T _ C L A M P ) ; 
01636  
01637          g _ C o l o u r S p i n n e r R g b R - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01638  
01639          g _ C o l o u r S p i n n e r R g b G   =   c p _ g l u i - > a d d _ s p i n n e r ( " G : " ,   G L U I _ S P I N N E R _ I N T ,   & g _ i C o l o u r R g b G ,   0 ,   h a n d l e G U I C o l o u r R g b C h a n g e ) ; 
01640  
01641          g _ C o l o u r S p i n n e r R g b G - > s e t _ i n t _ l i m i t s ( 0 ,   2 5 5 ,   G L U I _ L I M I T _ C L A M P ) ; 
01642  
01643          g _ C o l o u r S p i n n e r R g b G - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01644  
01645          g _ C o l o u r S p i n n e r R g b B   =   c p _ g l u i - > a d d _ s p i n n e r ( " B : " ,   G L U I _ S P I N N E R _ I N T ,   & g _ i C o l o u r R g b B ,   0 ,   h a n d l e G U I C o l o u r R g b C h a n g e ) ; 
01646  
01647          g _ C o l o u r S p i n n e r R g b B - > s e t _ i n t _ l i m i t s ( 0 ,   2 5 5 ,   G L U I _ L I M I T _ C L A M P ) ; 
01648  
01649          g _ C o l o u r S p i n n e r R g b B - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01650  
01651  
01652  
01653          c p _ g l u i - > a d d _ s t a t i c t e x t ( " T r a n s p a r e n c y " ) ; 
01654  
01655          g _ C o l o u r T r a n s p a r e n c y S p i n n e r   =   c p _ g l u i - > a d d _ s p i n n e r ( " A l p h a : " ,   G L U I _ S P I N N E R _ I N T ,   & g _ i C o l o u r A l p h a ,   0 ,   h a n d l e G U I S p e c i f i e d C o l o u r C h a n g e ) ; 
01656  
01657          g _ C o l o u r T r a n s p a r e n c y S p i n n e r - > s e t _ i n t _ l i m i t s ( 0 ,   2 5 5 ,   G L U I _ L I M I T _ C L A M P ) ; 
01658  
01659          g _ C o l o u r T r a n s p a r e n c y S p i n n e r - > s e t _ a l i g n m e n t ( G L U I _ A L I G N _ C E N T E R ) ; 
01660  
01661          g _ C o l o u r T r a n s p a r e n c y S p i n n e r - > d i s a b l e ( ) ; 
01662  
01663  
01664  
01665  
01666  
01667          c p _ g l u i - > a d d _ c o l u m n ( ) ; 
01668  
01669  
01670  
01671  
01672  
01673          c p _ g l u i - > a d d _ s t a t i c t e x t ( " I n t e r p o l a t i o n " ) ; 
01674  
01675          c o l o u r S p a c e L i s t b o x   =     c p _ g l u i - > a d d _ l i s t b o x ( " " ,   N U L L ,   - 1 ,   h a n d l e C o l o u r S p a c e L i s t b o x C h a n g e ) ; 
01676  
01677          c o l o u r S p a c e L i s t b o x - > a d d _ i t e m ( 0 ,   " R G B " ) ; 
01678  
01679          c o l o u r S p a c e L i s t b o x - > a d d _ i t e m ( 1 ,   " L a b " ) ; 
01680  
01681          c o l o u r S p a c e L i s t b o x - > d o _ s e l e c t i o n ( 1 ) ; 
01682  
01683  
01684  
01685          c p _ g l u i - > a d d _ s e p a r a t o r ( ) ; 
01686  
01687  
01688  
01689          c p _ g l u i - > a d d _ s t a t i c t e x t ( " H i s t o g r a m " ) ; 
01690  
01691          g _ h i s t o g r a m D r a w T y p e L i s t b o x   =     c p _ g l u i - > a d d _ l i s t b o x ( " " ,   N U L L ,   - 1 ,   h a n d l e H i s t o G r a m D r a w T y p e L i s t b o x C h a n g e ) ; 
01692  
01693          g _ h i s t o g r a m D r a w T y p e L i s t b o x - > a d d _ i t e m ( 0 ,   " N o n e " ) ; 
01694  
01695          g _ h i s t o g r a m D r a w T y p e L i s t b o x - > a d d _ i t e m ( 1 ,   " L i n e a r " ) ; 
01696  
01697          g _ h i s t o g r a m D r a w T y p e L i s t b o x - > a d d _ i t e m ( 2 ,   " L o g a r i t h m i c " ) ; 
01698  
01699          g _ h i s t o g r a m D r a w T y p e L i s t b o x - > d o _ s e l e c t i o n ( 2 ) ; 
01700  
01701  
01702  
01703          c p _ g l u i - > a d d _ s e p a r a t o r ( ) ; 
01704  
01705          
01706  
01707          G L U I _ B u t t o n *   s a v e B u t t o n   =   c p _ g l u i - > a d d _ b u t t o n ( " S a v e   P o i n t s " ,   5 ,   h a n d l e S a v e T r a n s f e r F u n c t i o n C o n t r o l P o i n t s ) ; 
01708  
01709          G L U I _ B u t t o n *   l o a d B u t t o n   =   c p _ g l u i - > a d d _ b u t t o n ( " L o a d   P o i n t s " ,   6 ,   h a n d l e L o a d T r a n s f e r F u n c t i o n C o n t r o l P o i n t s ) ; 
01710  
01711  
01712  
01713  
01714  
01715          i n i t I n t e r f a c e B o t t o m V a l u e s ( ) ; 
01716  
01717  
01718  
01719  } 
01720  
01721  
01722  
01723  v o i d   h a n d l e S a v e T r a n s f e r F u n c t i o n C o n t r o l P o i n t s ( i n t ) 
01724  
01725  { 
01726  
01727          O P E N F I L E N A M E   o f n ; 
01728  
01729          c h a r   s z F i l e N a m e [ M A X _ P A T H ]   =   " " ; 
01730  
01731  
01732  
01733          Z e r o M e m o r y ( & o f n ,   s i z e o f ( o f n ) ) ; 
01734  
01735  
01736  
01737          o f n . l S t r u c t S i z e   =   s i z e o f ( o f n ) ; 
01738  
01739          o f n . h w n d O w n e r   =   g _ h M a i n W i n d o w ; 
01740  
01741          o f n . l p s t r F i l t e r   =   " C o n t r o l   P o i n t   F i l e s   ( * . t f p ) \ 0 * . t f p \ 0 A l l   F i l e s   ( * . * ) \ 0 * . * \ 0 " ; 
01742  
01743          o f n . l p s t r F i l e   =   s z F i l e N a m e ; 
01744  
01745          o f n . n M a x F i l e   =   M A X _ P A T H ; 
01746  
01747          o f n . F l a g s   =   O F N _ E X P L O R E R   |   O F N _ F I L E M U S T E X I S T ; 
01748  
01749          o f n . l p s t r D e f E x t   =   " t f p " ; 
01750  
01751  
01752  
01753          i f ( G e t S a v e F i l e N a m e ( & o f n ) ) 
01754  
01755          { 
01756  
01757                  T r a n s f e r F u n c t i o n G U I : : s a v e T r a n s f e r F u n c t i o n C o n t r o l P o i n t s ( s z F i l e N a m e ) ; 
01758  
01759          } 
01760  
01761          
01762  
01763  } 
01764  
01765  
01766  
01767  v o i d   h a n d l e L o a d T r a n s f e r F u n c t i o n C o n t r o l P o i n t s ( i n t ) 
01768  
01769  { 
01770  
01771          O P E N F I L E N A M E   o f n ; 
01772  
01773          c h a r   s z F i l e N a m e [ M A X _ P A T H ]   =   " " ; 
01774  
01775  
01776  
01777          Z e r o M e m o r y ( & o f n ,   s i z e o f ( o f n ) ) ; 
01778  
01779  
01780  
01781          o f n . l S t r u c t S i z e   =   s i z e o f ( o f n ) ; 
01782  
01783          o f n . h w n d O w n e r   =   g _ h M a i n W i n d o w ; 
01784  
01785          o f n . l p s t r F i l t e r   =   " C o n t r o l   P o i n t   F i l e s   ( * . t f p ) \ 0 * . t f p \ 0 A l l   F i l e s   ( * . * ) \ 0 * . * \ 0 " ; 
01786  
01787          o f n . l p s t r F i l e   =   s z F i l e N a m e ; 
01788  
01789          o f n . n M a x F i l e   =   M A X _ P A T H ; 
01790  
01791          o f n . F l a g s   =   O F N _ E X P L O R E R   |   O F N _ F I L E M U S T E X I S T ; 
01792  
01793          o f n . l p s t r D e f E x t   =   " t f p " ; 
01794  
01795  
01796  
01797          i f ( G e t O p e n F i l e N a m e ( & o f n ) ) 
01798  
01799          { 
01800  
01801                  T r a n s f e r F u n c t i o n G U I : : l o a d T r a n s f e r F u n c t i o n C o n t r o l P o i n t s ( s t d : : s t r i n g ( s z F i l e N a m e ) ) ; 
01802  
01803                  p o s t R e d i s p l a y B o t t o m W i n d o w ( ) ; 
01804  
01805          } 
01806  
01807  } 
01808  
01809  
01810  
01811  
01812  
01813  v o i d   i n i t I n t e r f a c e R i g h t ( ) 
01814  
01815  { 
01816  
01817          G L U I *   i n t e r f a c e R i g h t   =   G L U I _ M a s t e r . c r e a t e _ g l u i _ s u b w i n d o w ( g _ r i g h t W i n d o w I D ,   G L U I _ S U B W I N D O W ) ; 
01818  
01819          i n t e r f a c e R i g h t - > s e t _ m a i n _ g f x _ w i n d o w ( g _ m a i n W i n d o w I D ) ; 
01820  
01821          G L U I _ B u t t o n   * f i l e _ b u t t o n   =   i n t e r f a c e R i g h t - > a d d _ b u t t o n ( " O p e n   F i l e " ,   0 ,   o p e n F i l e ) ; 
01822  
01823  
01824  
01825          i n t e r f a c e R i g h t - > a d d _ s e p a r a t o r ( ) ; 
01826  
01827          G L U I _ P a n e l   * s l i c e _ p a n e l   =   i n t e r f a c e R i g h t - > a d d _ p a n e l ( " S l i c e s   /   3 D   v i e w " ) ; 
01828  
01829          G L U I _ R a d i o G r o u p   * r a d i o _ g r o u p   =   i n t e r f a c e R i g h t - > a d d _ r a d i o g r o u p _ t o _ p a n e l ( s l i c e _ p a n e l ,   & g _ i S l i c e D i r ,   0 ,   u p d a t e R e n d e r W i n d o w ) ; 
01830  
01831          i n t e r f a c e R i g h t - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( r a d i o _ g r o u p ,   " T r a n s v e r s e " ) ; 
01832  
01833          i n t e r f a c e R i g h t - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( r a d i o _ g r o u p ,   " S a g i t t a l " ) ; 
01834  
01835          i n t e r f a c e R i g h t - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( r a d i o _ g r o u p ,   " C o r o n a l " ) ; 
01836  
01837          i n t e r f a c e R i g h t - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( r a d i o _ g r o u p ,   " 3 D " ) ; 
01838  
01839          g _ p G L U I _ S l i d e r S l i c e   =   n e w   G L U I _ S c r o l l b a r ( i n t e r f a c e R i g h t ,   " S l i c e   l e v e l " ,   G L U I _ S C R O L L _ H O R I Z O N T A L ,   & g _ f C o o r d X Y Z ,   0 ,   u p d a t e R e n d e r W i n d o w ) ;   / /   c a l l b a c k   ! ! !   
01840  
01841          g _ p G L U I _ S l i d e r S l i c e - > s e t _ f l o a t _ l i m i t s ( 0 , 1 ) ; 
01842  
01843          i n t e r f a c e R i g h t - > a d d _ s e p a r a t o r ( ) ; 
01844  
01845  
01846  
01847          g _ v i e w R o t a t i o n G L U I   =   i n t e r f a c e R i g h t - > a d d _ r o t a t i o n ( " R o t a t e   V o l u m e " ,   g _ p R o t a t e ,   0 ,   u p d a t e R e n d e r W i n d o w ) ; 
01848  
01849  
01850  
01851  
01852  
01853          G L U I _ P a n e l   * s a m p l e R a t e _ p a n e l   =   i n t e r f a c e R i g h t - > a d d _ p a n e l ( " S a m p l e   r a t e " ) ; 
01854  
01855          g _ p G L U I _ S l i d e r S a m p l e R a t e   =   n e w   G L U I _ S c r o l l b a r ( s a m p l e R a t e _ p a n e l ,   " S a m p l e   r a t e " ,   G L U I _ S C R O L L _ H O R I Z O N T A L ,   & g _ i S a m p l e R a t e ,   0 ,   u p d a t e R e n d e r W i n d o w ) ; 
01856  
01857          g _ p G L U I _ S l i d e r S a m p l e R a t e - > s e t _ i n t _ l i m i t s ( 1 0 , 1 0 0 0 ) ; 
01858  
01859          g _ p G L U I _ S l i d e r S a m p l e R a t e - > s e t _ i n t _ v a l ( 2 0 0 ) ; 
01860  
01861          g _ p G L U I _ S p i n n e r S a m p l e R a t e   =   n e w   G L U I _ S p i n n e r ( s a m p l e R a t e _ p a n e l ,   " " ,   G L U I _ S P I N N E R _ I N T ,   & g _ i S a m p l e R a t e ,   0 ,   u p d a t e R e n d e r W i n d o w ) ; 
01862  
01863          g _ p G L U I _ S p i n n e r S a m p l e R a t e - > s e t _ i n t _ l i m i t s ( 1 0 , 1 0 0 0 ) ; 
01864  
01865          g _ p G L U I _ S p i n n e r S a m p l e R a t e - > s e t _ i n t _ v a l ( 2 0 0 ) ; 
01866  
01867  
01868  
01869          i n t e r f a c e R i g h t - > a d d _ s e p a r a t o r ( ) ; 
01870  
01871          G L U I _ P a n e l   * c o m b i n a t i o n T y p e _ p a n e l   =   i n t e r f a c e R i g h t - > a d d _ p a n e l ( " C o m b i n a t i o n   T y p e " ) ; 
01872  
01873          G L U I _ R a d i o G r o u p   * c o m b i n a t i o n R a d i o G r o u p   =   i n t e r f a c e R i g h t - > a d d _ r a d i o g r o u p _ t o _ p a n e l ( c o m b i n a t i o n T y p e _ p a n e l ,   & g _ i C o m b i n a t i o n T y p e ,   0 ,   u p d a t e R e n d e r W i n d o w ) ; 
01874  
01875          i n t e r f a c e R i g h t - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( c o m b i n a t i o n R a d i o G r o u p ,   " C o m p o s i t i n g " ) ; 
01876  
01877          i n t e r f a c e R i g h t - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( c o m b i n a t i o n R a d i o G r o u p ,   " M I P " ) ; 
01878  
01879  
01880  
01881          i n t e r f a c e R i g h t - > a d d _ s e p a r a t o r ( ) ; 
01882  
01883          G L U I _ P a n e l   * p e r s p e c t i v e D e c i s i o n _ p a n e l   =   i n t e r f a c e R i g h t - > a d d _ p a n e l ( " P r o j e c t i o n   M o d e " ) ; 
01884  
01885          G L U I _ R a d i o G r o u p   * p e r s p e c t i v e R a d i o G r o u p   =   i n t e r f a c e R i g h t - > a d d _ r a d i o g r o u p _ t o _ p a n e l ( p e r s p e c t i v e D e c i s i o n _ p a n e l ,   & g _ i P e r s p e c t i v e T y p e ,   0 ,   u p d a t e R e n d e r W i n d o w ) ; 
01886  
01887          i n t e r f a c e R i g h t - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( p e r s p e c t i v e R a d i o G r o u p ,   " O r t h o g o n a l " ) ; 
01888  
01889          i n t e r f a c e R i g h t - > a d d _ r a d i o b u t t o n _ t o _ g r o u p ( p e r s p e c t i v e R a d i o G r o u p ,   " P e r s p e c t i v e " ) ; 
01890  
01891  } 
01892  
01893  
01894  
01895  v o i d   u p d a t e R e n d e r W i n d o w ( i n t ) 
01896  
01897  { 
01898  
01899          i n t   i   =   g _ i S a m p l e R a t e ; 
01900  
01901          i n t   j   =   g _ i S l i c e D i r ; 
01902  
01903          G L U I _ M a s t e r . s y n c _ l i v e _ a l l ( ) ; 
01904  
01905          g l u t S e t W i n d o w ( g _ r e n d e r W i n d o w I D ) ; 
01906  
01907          g l u t P o s t R e d i s p l a y ( ) ; 
01908  
01909  } 
01910  
01911  
01912  
01913  
01914  
01915  v o i d   u p d a t e B o t t o m W i n d o w ( i n t ) 
01916  
01917  { 
01918  
01919          g l u t S e t W i n d o w ( g _ b o t t o m W i n d o w I D ) ; 
01920  
01921          g l u t P o s t R e d i s p l a y ( ) ; 
01922  
01923  } 
01924  
01925  
01926  
01927  v o i d   d r a w T r a n s f e r F u n c P i c k e r ( i n t   w i n d o w W i d t h ,   i n t   w i n d o w H e i g h t ,   i n t   t r a n s f e r F u n c X O f f s e t ,   i n t   t r a n s f e r F u n c Y O f f s e t ) 
01928  
01929  { 
01930  
01931          d r a w T r a n s f e r F u n c P i c k e r B a c k g r o u n d ( w i n d o w W i d t h ,   w i n d o w H e i g h t ,   t r a n s f e r F u n c X O f f s e t ,   t r a n s f e r F u n c Y O f f s e t ) ; 
01932  
01933          d r a w T r a n s f e r F u n c P i c k e r F o r e g r o u n d ( t r a n s f e r F u n c X O f f s e t ,   t r a n s f e r F u n c Y O f f s e t ) ; 
01934  
01935  } 
01936  
01937  
01938  
01939  
01940  
01941  v o i d   o r t h o g o n a l S t a r t ( i n t   w i d t h ,   i n t   h e i g h t ) 
01942  
01943  { 
01944  
01945          g l M a t r i x M o d e ( G L _ P R O J E C T I O N ) ; 
01946  
01947          g l P u s h M a t r i x ( ) ; 
01948  
01949          g l L o a d I d e n t i t y ( ) ; 
01950  
01951          g l u O r t h o 2 D ( 0 ,   w i d t h ,   0 ,   h e i g h t ) ; 
01952  
01953          g l S c a l e f ( 1 ,   - 1 ,   1 ) ; 
01954  
01955          g l T r a n s l a t e f ( 0 . f ,   - ( f l o a t ) h e i g h t ,   0 . f ) ; 
01956  
01957          g l M a t r i x M o d e ( G L _ M O D E L V I E W ) ; 
01958  
01959  } 
01960  
01961  
01962  
01963  v o i d   o r t h o g o n a l E n d ( ) 
01964  
01965  { 
01966  
01967          g l M a t r i x M o d e ( G L _ P R O J E C T I O N ) ; 
01968  
01969          g l P o p M a t r i x ( ) ; 
01970  
01971          g l M a t r i x M o d e ( G L _ M O D E L V I E W ) ; 
01972  
01973  } 
01974  
01975  
01976  
01977  v o i d   m o u s e A c t i o n R e n d e r W i n d o w ( i n t   b u t t o n ,   i n t   s t a t e ,   i n t   x ,   i n t   y ) 
01978  
01979  { 
01980  
01981          i f ( b u t t o n   = =   2   & &   s t a t e   = =   1 ) 
01982  
01983          { 
01984  
01985                  u p d a t e V i e w R o t a t i o n W i t h D r a g P o s i t i o n ( x ,   y ) ; 
01986  
01987  
01988  
01989                  v i e w R o t a t i o n D r a g g i n g   =   f a l s e ; 
01990  
01991          } 
01992  
01993  
01994  
01995          i f ( b u t t o n   = =   2   & &   s t a t e   = =   0 ) 
01996  
01997          { 
01998  
01999                  v i e w R o t a t i o n D r a g S t a r t X   =   x ; 
02000  
02001                  v i e w R o t a t i o n D r a g S t a r t Y   =   y ; 
02002  
02003  
02004  
02005                  v i e w R o t a t i o n D r a g g i n g   =   t r u e ; 
02006  
02007          } 
02008  
02009  } 
02010  
02011  
02012  
02013  v o i d   m o u s e A c t i o n B o t t o m W i n d o w ( i n t   b u t t o n ,   i n t   s t a t e ,   i n t   x ,   i n t   y ) 
02014  
02015  { 
02016  
02017          T F C o n t r o l P o i n t : : g _ b M o u s e I n s i d e B o t t o m W i n d o w   =   ( x   < =   g _ i R e n d e r W i n d o w W i d t h   & &   y   < =   g _ b o t t o m W i n d o w H e i g h t ) ; 
02018  
02019  
02020  
02021  
02022  
02023          i n t   t r a n s f e r F u n c S p a c e X   =   x ; 
02024  
02025          i n t   t r a n s f e r F u n c S p a c e Y   =   y ; 
02026  
02027          t r a n s f o r m C o o r d i n a t e s T o T r a n s f e r F u n c t i o n P i c k e r S p a c e ( t r a n s f e r F u n c S p a c e X ,   t r a n s f e r F u n c S p a c e Y ) ; 
02028  
02029  
02030  
02031          b o o l   h i t S o m e t h i n g   =   f a l s e ; 
02032  
02033  
02034  
02035          b o o l   d r a g g i n g   =   f a l s e ; 
02036  
02037          i f ( T r a n s f e r F u n c t i o n G U I : : g e t S e l e c t e d C o n t r o l P o i n t ( )   ! =   N U L L ) 
02038  
02039                  d r a g g i n g   =   T r a n s f e r F u n c t i o n G U I : : g e t S e l e c t e d C o n t r o l P o i n t ( ) - > i s B e i n g D r a g g e d ( ) ; 
02040  
02041  
02042  
02043          i f ( ! h i t S o m e t h i n g   & &   ! d r a g g i n g ) 
02044  
02045                  h i t S o m e t h i n g   =   c h e c k F o r C o l o u r P i c k e r A c t i o n ( b u t t o n ,   s t a t e ,   x ,   y ) ; 
02046  
02047  
02048  
02049          i f ( ! h i t S o m e t h i n g   & &   ! g _ b D r a g g i n g C o l o u r P i c k e r C u r s o r ) 
02050  
02051                  h i t S o m e t h i n g   =   T r a n s f e r F u n c t i o n G U I : : c h e c k F o r C o n t r o l P o i n t s A c t i o n ( b u t t o n ,   s t a t e ,   t r a n s f e r F u n c S p a c e X ,   t r a n s f e r F u n c S p a c e Y ) ; 
02052  
02053          i f ( h i t S o m e t h i n g ) 
02054  
02055                  u p d a t e G U I C o l o u r W i t h S e l e c t e d C o n t r o l P o i n t C o l o u r ( ) ; 
02056  
02057  
02058  
02059  
02060  
02061  
02062  
02063          i f ( ! h i t S o m e t h i n g ) 
02064  
02065          {       
02066  
02067                  L a b _ C o l o u r   c o l o u r ( g _ f C o l o u r L a b L ,   g _ f C o l o u r L a b A ,   g _ f C o l o u r L a b B ) ; 
02068  
02069                  h i t S o m e t h i n g   =   T r a n s f e r F u n c t i o n G U I : : c h e c k F o r C o n t r o l P o i n t s C r e a t i o n ( b u t t o n ,   s t a t e ,   t r a n s f e r F u n c S p a c e X ,   t r a n s f e r F u n c S p a c e Y ,   c o l o u r ) ; 
02070  
02071          } 
02072  
02073  
02074  
02075  
02076  
02077  } 
02078  
02079  
02080  
02081  v o i d   g l u t B o t t o m W i n d o w K e y b o a r d ( u n s i g n e d   c h a r   k e y ,   i n t   x ,   i n t   y ) 
02082  
02083  { 
02084  
02085  } 
02086  
02087  
02088  
02089  v o i d   d r a w T r a n s f e r T e x t u r e ( i n t   w i n d o w W i d t h ,   i n t   w i n d o w H e i g h t ,   f l o a t   x O f f s e t ,   f l o a t   y O f f s e t ) 
02090  
02091  { 
02092  
02093          f l o a t   x B e g i n   =   x O f f s e t ; 
02094  
02095          f l o a t   x E n d   =   x B e g i n   +   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r W i d t h ; 
02096  
02097  
02098  
02099          f l o a t   y B e g i n   =   y O f f s e t   -   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c t i o n T e x t u r e D i s p l a y Y O f f s e t   +   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r H e i g h t ; 
02100  
02101          f l o a t   y E n d   =   y B e g i n   +   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c t i o n T e x t u r e D i s p l a y H e i g h t ; 
02102  
02103  
02104  
02105          f l o a t   b g T e x C o o r d X E n d   =   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r W i d t h   /   ( f l o a t ) g _ i T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e W i d t h ; 
02106  
02107          f l o a t   b g T e x C o o r d Y E n d   =   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c t i o n T e x t u r e D i s p l a y H e i g h t   /   ( f l o a t ) g _ i T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e H e i g h t ; 
02108  
02109  
02110  
02111          o r t h o g o n a l S t a r t ( w i n d o w W i d t h ,   w i n d o w H e i g h t ) ; 
02112  
02113  
02114  
02115          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   t r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e ) ; 
02116  
02117          g l E n a b l e ( G L _ T E X T U R E _ 2 D ) ; 
02118  
02119  
02120  
02121          / / d r a w   q u a d   w i t h   2 d   t e x t u r e 
02122  
02123          g l B e g i n ( G L _ Q U A D S ) ; 
02124  
02125          g l C o l o r 4 f ( 1 . f , 1 . f , 1 . f , 1 . f ) ; 
02126  
02127          g l T e x C o o r d 2 f ( 0 . f ,   b g T e x C o o r d Y E n d ) ; 
02128  
02129          g l V e r t e x 2 f ( x B e g i n ,   y E n d ) ; 
02130  
02131          g l T e x C o o r d 2 f ( 0 . f ,   0 . f ) ; 
02132  
02133          g l V e r t e x 2 f ( x B e g i n ,   y B e g i n ) ; 
02134  
02135          g l T e x C o o r d 2 f ( b g T e x C o o r d X E n d ,   0 . f ) ; 
02136  
02137          g l V e r t e x 2 f ( x E n d ,   y B e g i n ) ; 
02138  
02139          g l T e x C o o r d 2 f ( b g T e x C o o r d X E n d ,   b g T e x C o o r d Y E n d ) ; 
02140  
02141          g l V e r t e x 2 f ( x E n d ,   y E n d ) ; 
02142  
02143          g l E n d ( ) ; 
02144  
02145  
02146  
02147          g l D i s a b l e ( G L _ T E X T U R E _ 2 D ) ; 
02148  
02149  
02150  
02151          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 1 D ,   T r a n s f e r F u n c t i o n T e x t u r e : : b o t t o m W i n d o w T r a n s f e r F u n c t i o n T e x t u r e I D ) ; 
02152  
02153          g l E n a b l e ( G L _ T E X T U R E _ 1 D ) ; 
02154  
02155  
02156  
02157  
02158  
02159          g l E n a b l e ( G L _ B L E N D ) ; 
02160  
02161          g l B l e n d F u n c ( G L _ S R C _ A L P H A ,   G L _ O N E _ M I N U S _ S R C _ A L P H A ) ; 
02162  
02163  
02164  
02165  
02166  
02167          / / d r a w   q u a d   w i t h   2 d   t e x t u r e 
02168  
02169          g l B e g i n ( G L _ Q U A D S ) ; 
02170  
02171          g l C o l o r 4 f ( 1 . f , 1 . f , 1 . f , 1 . f ) ; 
02172  
02173          g l T e x C o o r d 1 f ( 0 . 0 f ) ; 
02174  
02175          g l V e r t e x 2 f ( x B e g i n ,   y E n d ) ; 
02176  
02177          g l T e x C o o r d 1 f ( 0 . 0 f ) ; 
02178  
02179          g l V e r t e x 2 f ( x B e g i n ,   y B e g i n ) ; 
02180  
02181          g l T e x C o o r d 1 f ( 1 . 0 f ) ; 
02182  
02183          g l V e r t e x 2 f ( x E n d ,   y B e g i n ) ; 
02184  
02185          g l T e x C o o r d 1 f ( 1 . 0 f ) ; 
02186  
02187          g l V e r t e x 2 f ( x E n d ,   y E n d ) ; 
02188  
02189          g l E n d ( ) ; 
02190  
02191  
02192  
02193          g l D i s a b l e ( G L _ T E X T U R E _ 1 D ) ; 
02194  
02195          g l D i s a b l e ( G L _ B L E N D ) ; 
02196  
02197  
02198  
02199          o r t h o g o n a l E n d ( ) ; 
02200  
02201  } 
02202  
02203  
02204  
02205  v o i d   d r a w C o n t r o l P o i n t s ( i n t   w i n d o w W i d t h ,   i n t   w i n d o w H e i g h t ,   i n t   x O f f s e t ,   i n t   y O f f s e t ) 
02206  
02207  { 
02208  
02209          i n t   x B e g i n   =   x O f f s e t ; 
02210  
02211          i n t   x E n d   =   x B e g i n   +   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r W i d t h ; 
02212  
02213  
02214  
02215          o r t h o g o n a l S t a r t ( w i n d o w W i d t h ,   w i n d o w H e i g h t ) ; 
02216  
02217  
02218  
02219          g l E n a b l e ( G L _ B L E N D ) ; 
02220  
02221          g l B l e n d F u n c ( G L _ S R C _ A L P H A ,   G L _ O N E _ M I N U S _ S R C _ A L P H A ) ; 
02222  
02223  
02224  
02225          g l P u s h M a t r i x ( ) ; 
02226  
02227          g l T r a n s l a t e f ( ( f l o a t ) x O f f s e t ,   w i n d o w H e i g h t   -   ( f l o a t ) y O f f s e t ,   0 . f ) ; 
02228  
02229          T r a n s f e r F u n c t i o n G U I : : d r a w C o n t r o l P o i n t s C o n n e c t i o n ( ) ; 
02230  
02231          T r a n s f e r F u n c t i o n G U I : : d r a w C o n t r o l P o i n t s R e l a t i v e ( ) ; 
02232  
02233          g l P o p M a t r i x ( ) ; 
02234  
02235  
02236  
02237          g l D i s a b l e ( G L _ B L E N D ) ; 
02238  
02239  
02240  
02241          o r t h o g o n a l E n d ( ) ; 
02242  
02243  } 
02244  
02245  
02246  
02247  v o i d   h a n d l e C o l o u r S p a c e L i s t b o x C h a n g e ( i n t   i d ) 
02248  
02249  { 
02250  
02251          i n t   c o l o u r S p a c e I D   =   c o l o u r S p a c e L i s t b o x - > g e t _ i n t _ v a l ( ) ; 
02252  
02253          T r a n s f e r F u n c t i o n G U I : : t r a n s f e r F u n c t i o n T e x t u r e C o l o r S p a c e   =   ( C o l o u r S p a c e ) c o l o u r S p a c e I D ; 
02254  
02255  
02256  
02257          u p d a t e B o t t o m W i n d o w ( 0 ) ; 
02258  
02259  } 
02260  
02261  
02262  
02263  
02264  
02265  v o i d   h a n d l e H i s t o G r a m D r a w T y p e L i s t b o x C h a n g e ( i n t   i d ) 
02266  
02267  { 
02268  
02269          i n t   h i s t o g r a m D r a w T y p e   =   g _ h i s t o g r a m D r a w T y p e L i s t b o x - > g e t _ i n t _ v a l ( ) ; 
02270  
02271          g _ H i s t o g r a m D r a w - > s e t D r a w T y p e ( ( H i s t o g r a m D r a w T y p e ) h i s t o g r a m D r a w T y p e ) ; 
02272  
02273  
02274  
02275          u p d a t e B o t t o m W i n d o w ( 0 ) ; 
02276  
02277  } 
02278  
02279  
02280  
02281  v o i d   i n i t T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e ( ) 
02282  
02283  {       
02284  
02285          / / l o a d i n g   o u r   b a c k g r o u n d   t e x t u r e   w h i c h   i s   u s e d   f r   t h e   t r a n s f e r   f u n c t i o n   p i c k e r   a s   b a c k g r o u n d   t o   d i s p l a y   t r a n s p a r e n c y   b e t t e r 
02286  
02287  
02288  
02289  
02290  
02291          g l u t S e t W i n d o w ( g _ b o t t o m W i n d o w I D ) ; 
02292  
02293  
02294  
02295          i l G e n I m a g e s ( 1 ,   & t r a n s f e r F u n c t i o n B a c k g r o u n d I m a g e ) ;   / *   G e n e r a t i o n   o f   o n e   i m a g e   n a m e   * / 
02296  
02297          i l B i n d I m a g e ( t r a n s f e r F u n c t i o n B a c k g r o u n d I m a g e ) ;   / *   B i n d i n g   o f   i m a g e   n a m e   * / 
02298  
02299          I L b o o l e a n   s u c c e s s   =   i l L o a d I m a g e ( " b g . p n g " ) ;   / *   L o a d i n g   o f   i m a g e   " i m a g e . j p g "   * / 
02300  
02301          i f   ( s u c c e s s ) 
02302  
02303          { 
02304  
02305                  s u c c e s s   =   i l C o n v e r t I m a g e ( I L _ R G B A ,   I L _ U N S I G N E D _ B Y T E ) ; 
02306  
02307                  i f   ( ! s u c c e s s ) 
02308  
02309                  { 
02310  
02311                          r e t u r n ; 
02312  
02313                  } 
02314  
02315                  g l G e n T e x t u r e s ( 1 ,   & t r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e ) ;   
02316  
02317  
02318  
02319                  g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   t r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e ) ; 
02320  
02321  
02322  
02323                  g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ M A G _ F I L T E R ,   G L _ N E A R E S T ) ;   
02324  
02325                  g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ M I N _ F I L T E R ,   G L _ N E A R E S T ) ; 
02326  
02327  
02328  
02329                  g l T e x P a r a m e t e r f (   G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ W R A P _ S ,   G L _ R E P E A T ) ; 
02330  
02331                  g l T e x P a r a m e t e r f (   G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ W R A P _ T ,   G L _ R E P E A T ) ; 
02332  
02333  
02334  
02335                  g _ i T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e W i d t h   =   i l G e t I n t e g e r ( I L _ I M A G E _ W I D T H ) ; 
02336  
02337                  g _ i T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e H e i g h t   =   i l G e t I n t e g e r ( I L _ I M A G E _ H E I G H T ) ; 
02338  
02339  
02340  
02341                  g l T e x I m a g e 2 D ( G L _ T E X T U R E _ 2 D ,   0 ,   i l G e t I n t e g e r ( I L _ I M A G E _ B P P ) ,   g _ i T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e W i d t h ,   g _ i T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e H e i g h t , 
02342  
02343                          0 ,   i l G e t I n t e g e r ( I L _ I M A G E _ F O R M A T ) ,   G L _ U N S I G N E D _ B Y T E , 
02344  
02345                          i l G e t D a t a ( ) ) ; 
02346  
02347          } 
02348  
02349          e l s e 
02350  
02351                  c o u t   < <   " L o a d i n g   b g . p n g   h a s   f a i l e d "   < <   e n d l ; 
02352  
02353  
02354  
02355          g e t _ e r r o r s ( ) ; 
02356  
02357  } 
02358  
02359  
02360  
02361  v o i d   d e i n i t T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e ( ) 
02362  
02363  { 
02364  
02365          g l D e l e t e T e x t u r e s ( 1 ,   & t r a n s f e r F u n c t i o n B a c k g r o u n d I m a g e ) ; 
02366  
02367  } 
02368  
02369  
02370  
02371  v o i d   d r a w T r a n s f e r F u n c P i c k e r B a c k g r o u n d ( i n t   w i n d o w W i d t h ,   i n t   w i n d o w H e i g h t ,   i n t   x O f f s e t ,   i n t   y O f f s e t ) 
02372  
02373  { 
02374  
02375          / / B a c k g r o u n d   f o r   t r a n s p a r e n c y 
02376  
02377          f l o a t   x B e g i n   =   ( f l o a t ) x O f f s e t ; 
02378  
02379          f l o a t   x E n d   =   ( f l o a t ) x B e g i n   +   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r W i d t h ; 
02380  
02381  
02382  
02383          f l o a t   y B e g i n   =   ( f l o a t ) w i n d o w H e i g h t   -   y O f f s e t ; 
02384  
02385          f l o a t   y E n d   =   ( f l o a t ) y B e g i n   -   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r H e i g h t ; 
02386  
02387  
02388  
02389          o r t h o g o n a l S t a r t ( w i n d o w W i d t h ,   w i n d o w H e i g h t ) ; 
02390  
02391  
02392  
02393          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   t r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e ) ; 
02394  
02395          g l E n a b l e ( G L _ T E X T U R E _ 2 D ) ; 
02396  
02397  
02398  
02399          f l o a t   t e x W i d t h   =   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r W i d t h   /   ( f l o a t ) g _ i T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e W i d t h ; 
02400  
02401          f l o a t   t e x H e i g h t   =   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r H e i g h t   /   ( f l o a t ) g _ i T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e H e i g h t ; 
02402  
02403  
02404  
02405          / / d r a w   q u a d   w i t h   2 d   t e x t u r e 
02406  
02407          g l B e g i n ( G L _ Q U A D S ) ; 
02408  
02409          g l C o l o r 4 f ( 1 . f , 1 . f , 1 . f , 1 . f ) ; 
02410  
02411          g l T e x C o o r d 2 f ( 0 . f ,   t e x H e i g h t ) ; 
02412  
02413          g l V e r t e x 2 f ( x B e g i n ,   y E n d ) ; 
02414  
02415          g l T e x C o o r d 2 f ( 0 . f ,   0 . f ) ; 
02416  
02417          g l V e r t e x 2 f ( x B e g i n ,   y B e g i n ) ; 
02418  
02419          g l T e x C o o r d 2 f ( t e x W i d t h ,   0 . f ) ; 
02420  
02421          g l V e r t e x 2 f ( x E n d ,   y B e g i n ) ; 
02422  
02423          g l T e x C o o r d 2 f ( t e x W i d t h ,   t e x H e i g h t ) ; 
02424  
02425          g l V e r t e x 2 f ( x E n d ,   y E n d ) ; 
02426  
02427          g l E n d ( ) ; 
02428  
02429  
02430  
02431          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
02432  
02433          g l D i s a b l e ( G L _ T E X T U R E _ 2 D ) ; 
02434  
02435  
02436  
02437  
02438  
02439          o r t h o g o n a l E n d ( ) ; 
02440  
02441  } 
02442  
02443  
02444  
02445  v o i d   d r a w T r a n s f e r F u n c P i c k e r F o r e g r o u n d (   i n t   x O f f s e t ,   i n t   y O f f s e t   ) 
02446  
02447  { 
02448  
02449          g l R a s t e r P o s 2 i ( x O f f s e t ,   y O f f s e t ) ; 
02450  
02451  
02452  
02453          / / T r a n s f e r   f u n c t i o n   d i s p l a y 
02454  
02455          g l E n a b l e ( G L _ B L E N D ) ; 
02456  
02457          g l B l e n d F u n c ( G L _ S R C _ A L P H A ,   G L _ O N E _ M I N U S _ S R C _ A L P H A ) ; 
02458  
02459  
02460  
02461          g l D r a w P i x e l s ( T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r W i d t h ,   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r H e i g h t ,   G L _ R G B A , 
02462  
02463                  G L _ U N S I G N E D _ B Y T E ,   T r a n s f e r F u n c t i o n G U I : : t r a n s f e r F u n c t i o n P i c k e r D a t a ) ; 
02464  
02465  
02466  
02467          g l D i s a b l e ( G L _ B L E N D ) ; 
02468  
02469  } 
02470  
02471  
02472  
02473  v o i d   d r a w C o l o u r P i c k e r ( i n t   w i n d o w W i d t h ,   i n t   w i n d o w H e i g h t ,   i n t   x O f f s e t ,   i n t   y O f f s e t ) 
02474  
02475  { 
02476  
02477          / / B a c k g r o u n d   f o r   t r a n s p a r e n c y 
02478  
02479          o r t h o g o n a l S t a r t ( w i n d o w W i d t h ,   w i n d o w H e i g h t ) ; 
02480  
02481  
02482  
02483          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   C o l o u r P i c k e r : : c o l o u r P i c k e r T e x t u r e I D ) ; 
02484  
02485          g l E n a b l e ( G L _ T E X T U R E _ 2 D ) ; 
02486  
02487  
02488  
02489          / / d r a w   q u a d   w i t h   2 d   t e x t u r e 
02490  
02491          g l B e g i n ( G L _ Q U A D S ) ; 
02492  
02493          g l C o l o r 4 f ( 1 . f , 1 . f , 1 . f , 1 . f ) ; 
02494  
02495          g l T e x C o o r d 2 i ( 0 ,   1 ) ; 
02496  
02497          g l V e r t e x 2 i ( g _ i C o l o u r P i c k e r _ x B e g i n ,   g _ i C o l o u r P i c k e r _ y E n d ) ; 
02498  
02499          g l T e x C o o r d 2 i ( 0 ,   0 ) ; 
02500  
02501          g l V e r t e x 2 i ( g _ i C o l o u r P i c k e r _ x B e g i n ,   g _ i C o l o u r P i c k e r _ y B e g i n ) ; 
02502  
02503          g l T e x C o o r d 2 i ( 1 ,   0 ) ; 
02504  
02505          g l V e r t e x 2 i ( g _ i C o l o u r P i c k e r _ x E n d ,   g _ i C o l o u r P i c k e r _ y B e g i n ) ; 
02506  
02507          g l T e x C o o r d 2 i ( 1 ,   1 ) ; 
02508  
02509          g l V e r t e x 2 i ( g _ i C o l o u r P i c k e r _ x E n d ,   g _ i C o l o u r P i c k e r _ y E n d ) ; 
02510  
02511          g l E n d ( ) ; 
02512  
02513  
02514  
02515          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
02516  
02517          g l D i s a b l e ( G L _ T E X T U R E _ 2 D ) ; 
02518  
02519  
02520  
02521          o r t h o g o n a l E n d ( ) ; 
02522  
02523  } 
02524  
02525  
02526  
02527  v o i d   d r a w C o l o u r P i c k e r C u r s o r ( i n t   w i n d o w W i d t h ,   i n t   w i n d o w H e i g h t ,   i n t   x O f f s e t ,   i n t   y O f f s e t ) 
02528  
02529  { 
02530  
02531          i n t   f r e e C e n t e r D i a m e t e r   =   4 ; 
02532  
02533          i n t   c u r s o r L e n g t h   =   3 ; 
02534  
02535  
02536  
02537          f l o a t   a b s P o s X   =   g _ i C o l o u r P i c k e r _ x B e g i n   +   g _ C o l o r P i c k e r C u r s o r X P o s ; 
02538  
02539          f l o a t   a b s P o s Y   =   g _ i C o l o u r P i c k e r _ y B e g i n   +   g _ C o l o r P i c k e r C u r s o r Y P o s ; 
02540  
02541  
02542  
02543          o r t h o g o n a l S t a r t ( w i n d o w W i d t h ,   w i n d o w H e i g h t ) ; 
02544  
02545  
02546  
02547          g l P u s h M a t r i x ( ) ; 
02548  
02549          g l T r a n s l a t e f ( ( f l o a t ) a b s P o s X ,   ( f l o a t ) a b s P o s Y ,   0 . f ) ; 
02550  
02551  
02552  
02553          / / d r a w   q u a d   w i t h   2 d   t e x t u r e 
02554  
02555          g l B e g i n ( G L _ L I N E S ) ; 
02556  
02557          f l o a t   L   =   g _ f C o l o u r L a b L   /   1 0 0 . f ; 
02558  
02559          i f ( g _ f C o l o u r L a b L   > =   5 0 . f ) 
02560  
02561                  g l C o l o r 3 f ( L   -   0 . 5 f , L   -   0 . 5 f , L   -   0 . 5 f ) ; 
02562  
02563          e l s e 
02564  
02565                  g l C o l o r 3 f ( 1 . f   -   L , 1 . f   -   L , 1 . f   -   L ) ; 
02566  
02567  
02568  
02569          g l V e r t e x 2 f ( - f r e e C e n t e r D i a m e t e r * 0 . 5 f   -   c u r s o r L e n g t h ,   0 . f ) ; 
02570  
02571          g l V e r t e x 2 f ( - f r e e C e n t e r D i a m e t e r * 0 . 5 f ,   0 . f ) ; 
02572  
02573  
02574  
02575          g l V e r t e x 2 f ( f r e e C e n t e r D i a m e t e r * 0 . 5 f   +   c u r s o r L e n g t h ,   0 . f ) ; 
02576  
02577          g l V e r t e x 2 f ( f r e e C e n t e r D i a m e t e r * 0 . 5 f ,   0 . f ) ; 
02578  
02579  
02580  
02581          g l V e r t e x 2 f ( 0 . f ,   - f r e e C e n t e r D i a m e t e r * 0 . 5 f   - c u r s o r L e n g t h ) ; 
02582  
02583          g l V e r t e x 2 f ( 0 . f ,   - f r e e C e n t e r D i a m e t e r * 0 . 5 f ) ; 
02584  
02585  
02586  
02587          g l V e r t e x 2 f ( 0 . f ,   f r e e C e n t e r D i a m e t e r * 0 . 5 f   + c u r s o r L e n g t h ) ; 
02588  
02589          g l V e r t e x 2 f ( 0 . f ,   f r e e C e n t e r D i a m e t e r * 0 . 5 f ) ; 
02590  
02591          g l E n d ( ) ; 
02592  
02593  
02594  
02595          g l P o p M a t r i x ( ) ; 
02596  
02597  
02598  
02599          o r t h o g o n a l E n d ( ) ; 
02600  
02601  } 
02602  
02603  
02604  
02605  v o i d   h a n d l e C o l o u r P i c k e r S l i d e r M o d e C h a n g e ( i n t   i d ) 
02606  
02607  { 
02608  
02609          C o l o u r P i c k e r : : g _ i C o l o u r P i c k e r L a b S w i t c h M o d e   =   ( C o l o u r P i c k e r S l i d e r M o d e ) L a b S w i t c h e r F o r C o l o u r P i c k e r - > g e t _ i n t _ v a l ( ) ; 
02610  
02611  
02612  
02613          s w i t c h ( C o l o u r P i c k e r : : g _ i C o l o u r P i c k e r L a b S w i t c h M o d e ) 
02614  
02615          { 
02616  
02617          c a s e   C o l o u r P i c k e r S l i d e r M o d e _ L : 
02618  
02619                  g _ p C o l o u r P i c k e r S l i d e r T e x t - > s e t _ t e x t ( " L u m i n o s i t y   v a l u e " ) ; 
02620  
02621                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ t e x t ( " L " ) ; 
02622  
02623                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ l i m i t s ( 0 . f ,   1 0 0 . f ) ; 
02624  
02625                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ v a l ( g _ f C o l o u r L a b L ) ; 
02626  
02627                  b r e a k ; 
02628  
02629          c a s e   C o l o u r P i c k e r S l i d e r M o d e _ A : 
02630  
02631                  g _ p C o l o u r P i c k e r S l i d e r T e x t - > s e t _ t e x t ( " G r e e n - R e d   v a l u e " ) ; 
02632  
02633                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ t e x t ( " a " ) ; 
02634  
02635                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ l i m i t s ( - 1 3 0 . f ,   1 3 0 . f ) ; 
02636  
02637                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ v a l ( g _ f C o l o u r L a b A ) ; 
02638  
02639                  b r e a k ; 
02640  
02641          c a s e   C o l o u r P i c k e r S l i d e r M o d e _ B : 
02642  
02643                  g _ p C o l o u r P i c k e r S l i d e r T e x t - > s e t _ t e x t ( " B l u e - Y e l l o w   v a l u e " ) ; 
02644  
02645                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ t e x t ( " b " ) ; 
02646  
02647                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ l i m i t s ( - 1 3 0 . f ,   1 3 0 . f ) ; 
02648  
02649                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ v a l ( g _ f C o l o u r L a b B ) ; 
02650  
02651                  b r e a k ; 
02652  
02653          } 
02654  
02655  
02656  
02657          C o l o u r P i c k e r : : r e f r e s h C o l o u r P i c k e r T e x t u r e ( g _ b o t t o m W i n d o w I D ) ; 
02658  
02659  
02660  
02661          u p d a t e C o l o u r P i c k e r C u r s o r P o s B a s e d O n S e l e c t e d C o l o u r ( ) ; 
02662  
02663  
02664  
02665          p o s t R e d i s p l a y B o t t o m W i n d o w ( ) ; 
02666  
02667  } 
02668  
02669  
02670  
02671  v o i d   h a n d l e C o l o u r P i c k e r S l i d e r C h a n g e ( i n t   i d ) 
02672  
02673  { 
02674  
02675          C o l o u r P i c k e r : : r e f r e s h C o l o u r P i c k e r T e x t u r e ( g _ b o t t o m W i n d o w I D ) ; 
02676  
02677          u p d a t e G U I C o l o u r W i t h C o l o u r P i c k e r V a l u e ( ) ; 
02678  
02679          u p d a t e S e l e c t e d C o n t r o l P o i n t C o l o u r W i t h G U I C o l o u r ( ) ; 
02680  
02681  
02682  
02683          p o s t R e d i s p l a y B o t t o m W i n d o w ( ) ; 
02684  
02685  } 
02686  
02687  
02688  
02689  b o o l   c h e c k F o r C o l o u r P i c k e r A c t i o n ( i n t   b u t t o n ,   i n t   s t a t e ,   i n t   x ,   i n t   y ) 
02690  
02691  { 
02692  
02693          i f ( b u t t o n   = =   0   & &   s t a t e   = =   0 ) 
02694  
02695          { 
02696  
02697                  i f   ( x   > =     g _ i C o l o u r P i c k e r _ x B e g i n   & &   x   < =   g _ i C o l o u r P i c k e r _ x E n d 
02698  
02699                          & &   y   > =   g _ i C o l o u r P i c k e r _ y B e g i n   & &   y   < =   g _ i C o l o u r P i c k e r _ y E n d ) 
02700  
02701                  { 
02702  
02703                          u p d a t e C o l o u r P i c k e r C u r s o r P o s B a s e d O n M o u s e C o o r d i n a t e s ( x ,   y ) ; 
02704  
02705  
02706  
02707                          u p d a t e G U I C o l o u r W i t h C o l o u r P i c k e r V a l u e ( ) ; 
02708  
02709                          u p d a t e S e l e c t e d C o n t r o l P o i n t C o l o u r W i t h G U I C o l o u r ( ) ; 
02710  
02711  
02712  
02713                          g _ b D r a g g i n g C o l o u r P i c k e r C u r s o r   =   t r u e ; 
02714  
02715  
02716  
02717                          r e t u r n   t r u e ; 
02718  
02719                  } 
02720  
02721          } 
02722  
02723  
02724  
02725          i f ( b u t t o n   = =   0   & &   s t a t e   = =   1 ) 
02726  
02727          { 
02728  
02729                  i f ( g _ b D r a g g i n g C o l o u r P i c k e r C u r s o r ) 
02730  
02731                  { 
02732  
02733                          g _ b D r a g g i n g C o l o u r P i c k e r C u r s o r   =   f a l s e ; 
02734  
02735                          r e t u r n   t r u e ; 
02736  
02737                  } 
02738  
02739          } 
02740  
02741  
02742  
02743          r e t u r n   f a l s e ; 
02744  
02745  
02746  
02747  } 
02748  
02749  
02750  
02751  v o i d   o p e n F i l e ( i n t ) 
02752  
02753  { 
02754  
02755          O P E N F I L E N A M E   o f n ; 
02756  
02757          c h a r   s z F i l e N a m e [ M A X _ P A T H ]   =   " " ; 
02758  
02759  
02760  
02761          Z e r o M e m o r y ( & o f n ,   s i z e o f ( o f n ) ) ; 
02762  
02763  
02764  
02765          o f n . l S t r u c t S i z e   =   s i z e o f ( o f n ) ; 
02766  
02767          o f n . h w n d O w n e r   =   g _ h M a i n W i n d o w ; 
02768  
02769          o f n . l p s t r F i l t e r   =   " D a t a   F i l e s   ( * . d a t ) \ 0 * . d a t \ 0 A l l   F i l e s   ( * . * ) \ 0 * . * \ 0 " ; 
02770  
02771          o f n . l p s t r F i l e   =   s z F i l e N a m e ; 
02772  
02773          o f n . n M a x F i l e   =   M A X _ P A T H ; 
02774  
02775          o f n . F l a g s   =   O F N _ E X P L O R E R   |   O F N _ F I L E M U S T E X I S T ; 
02776  
02777          o f n . l p s t r D e f E x t   =   " d a t " ; 
02778  
02779  
02780  
02781          i f ( G e t O p e n F i l e N a m e ( & o f n ) ) 
02782  
02783          { 
02784  
02785                  p r o c e s s S l i c e O f D a t a ( s t d : : s t r i n g ( s z F i l e N a m e ) ) ; 
02786  
02787                  u p d a t e R e n d e r W i n d o w ( 0 ) ; 
02788  
02789                  g _ H i s t o g r a m D r a w - > r e f r e s h H i s t o g r a m D r a w D a t a ( g _ V o l u m e ) ; 
02790  
02791                  u p d a t e B o t t o m W i n d o w ( 0 ) ; 
02792  
02793          } 
02794  
02795  } 
02796  
02797  
02798  
02799  
02800  
02801  v o i d   u p d a t e C o l o u r P i c k e r C u r s o r M o v e m e n t (   i n t   x ,   i n t   y   ) 
02802  
02803  { 
02804  
02805          u p d a t e C o l o u r P i c k e r C u r s o r P o s B a s e d O n M o u s e C o o r d i n a t e s ( x ,   y ) ; 
02806  
02807  
02808  
02809          u p d a t e G U I C o l o u r W i t h C o l o u r P i c k e r V a l u e ( ) ; 
02810  
02811  } 
02812  
02813  
02814  
02815  v o i d   u p d a t e G U I C o l o u r W i t h C o l o u r P i c k e r V a l u e ( ) 
02816  
02817  { 
02818  
02819          i n t   i   =   ( i n t ) ( g _ C o l o r P i c k e r C u r s o r Y P o s   *   C o l o u r P i c k e r : : c o l o u r P i c k e r W i d t h   +   g _ C o l o r P i c k e r C u r s o r X P o s ) ; 
02820  
02821          R G B A _ C o l o u r &   s e l e c t e d C o l o u r   =   C o l o u r P i c k e r : : c o l o u r P i c k e r T e x t u r e D a t a [ i ] ; 
02822  
02823  
02824  
02825          g _ C o l o u r S p i n n e r R g b R - > s e t _ i n t _ v a l ( s e l e c t e d C o l o u r . r ) ; 
02826  
02827          g _ C o l o u r S p i n n e r R g b G - > s e t _ i n t _ v a l ( s e l e c t e d C o l o u r . g ) ; 
02828  
02829          g _ C o l o u r S p i n n e r R g b B - > s e t _ i n t _ v a l ( s e l e c t e d C o l o u r . b ) ; 
02830  
02831  
02832  
02833          L a b _ C o l o u r   s e l e c t e d C o l o u r L a b   =   C o l o u r P i c k e r : : g e t C o l o u r P i c k e r P o s i t i o n C o l o u r ( g _ C o l o r P i c k e r C u r s o r X P o s ,   g _ C o l o r P i c k e r C u r s o r Y P o s ) ; 
02834  
02835          g _ C o l o u r S p i n n e r L a b L - > s e t _ f l o a t _ v a l ( s e l e c t e d C o l o u r L a b . L ) ; 
02836  
02837          g _ C o l o u r S p i n n e r L a b A - > s e t _ f l o a t _ v a l ( s e l e c t e d C o l o u r L a b . a ) ; 
02838  
02839          g _ C o l o u r S p i n n e r L a b B - > s e t _ f l o a t _ v a l ( s e l e c t e d C o l o u r L a b . b ) ; 
02840  
02841  } 
02842  
02843  
02844  
02845  v o i d   r e f r e s h C o l o u r M a p C o r n e r P o s i t i o n s ( ) 
02846  
02847  { 
02848  
02849          g _ i C o l o u r P i c k e r _ x B e g i n   =   g _ i T r a n s f e r F u n c t i o n P i c k e r X O f f s e t   +   C o l o u r P i c k e r : : c o l o u r P i c k e r O f f s e t X   +   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r W i d t h ; 
02850  
02851          g _ i C o l o u r P i c k e r _ x E n d   =   g _ i C o l o u r P i c k e r _ x B e g i n   +   C o l o u r P i c k e r : : c o l o u r P i c k e r W i d t h ; 
02852  
02853  
02854  
02855          g _ i C o l o u r P i c k e r _ y B e g i n   =   g _ b o t t o m W i n d o w H e i g h t   -   ( C o l o u r P i c k e r : : c o l o u r P i c k e r H e i g h t     +   g _ i T r a n s f e r F u n c t i o n P i c k e r Y O f f s e t   -   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c t i o n T e x t u r e D i s p l a y H e i g h t   -   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c t i o n T e x t u r e D i s p l a y Y O f f s e t ) ; 
02856  
02857          g _ i C o l o u r P i c k e r _ y E n d   =   g _ i C o l o u r P i c k e r _ y B e g i n   +   C o l o u r P i c k e r : : c o l o u r P i c k e r H e i g h t ; 
02858  
02859  } 
02860  
02861  
02862  
02863  v o i d   u p d a t e C o l o u r P i c k e r C u r s o r P o s B a s e d O n M o u s e C o o r d i n a t e s (   i n t   x ,   i n t   y   ) 
02864  
02865  { 
02866  
02867          g _ C o l o r P i c k e r C u r s o r X P o s   =     ( f l o a t ) C o l o u r P i c k e r : : c o l o u r P i c k e r W i d t h   -   ( g _ i C o l o u r P i c k e r _ x E n d   -   x ) ; 
02868  
02869          c l a m p ( g _ C o l o r P i c k e r C u r s o r X P o s ,   0 . f ,   ( f l o a t ) C o l o u r P i c k e r : : c o l o u r P i c k e r W i d t h ) ; 
02870  
02871          g _ C o l o r P i c k e r C u r s o r Y P o s   =   ( f l o a t ) C o l o u r P i c k e r : : c o l o u r P i c k e r H e i g h t   -   ( g _ i C o l o u r P i c k e r _ y E n d   -   y ) ; 
02872  
02873          c l a m p ( g _ C o l o r P i c k e r C u r s o r Y P o s ,   0 . f ,   ( f l o a t ) C o l o u r P i c k e r : : c o l o u r P i c k e r H e i g h t ) ; 
02874  
02875  } 
02876  
02877  
02878  
02879  v o i d   u p d a t e C o l o u r P i c k e r C u r s o r P o s B a s e d O n S e l e c t e d C o l o u r ( ) 
02880  
02881  { 
02882  
02883          s w i t c h ( C o l o u r P i c k e r : : g _ i C o l o u r P i c k e r L a b S w i t c h M o d e ) 
02884  
02885          { 
02886  
02887          c a s e   C o l o u r P i c k e r S l i d e r M o d e _ L : 
02888  
02889                  g _ C o l o r P i c k e r C u r s o r X P o s   =   ( ( g _ f C o l o u r L a b A   -   1 3 0 . f )   /   ( - 2 6 0 . f ) )   *   C o l o u r P i c k e r : : c o l o u r P i c k e r W i d t h ; 
02890  
02891                  g _ C o l o r P i c k e r C u r s o r Y P o s   =   ( ( g _ f C o l o u r L a b B   -   1 3 0 . f )   /   ( - 2 6 0 . f ) )   *   C o l o u r P i c k e r : : c o l o u r P i c k e r H e i g h t ; 
02892  
02893                  b r e a k ; 
02894  
02895  
02896  
02897          c a s e   C o l o u r P i c k e r S l i d e r M o d e _ A : 
02898  
02899                  g _ C o l o r P i c k e r C u r s o r X P o s   =   ( ( g _ f C o l o u r L a b B   -   1 3 0 . f )   /   ( - 2 6 0 . f ) )   *   C o l o u r P i c k e r : : c o l o u r P i c k e r W i d t h ; 
02900  
02901                  g _ C o l o r P i c k e r C u r s o r Y P o s   =   ( (   g _ f C o l o u r L a b L )   /   1 0 0 . f )   *   C o l o u r P i c k e r : : c o l o u r P i c k e r H e i g h t ; 
02902  
02903                  b r e a k ; 
02904  
02905          c a s e   C o l o u r P i c k e r S l i d e r M o d e _ B : 
02906  
02907                  g _ C o l o r P i c k e r C u r s o r X P o s   =   ( ( g _ f C o l o u r L a b A   -   1 3 0 . f )   /   ( - 2 6 0 . f ) )   *   C o l o u r P i c k e r : : c o l o u r P i c k e r W i d t h ; 
02908  
02909                  g _ C o l o r P i c k e r C u r s o r Y P o s   =   ( ( g _ f C o l o u r L a b L )   /   1 0 0 . f )   *   C o l o u r P i c k e r : : c o l o u r P i c k e r H e i g h t ; 
02910  
02911                  b r e a k ; 
02912  
02913          } 
02914  
02915  
02916  
02917          p o s t R e d i s p l a y B o t t o m W i n d o w ( ) ; 
02918  
02919  
02920  
02921  } 
02922  
02923  
02924  
02925  v o i d   t r a n s f o r m C o o r d i n a t e s T o T r a n s f e r F u n c t i o n P i c k e r S p a c e ( i n t   & t r a n s f e r F u n c S p a c e X ,   i n t   & t r a n s f e r F u n c S p a c e Y ) 
02926  
02927  { 
02928  
02929          t r a n s f e r F u n c S p a c e X   =   t r a n s f e r F u n c S p a c e X   -   g _ i T r a n s f e r F u n c t i o n P i c k e r X O f f s e t ; 
02930  
02931          t r a n s f e r F u n c S p a c e Y   =   t r a n s f e r F u n c S p a c e Y   -   ( g _ b o t t o m W i n d o w H e i g h t   -   ( T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r H e i g h t   +     g _ i T r a n s f e r F u n c t i o n P i c k e r Y O f f s e t ) ) ; 
02932  
02933  } 
02934  
02935  
02936  
02937  v o i d   u p d a t e G U I C o l o u r W i t h S e l e c t e d C o n t r o l P o i n t C o l o u r ( ) 
02938  
02939  { 
02940  
02941          T F C o n t r o l P o i n t *   c o n t r o l P o i n t   =     T r a n s f e r F u n c t i o n G U I : : g e t S e l e c t e d C o n t r o l P o i n t ( ) ; 
02942  
02943  
02944  
02945          i f ( c o n t r o l P o i n t   ! =   N U L L ) 
02946  
02947          { 
02948  
02949                  L a b _ C o l o u r &   c o l o u r   =   c o n t r o l P o i n t - > g e t C o l o u r L a b ( ) ; 
02950  
02951  
02952  
02953                  g _ C o l o u r S p i n n e r L a b L - > s e t _ f l o a t _ v a l ( c o l o u r . L ) ; 
02954  
02955                  g _ C o l o u r S p i n n e r L a b A - > s e t _ f l o a t _ v a l ( c o l o u r . a ) ; 
02956  
02957                  g _ C o l o u r S p i n n e r L a b B - > s e t _ f l o a t _ v a l ( c o l o u r . b ) ; 
02958  
02959  
02960  
02961                  R G B _ C o l o u r   c o l o u r R G B ( t o R G B ( c o l o u r ) ) ; 
02962  
02963  
02964  
02965                  g _ C o l o u r S p i n n e r R g b R - > s e t _ i n t _ v a l ( c o l o u r R G B . r ) ; 
02966  
02967                  g _ C o l o u r S p i n n e r R g b G - > s e t _ i n t _ v a l ( c o l o u r R G B . g ) ; 
02968  
02969                  g _ C o l o u r S p i n n e r R g b B - > s e t _ i n t _ v a l ( c o l o u r R G B . b ) ; 
02970  
02971  
02972  
02973                  g _ C o l o u r T r a n s p a r e n c y S p i n n e r - > s e t _ i n t _ v a l ( ( G L u b y t e ) ( 2 5 5   *   c o n t r o l P o i n t - > m _ p o s . y   /   ( f l o a t ) T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r H e i g h t ) ) ; 
02974  
02975          } 
02976  
02977  } 
02978  
02979  
02980  
02981  
02982  
02983  v o i d   u p d a t e S e l e c t e d C o n t r o l P o i n t C o l o u r W i t h G U I C o l o u r ( ) 
02984  
02985  { 
02986  
02987          T F C o n t r o l P o i n t *   c o n t r o l P o i n t   =     T r a n s f e r F u n c t i o n G U I : : g e t S e l e c t e d C o n t r o l P o i n t ( ) ; 
02988  
02989  
02990  
02991          i f ( c o n t r o l P o i n t   ! =   N U L L ) 
02992  
02993          { 
02994  
02995                  c o n t r o l P o i n t - > s e t C o l o u r ( g _ f C o l o u r L a b L ,   g _ f C o l o u r L a b A ,   g _ f C o l o u r L a b B ) ; 
02996  
02997  
02998  
02999                  / / T o d o   -   s e t   h e i g h t   a c c o r d i n g   t o   s e t   a l p h a   v a l u e ? 
03000  
03001                  / / g _ i C o l o u r A l p h a 
03002  
03003          } 
03004  
03005  } 
03006  
03007  
03008  
03009  v o i d   h a n d l e G U I S p e c i f i e d C o l o u r C h a n g e ( i n t ) 
03010  
03011  { 
03012  
03013          u p d a t e C o l o u r P i c k e r S l i d e r W i t h S e t G U I C o l o u r C o m p o n e n t ( ) ; 
03014  
03015  
03016  
03017          u p d a t e S e l e c t e d C o n t r o l P o i n t C o l o u r W i t h G U I C o l o u r ( ) ; 
03018  
03019  } 
03020  
03021  
03022  
03023  v o i d   h a n d l e G U I C o l o u r L a b L C h a n g e ( i n t ) 
03024  
03025  { 
03026  
03027          i f ( C o l o u r P i c k e r : : g _ i C o l o u r P i c k e r L a b S w i t c h M o d e   = =   C o l o u r P i c k e r S l i d e r M o d e _ L ) 
03028  
03029          { 
03030  
03031                  C o l o u r P i c k e r : : r e f r e s h C o l o u r P i c k e r T e x t u r e ( g _ b o t t o m W i n d o w I D ) ; 
03032  
03033                  p o s t R e d i s p l a y B o t t o m W i n d o w ( ) ; 
03034  
03035          } 
03036  
03037  
03038  
03039  
03040  
03041          h a n d l e G U I C o l o u r L a b C h a n g e ( 0 ) ; 
03042  
03043  } 
03044  
03045  
03046  
03047  v o i d   h a n d l e G U I C o l o u r L a b A C h a n g e ( i n t ) 
03048  
03049  { 
03050  
03051          i f ( C o l o u r P i c k e r : : g _ i C o l o u r P i c k e r L a b S w i t c h M o d e   = =   C o l o u r P i c k e r S l i d e r M o d e _ A ) 
03052  
03053          { 
03054  
03055                  C o l o u r P i c k e r : : r e f r e s h C o l o u r P i c k e r T e x t u r e ( g _ b o t t o m W i n d o w I D ) ; 
03056  
03057                  p o s t R e d i s p l a y B o t t o m W i n d o w ( ) ; 
03058  
03059          } 
03060  
03061  
03062  
03063          h a n d l e G U I C o l o u r L a b C h a n g e ( 0 ) ; 
03064  
03065  } 
03066  
03067  
03068  
03069  v o i d   h a n d l e G U I C o l o u r L a b B C h a n g e ( i n t ) 
03070  
03071  { 
03072  
03073          i f ( C o l o u r P i c k e r : : g _ i C o l o u r P i c k e r L a b S w i t c h M o d e   = =   C o l o u r P i c k e r S l i d e r M o d e _ B ) 
03074  
03075          { 
03076  
03077                  C o l o u r P i c k e r : : r e f r e s h C o l o u r P i c k e r T e x t u r e ( g _ b o t t o m W i n d o w I D ) ; 
03078  
03079                  p o s t R e d i s p l a y B o t t o m W i n d o w ( ) ; 
03080  
03081          } 
03082  
03083  
03084  
03085  
03086  
03087          h a n d l e G U I C o l o u r L a b C h a n g e ( 0 ) ; 
03088  
03089  } 
03090  
03091  
03092  
03093  
03094  
03095  v o i d   h a n d l e G U I C o l o u r L a b C h a n g e ( i n t ) 
03096  
03097  { 
03098  
03099          R G B _ C o l o u r   c o l o u r ( t o R G B ( g _ f C o l o u r L a b L ,   g _ f C o l o u r L a b A ,   g _ f C o l o u r L a b B ) ) ; 
03100  
03101  
03102  
03103          g _ C o l o u r S p i n n e r R g b R - > s e t _ f l o a t _ v a l ( c o l o u r . r ) ; 
03104  
03105          g _ C o l o u r S p i n n e r R g b G - > s e t _ f l o a t _ v a l ( c o l o u r . g ) ; 
03106  
03107          g _ C o l o u r S p i n n e r R g b B - > s e t _ f l o a t _ v a l ( c o l o u r . b ) ; 
03108  
03109  
03110  
03111          h a n d l e G U I S p e c i f i e d C o l o u r C h a n g e ( 0 ) ; 
03112  
03113  
03114  
03115          u p d a t e C o l o u r P i c k e r C u r s o r P o s B a s e d O n S e l e c t e d C o l o u r ( ) ; 
03116  
03117  } 
03118  
03119  
03120  
03121  v o i d   h a n d l e G U I C o l o u r R g b C h a n g e ( i n t ) 
03122  
03123  { 
03124  
03125          L a b _ C o l o u r   c o l o u r ( ( G L u b y t e ) g _ i C o l o u r R g b R ,   ( G L u b y t e ) g _ i C o l o u r R g b G ,   ( G L u b y t e ) g _ i C o l o u r R g b B ) ; 
03126  
03127          g _ C o l o u r S p i n n e r L a b L - > s e t _ f l o a t _ v a l ( c o l o u r . L ) ; 
03128  
03129          g _ C o l o u r S p i n n e r L a b A - > s e t _ f l o a t _ v a l ( c o l o u r . a ) ; 
03130  
03131          g _ C o l o u r S p i n n e r L a b B - > s e t _ f l o a t _ v a l ( c o l o u r . b ) ; 
03132  
03133  
03134  
03135          h a n d l e G U I S p e c i f i e d C o l o u r C h a n g e ( 0 ) ; 
03136  
03137  } 
03138  
03139  
03140  
03141  v o i d   u p d a t e C o l o u r P i c k e r S l i d e r W i t h S e t G U I C o l o u r C o m p o n e n t ( ) 
03142  
03143  { 
03144  
03145          s w i t c h ( C o l o u r P i c k e r : : g _ i C o l o u r P i c k e r L a b S w i t c h M o d e ) 
03146  
03147          { 
03148  
03149          c a s e   C o l o u r P i c k e r S l i d e r M o d e _ L : 
03150  
03151                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ v a l ( g _ f C o l o u r L a b L ) ; 
03152  
03153                  b r e a k ; 
03154  
03155          c a s e   C o l o u r P i c k e r S l i d e r M o d e _ A : 
03156  
03157                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ v a l ( g _ f C o l o u r L a b A ) ; 
03158  
03159                  b r e a k ; 
03160  
03161          c a s e   C o l o u r P i c k e r S l i d e r M o d e _ B : 
03162  
03163                  g _ p C o l o u r P i c k e r S l i d e r - > s e t _ f l o a t _ v a l ( g _ f C o l o u r L a b B ) ; 
03164  
03165                  b r e a k ; 
03166  
03167          } 
03168  
03169  } 
03170  
03171  
03172  
03173  
03174  
03175  v o i d   d r a w H i s t o g r a m ( i n t   w i n d o w W i d t h ,   i n t   w i n d o w H e i g h t ,   i n t   x O f f s e t ,   i n t   y O f f s e t ) 
03176  
03177  { 
03178  
03179          i n t   x B e g i n   =   x O f f s e t ; 
03180  
03181          i n t   x E n d   =   x B e g i n   +   T r a n s f e r F u n c t i o n G U I : : g _ i T r a n s f e r F u n c P i c k e r W i d t h ; 
03182  
03183  
03184  
03185          o r t h o g o n a l S t a r t ( w i n d o w W i d t h ,   w i n d o w H e i g h t ) ; 
03186  
03187  
03188  
03189          g l E n a b l e ( G L _ B L E N D ) ; 
03190  
03191          g l B l e n d F u n c ( G L _ S R C _ A L P H A ,   G L _ O N E _ M I N U S _ S R C _ A L P H A ) ; 
03192  
03193  
03194  
03195          g l P u s h M a t r i x ( ) ; 
03196  
03197          g l T r a n s l a t e f ( ( f l o a t ) x O f f s e t ,   w i n d o w H e i g h t   -   ( f l o a t ) y O f f s e t ,   0 . f ) ; 
03198  
03199          g _ H i s t o g r a m D r a w - > d r a w ( ) ; 
03200  
03201          g l P o p M a t r i x ( ) ; 
03202  
03203  
03204  
03205          g l D i s a b l e ( G L _ B L E N D ) ; 
03206  
03207  
03208  
03209          o r t h o g o n a l E n d ( ) ; 
03210  
03211  } 
03212  
03213  
03214  
03215  b o o l   i n i t S h a d e r s ( ) 
03216  
03217  { 
03218  
03219          g l u t S e t W i n d o w ( g _ r e n d e r W i n d o w I D ) ; 
03220  
03221  
03222  
03223          S h a d e r M a n a g e r *   s h a d e r M a n a g e r   =   S h a d e r M a n a g e r : : g e t I n s t a n c e ( ) ; 
03224  
03225          s h a d e r M a n a g e r - > l o a d S h a d e r ( s i m p l e S h a d e r I D ,   S H A D E R _ P R O G R A M _ D I R   +   " R a y t r a c i n g T F S h a d e r " ) ; 
03226  
03227          s h a d e r   =   s h a d e r M a n a g e r - > g e t S h a d e r ( s i m p l e S h a d e r I D ) ; 
03228  
03229  
03230  
03231          g e t _ e r r o r s ( ) ; 
03232  
03233  
03234  
03235          r e t u r n   s h a d e r - > w a s S u c c e s s f u l l y L i n k e d ( ) ; 
03236  
03237  } 
03238  
03239  
03240  
03241  
03242  
03243  
03244  
03245  
03246  
03247  
03248  
03249  v o i d   i n i t R e n d e r W i n d o w ( ) 
03250  
03251  { 
03252  
03253  
03254  
03255  } 
03256  
03257  
03258  
03259  v o i d   i n i t B o t t o m W i n d o w ( ) 
03260  
03261  { 
03262  
03263          s t a t i c   b o o l   i n i t i a l i z e d   =   f a l s e ; 
03264  
03265  
03266  
03267          i f ( ! i n i t i a l i z e d ) 
03268  
03269          { 
03270  
03271                  i n i t I n t e r f a c e B o t t o m ( ) ; 
03272  
03273  
03274  
03275  
03276  
03277                  T r a n s f e r F u n c t i o n T e x t u r e : : i n i t T r a n s f e r F u n c t i o n T e x t u r e ( g _ b o t t o m W i n d o w I D ,   W I N D O W _ B O T T O M ) ; 
03278  
03279                  T r a n s f e r F u n c t i o n T e x t u r e : : i n i t T r a n s f e r F u n c t i o n T e x t u r e ( g _ r e n d e r W i n d o w I D ,   W I N D O W _ R E N D E R I N G ) ; 
03280  
03281                  T r a n s f e r F u n c t i o n G U I : : i n i t C o n t r o l P o i n t s ( ) ; 
03282  
03283                  C o l o u r P i c k e r : : i n i t C o l o u r P i c k e r T e x t u r e ( ) ; 
03284  
03285                  i n i t T r a n s f e r F u n c t i o n B a c k g r o u n d T e x t u r e ( ) ; 
03286  
03287  
03288  
03289                  u p d a t e G U I C o l o u r W i t h C o l o u r P i c k e r V a l u e ( ) ; 
03290  
03291  
03292  
03293                  i n i t i a l i z e d   =   t r u e ; 
03294  
03295          } 
03296  
03297  } 
03298  
03299  
03300  
03301  v o i d   d r a w B o x ( f l o a t   c u b e W i d t h ,   f l o a t   c u b e H e i g h t ,   f l o a t   c u b e D e p t h ) 
03302  
03303  { 
03304  
03305          g l B e g i n ( G L _ Q U A D S ) ; 
03306  
03307          g l C o l o r 4 f ( 1 . f ,   1 . f ,   1 . f ,   1 . f ) ; 
03308  
03309  
03310  
03311          / /   F r o n t   F a c e 
03312  
03313          g l N o r m a l 3 f ( 0 , 0 , 1 ) ; 
03314  
03315          g l C o l o r 3 f ( 1 . f ,   1 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   1 ) ;   g l V e r t e x 3 f ( c u b e W i d t h ,   c u b e H e i g h t ,   c u b e D e p t h ) ; 
03316  
03317          g l C o l o r 3 f ( 0 . f ,   1 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   1 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   c u b e H e i g h t ,   c u b e D e p t h ) ; 
03318  
03319          g l C o l o r 3 f ( 0 . f ,   0 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   0 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   - c u b e H e i g h t ,   c u b e D e p t h ) ; 
03320  
03321          g l C o l o r 3 f ( 1 . f ,   0 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   0 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   - c u b e H e i g h t ,   c u b e D e p t h ) ; 
03322  
03323  
03324  
03325          / /   F a c e   v 0 - v 3 - v 4 - v 5 
03326  
03327          g l N o r m a l 3 f ( 1 , 0 , 0 ) ; 
03328  
03329          g l C o l o r 3 f ( 1 . f ,   1 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   1 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   c u b e H e i g h t ,   c u b e D e p t h ) ; 
03330  
03331          g l C o l o r 3 f ( 1 . f ,   0 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   0 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   - c u b e H e i g h t ,   c u b e D e p t h ) ; 
03332  
03333          g l C o l o r 3 f ( 1 . f ,   0 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   0 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   - c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03334  
03335          g l C o l o r 3 f ( 1 . f ,   1 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   1 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03336  
03337  
03338  
03339          / /   F a c e   v 0 - v 5 - v 6 - v 1 
03340  
03341          g l N o r m a l 3 f ( 0 , 1 , 0 ) ; 
03342  
03343          g l C o l o r 3 f ( 1 . f ,   1 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   0 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   c u b e H e i g h t ,   c u b e D e p t h ) ; 
03344  
03345          g l C o l o r 3 f ( 1 . f ,   1 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   1 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03346  
03347          g l C o l o r 3 f ( 0 . f ,   1 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   1 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03348  
03349          g l C o l o r 3 f ( 0 . f ,   1 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   0 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   c u b e H e i g h t ,   c u b e D e p t h ) ; 
03350  
03351  
03352  
03353          / /   F a c e     v 1 - v 6 - v 7 - v 2 
03354  
03355          g l N o r m a l 3 f ( - 1 , 0 , 0 ) ; 
03356  
03357          g l C o l o r 3 f ( 0 . f ,   1 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   1 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   c u b e H e i g h t ,   c u b e D e p t h ) ; 
03358  
03359          g l C o l o r 3 f ( 0 . f ,   1 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   1 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03360  
03361          g l C o l o r 3 f ( 0 . f ,   0 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   0 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   - c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03362  
03363          g l C o l o r 3 f ( 0 . f ,   0 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   0 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   - c u b e H e i g h t ,   c u b e D e p t h ) ; 
03364  
03365  
03366  
03367          / /   F a c e   v 7 - v 4 - v 3 - v 2 
03368  
03369          g l N o r m a l 3 f ( 0 , - 1 , 0 ) ; 
03370  
03371          g l C o l o r 3 f ( 0 . f ,   0 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   0 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   - c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03372  
03373          g l C o l o r 3 f ( 1 . f ,   0 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   0 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   - c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03374  
03375          g l C o l o r 3 f ( 1 . f ,   0 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   1 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   - c u b e H e i g h t ,   c u b e D e p t h ) ; 
03376  
03377          g l C o l o r 3 f ( 0 . f ,   0 . f ,   1 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   1 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   - c u b e H e i g h t ,   c u b e D e p t h ) ; 
03378  
03379  
03380  
03381          / /   B a c k   F a c e 
03382  
03383          g l N o r m a l 3 f ( 0 , 0 , - 1 ) ; 
03384  
03385          g l C o l o r 3 f ( 1 . f ,   0 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   0 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   - c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03386  
03387          g l C o l o r 3 f ( 0 . f ,   0 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   0 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   - c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03388  
03389          g l C o l o r 3 f ( 0 . f ,   1 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 1 ,   1 ) ;     g l V e r t e x 3 f ( - c u b e W i d t h ,   c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03390  
03391          g l C o l o r 3 f ( 1 . f ,   1 . f ,   0 . f ) ;       g l T e x C o o r d 2 i ( 0 ,   1 ) ;     g l V e r t e x 3 f ( c u b e W i d t h ,   c u b e H e i g h t ,   - c u b e D e p t h ) ; 
03392  
03393          g l E n d ( ) ; 
03394  
03395  } 
03396  
03397  
03398  
03399  v o i d   s t a r t S h a d i n g ( ) 
03400  
03401  { 
03402  
03403          s h a d e r - > b i n d ( ) ; 
03404  
03405  
03406  
03407          f r o n t 2 D T e x L o c   =   s h a d e r - > g e t _ u n i f o r m _ l o c a t i o n ( " f r o n t 2 D T e x " ) ; 
03408  
03409          b a c k 2 D T e x L o c   =   s h a d e r - > g e t _ u n i f o r m _ l o c a t i o n ( " b a c k 2 D T e x " ) ; 
03410  
03411          d a t a 3 D T e x L o c   =   s h a d e r - > g e t _ u n i f o r m _ l o c a t i o n ( " d a t a 3 D T e x " ) ; 
03412  
03413          t r a n s f e r T e x L o c   =   s h a d e r - > g e t _ u n i f o r m _ l o c a t i o n ( " t r a n s f e r T e x " ) ; 
03414  
03415  
03416  
03417          s l i c e s L o c   =   s h a d e r - > g e t _ u n i f o r m _ l o c a t i o n ( " s l i c e s " ) ; 
03418  
03419          c o m b T y p e L o c   =   s h a d e r - > g e t _ u n i f o r m _ l o c a t i o n ( " c o m b T y p e " ) ; 
03420  
03421          s a m p l e R a t e L o c   =   s h a d e r - > g e t _ u n i f o r m _ l o c a t i o n ( " s a m p l e R a t e " ) ; 
03422  
03423          s l i c e D e p t h L o c   =   s h a d e r - > g e t _ u n i f o r m _ l o c a t i o n ( " s l i c e D e p t h " ) ; 
03424  
03425  } 
03426  
03427  
03428  
03429  v o i d   i n i t F B O s ( ) 
03430  
03431  { 
03432  
03433          g l u t S e t W i n d o w ( g _ r e n d e r W i n d o w I D ) ; 
03434  
03435  
03436  
03437          / / C r e a t e   b a c k   s i d e   v i e w   F B O   a n d   t e x t u r e 
03438  
03439          g l G e n F r a m e b u f f e r s E X T ( 1 ,   & g _ u B a c k B u f f e r F B O ) ; 
03440  
03441          g l G e n T e x t u r e s ( 1 ,   & g _ u B a c k B u f f e r T e x t u r e ) ; 
03442  
03443          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   g _ u B a c k B u f f e r T e x t u r e ) ; 
03444  
03445          g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ M I N _ F I L T E R ,   G L _ L I N E A R ) ; 
03446  
03447          g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ M A G _ F I L T E R ,   G L _ L I N E A R ) ; 
03448  
03449  
03450  
03451          / / C r e a t e   f r o n t   s i d e   v i e w   F B O   a n d   t e x t u r e 
03452  
03453          g l G e n F r a m e b u f f e r s E X T ( 1 ,   & g _ u F r o n t B u f f e r F B O ) ; 
03454  
03455          g l G e n T e x t u r e s ( 1 ,   & g _ u F r o n t B u f f e r T e x t u r e ) ; 
03456  
03457          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   g _ u F r o n t B u f f e r T e x t u r e ) ; 
03458  
03459          g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ M I N _ F I L T E R ,   G L _ L I N E A R ) ; 
03460  
03461          g l T e x P a r a m e t e r i ( G L _ T E X T U R E _ 2 D ,   G L _ T E X T U R E _ M A G _ F I L T E R ,   G L _ L I N E A R ) ; 
03462  
03463  
03464  
03465  
03466  
03467  
03468  
03469          / / C h e c k   F B O   s t a t u s 
03470  
03471          G L e n u m   s t a t u s   =   g l C h e c k F r a m e b u f f e r S t a t u s E X T ( G L _ F R A M E B U F F E R _ E X T ) ; 
03472  
03473          i f ( s t a t u s   = =   G L _ F R A M E B U F F E R _ C O M P L E T E _ E X T ) 
03474  
03475                  s t d : : c o u t   < <   " F B O   s t a t u s   O K \ n "   < <   s t d : : e n d l ; 
03476  
03477          e l s e 
03478  
03479                  s t d : : c o u t   < <   " F B O   s t a t u s   F A I L E D ! ! ! 1 1 \ n "   < <   s t d : : e n d l ; 
03480  
03481  
03482  
03483          g l B i n d F r a m e b u f f e r E X T ( G L _ F R A M E B U F F E R _ E X T ,   0 ) ; 
03484  
03485          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
03486  
03487  
03488  
03489  
03490  
03491          / / S e t   u p   b o t h   F B O s 
03492  
03493          g l E n a b l e ( G L _ T E X T U R E _ 2 D ) ; 
03494  
03495          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   g _ u B a c k B u f f e r T e x t u r e ) ; 
03496  
03497          g l T e x I m a g e 2 D ( G L _ T E X T U R E _ 2 D ,   0 ,   G L _ R G B A 8 ,   g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ,   0 ,   G L _ R G B A ,   G L _ U N S I G N E D _ B Y T E ,   0 ) ; 
03498  
03499          g l B i n d F r a m e b u f f e r E X T ( G L _ F R A M E B U F F E R _ E X T ,   g _ u B a c k B u f f e r F B O ) ; 
03500  
03501          g l F r a m e b u f f e r T e x t u r e 2 D E X T ( G L _ F R A M E B U F F E R _ E X T ,   G L _ C O L O R _ A T T A C H M E N T 0 _ E X T ,   G L _ T E X T U R E _ 2 D ,   g _ u B a c k B u f f e r T e x t u r e ,   0 ) ; 
03502  
03503  
03504  
03505          g l B i n d F r a m e b u f f e r E X T ( G L _ F R A M E B U F F E R _ E X T ,   0 ) ; 
03506  
03507          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
03508  
03509  
03510  
03511  
03512  
03513          g l E n a b l e ( G L _ T E X T U R E _ 2 D ) ; 
03514  
03515          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   g _ u F r o n t B u f f e r T e x t u r e ) ; 
03516  
03517          g l T e x I m a g e 2 D ( G L _ T E X T U R E _ 2 D ,   0 ,   G L _ R G B A 8 ,   g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ,   0 ,   G L _ R G B A ,   G L _ U N S I G N E D _ B Y T E ,   0 ) ; 
03518  
03519          g l B i n d F r a m e b u f f e r E X T ( G L _ F R A M E B U F F E R _ E X T ,   g _ u F r o n t B u f f e r F B O ) ; 
03520  
03521          g l F r a m e b u f f e r T e x t u r e 2 D E X T ( G L _ F R A M E B U F F E R _ E X T ,   G L _ C O L O R _ A T T A C H M E N T 0 _ E X T ,   G L _ T E X T U R E _ 2 D ,   g _ u F r o n t B u f f e r T e x t u r e ,   0 ) ; 
03522  
03523  
03524  
03525          g l B i n d F r a m e b u f f e r E X T ( G L _ F R A M E B U F F E R _ E X T ,   0 ) ; 
03526  
03527          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
03528  
03529  
03530  
03531  
03532  
03533          g e t _ e r r o r s ( ) ; 
03534  
03535  } 
03536  
03537  v o i d   r e f r e s h F B O s ( ) 
03538  
03539  { 
03540  
03541          r e f r e s h F B O T e x t u r e S i z e s ( ) ; 
03542  
03543  
03544  
03545          g l P u s h M a t r i x ( ) ; 
03546  
03547  
03548  
03549          / / C o m p u t e   c u b e S i z e D i m e n s i o n s 
03550  
03551          f l o a t   x R e l   =   1 . f ; 
03552  
03553          f l o a t   y R e l   =   1 . f ; 
03554  
03555  
03556  
03557          / / F i x   R a t i o 
03558  
03559          i f ( g _ i S l i c e D i r   = =   3 ) 
03560  
03561          { 
03562  
03563                  i n t   m a x W i n d o w D i m e n s i o n   =   m a x ( g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ) ; 
03564  
03565  
03566  
03567                  x R e l   =   g _ i R e n d e r W i n d o w H e i g h t   /   ( f l o a t ) m a x W i n d o w D i m e n s i o n ; 
03568  
03569                  y R e l   =   g _ i R e n d e r W i n d o w W i d t h   /   ( f l o a t ) m a x W i n d o w D i m e n s i o n ; 
03570  
03571          } 
03572  
03573  
03574  
03575          g l S c a l e f ( x R e l ,   y R e l ,   1 . 0 ) ; 
03576  
03577  
03578  
03579  
03580  
03581  
03582  
03583          / / R e a l   s i z e   =   c u b e . . . .   *   2   ( d r a w n   f r o m   - w i d t h   t o   + w i d t h ) 
03584  
03585          f l o a t   c u b e W i d t h   =   g _ f C u b e D i m e n s i o n N o r m e d X ; 
03586  
03587          f l o a t   c u b e H e i g h t   =   g _ f C u b e D i m e n s i o n N o r m e d Y ; 
03588  
03589          f l o a t   c u b e D e p t h   =   g _ f C u b e D i m e n s i o n N o r m e d Z ; 
03590  
03591  
03592  
03593  
03594  
03595  
03596  
03597  
03598  
03599          g l E n a b l e ( G L _ C U L L _ F A C E ) ; 
03600  
03601  
03602  
03603          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
03604  
03605          g l B i n d F r a m e b u f f e r E X T ( G L _ F R A M E B U F F E R _ E X T ,   g _ u B a c k B u f f e r F B O ) ; 
03606  
03607  
03608  
03609          / / D r a w   f u n - c u b e 
03610  
03611          g l C l e a r C o l o r   ( 0 . 0 f ,   0 . 0 f ,   0 . 0 f ,   1 . 0 f ) ; 
03612  
03613          g l C l e a r   ( G L _ C O L O R _ B U F F E R _ B I T   |   G L _ D E P T H _ B U F F E R _ B I T ) ; 
03614  
03615  
03616  
03617          g l C u l l F a c e ( G L _ F R O N T ) ; 
03618  
03619          d r a w V o l u m e ( c u b e W i d t h ,   c u b e H e i g h t ,   c u b e D e p t h ) ; 
03620  
03621  
03622  
03623  
03624  
03625          / / F i n i s h i n g   m o v e 
03626  
03627          g l B i n d F r a m e b u f f e r E X T ( G L _ F R A M E B U F F E R _ E X T ,   0 ) ; 
03628  
03629          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
03630  
03631          g l D i s a b l e ( G L _ T E X T U R E _ 2 D ) ; 
03632  
03633  
03634  
03635  
03636  
03637          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
03638  
03639          g l B i n d F r a m e b u f f e r E X T ( G L _ F R A M E B U F F E R _ E X T ,   g _ u F r o n t B u f f e r F B O ) ; 
03640  
03641  
03642  
03643  
03644  
03645          / / D r a w   f u n - c u b e   a g a i n   b e c a u s e   i t   w a s   s o   m u c h   f u n 
03646  
03647          g l C l e a r C o l o r   ( 0 . 0 f ,   0 . 0 f ,   0 . 0 f ,   1 . 0 f ) ; 
03648  
03649          g l C l e a r   ( G L _ C O L O R _ B U F F E R _ B I T   |   G L _ D E P T H _ B U F F E R _ B I T ) ; 
03650  
03651  
03652  
03653          g l C u l l F a c e ( G L _ B A C K ) ; 
03654  
03655          d r a w V o l u m e ( c u b e W i d t h ,   c u b e H e i g h t ,   c u b e D e p t h ) ; 
03656  
03657  
03658  
03659  
03660  
03661          / / F i n i s h i n g   m o v e 
03662  
03663          g l B i n d F r a m e b u f f e r E X T ( G L _ F R A M E B U F F E R _ E X T ,   0 ) ; 
03664  
03665          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
03666  
03667          g l D i s a b l e ( G L _ T E X T U R E _ 2 D ) ; 
03668  
03669          g l D i s a b l e ( G L _ C U L L _ F A C E ) ; 
03670  
03671  
03672  
03673  
03674  
03675          g l P o p M a t r i x ( ) ; 
03676  
03677  } 
03678  
03679  
03680  
03681  v o i d   p r e p a r e R e n d e r W i n d o w R e n d e r i n g ( ) 
03682  
03683  { 
03684  
03685          g l u t S e t W i n d o w ( g _ r e n d e r W i n d o w I D ) ; 
03686  
03687          g l E n a b l e   ( G L _ D E P T H _ T E S T ) ; 
03688  
03689  
03690  
03691          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 1 D ,   0 ) ; 
03692  
03693          g l D i s a b l e ( G L _ T E X T U R E _ 1 D ) ; 
03694  
03695          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
03696  
03697          g l D i s a b l e ( G L _ T E X T U R E _ 2 D ) ; 
03698  
03699          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 3 D ,   0 ) ; 
03700  
03701          g l D i s a b l e ( G L _ T E X T U R E _ 3 D ) ; 
03702  
03703  
03704  
03705  
03706  
03707          g l C l e a r C o l o r ( 0 . 5 0 f ,   0 . 5 7 f ,   0 . 5 4 f ,   0 . f ) ; 
03708  
03709          g l C l e a r ( G L _ C O L O R _ B U F F E R _ B I T   |   G L _ D E P T H _ B U F F E R _ B I T   |   G L _ S T E N C I L _ B U F F E R _ B I T ) ; 
03710  
03711  } 
03712  
03713  
03714  
03715  v o i d   r e f r e s h S h a d e r D a t a ( ) 
03716  
03717  { 
03718  
03719          g e t _ e r r o r s ( ) ; 
03720  
03721          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 1 D ,   0 ) ; 
03722  
03723          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
03724  
03725          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 3 D ,   0 ) ; 
03726  
03727  
03728  
03729          g l A c t i v e T e x t u r e ( G L _ T E X T U R E 0 ) ; 
03730  
03731          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 1 D ,   T r a n s f e r F u n c t i o n T e x t u r e : : r e n d e r W i n d o w T r a n s f e r F u n c t i o n T e x t u r e I D ) ; 
03732  
03733          g l U n i f o r m 1 i ( t r a n s f e r T e x L o c ,   0 ) ; 
03734  
03735  
03736  
03737          g l A c t i v e T e x t u r e ( G L _ T E X T U R E 1 ) ; 
03738  
03739          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   g _ u F r o n t B u f f e r T e x t u r e ) ; 
03740  
03741          g l U n i f o r m 1 i ( f r o n t 2 D T e x L o c ,   1 ) ; 
03742  
03743  
03744  
03745          g l A c t i v e T e x t u r e ( G L _ T E X T U R E 2 ) ; 
03746  
03747          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   g _ u B a c k B u f f e r T e x t u r e ) ; 
03748  
03749          g l U n i f o r m 1 i ( b a c k 2 D T e x L o c ,   2 ) ; 
03750  
03751  
03752  
03753          g l A c t i v e T e x t u r e ( G L _ T E X T U R E 3 ) ; 
03754  
03755          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 3 D ,   g _ u E x a m p l e T e x t u r e ) ; 
03756  
03757          g l U n i f o r m 1 i ( d a t a 3 D T e x L o c ,   3 ) ; 
03758  
03759  
03760  
03761          g l U n i f o r m 1 f ( s a m p l e R a t e L o c ,   1 . 0 f / ( f l o a t ) g _ i S a m p l e R a t e ) ; 
03762  
03763  
03764  
03765          g l U n i f o r m 1 i ( s l i c e s L o c ,   g _ i S l i c e D i r ) ; 
03766  
03767  
03768  
03769          g l U n i f o r m 1 f ( s l i c e D e p t h L o c ,   g _ f C o o r d X Y Z ) ; 
03770  
03771  
03772  
03773          g l U n i f o r m 1 i ( c o m b T y p e L o c ,   g _ i C o m b i n a t i o n T y p e ) ; 
03774  
03775  
03776  
03777          g e t _ e r r o r s ( ) ; 
03778  
03779  } 
03780  
03781  
03782  
03783  
03784  
03785  v o i d   d r a w C e n t e r C r o s s ( ) 
03786  
03787  { 
03788  
03789          g l B e g i n ( G L _ L I N E S ) ; 
03790  
03791          g l C o l o r 3 f ( . 4 5 f ,   . 9 f ,   0 . 4 5 f ) ; 
03792  
03793          g l V e r t e x 2 f ( - 1 . f ,   0 . f ) ; 
03794  
03795          g l V e r t e x 2 f ( 1 . f ,   0 . f ) ; 
03796  
03797          g l C o l o r 3 f ( . 9 f ,   0 . 4 5 f   , 0 . 4 5 f ) ; 
03798  
03799          g l V e r t e x 2 f ( 0 . f ,   - 1 . f ) ; 
03800  
03801          g l V e r t e x 2 f ( 0 . f ,   1 . f ) ; 
03802  
03803          g l E n d ( ) ; 
03804  
03805  } 
03806  
03807  
03808  
03809  v o i d   d r a w V o l u m e ( f l o a t   c u b e W i d t h ,   f l o a t   c u b e H e i g h t ,   f l o a t   c u b e D e p t h ) 
03810  
03811  { 
03812  
03813          g l P u s h M a t r i x ( ) ; 
03814  
03815  
03816  
03817          g l T r a n s l a t e f ( 0 . 0 f ,   0 . 0 f ,   - 1 . f ) ; 
03818  
03819          g l M u l t M a t r i x f ( g _ p R o t a t e ) ; 
03820  
03821  
03822  
03823          d r a w B o x ( c u b e W i d t h ,   c u b e H e i g h t ,   c u b e D e p t h ) ; 
03824  
03825  
03826  
03827          g l P o p M a t r i x ( ) ; 
03828  
03829  } 
03830  
03831  
03832  
03833  v o i d   r e n d e r T o F u l l s c r e e n Q u a d ( ) 
03834  
03835  { 
03836  
03837          s t a r t R a t i o F i x S c a l e ( ) ; 
03838  
03839  
03840  
03841          g l D i s a b l e ( G L _ C U L L _ F A C E ) ; 
03842  
03843  
03844  
03845          g l E n a b l e ( G L _ B L E N D ) ; 
03846  
03847          g l B l e n d F u n c ( G L _ S R C _ A L P H A ,   G L _ O N E _ M I N U S _ S R C _ A L P H A ) ; 
03848  
03849  
03850  
03851          g l B e g i n ( G L _ Q U A D S ) ; 
03852  
03853  
03854  
03855          g l C o l o r 4 f ( 1 . f ,   1 . f ,   1 . f ,   0 . f ) ; 
03856  
03857  
03858  
03859          g l M u l t i T e x C o o r d 2 i A R B ( G L _ T E X T U R E 0 _ A R B ,   0 ,   0 ) ;     g l V e r t e x 2 f ( - 1 . f ,   - 1 . f ) ; 
03860  
03861          g l M u l t i T e x C o o r d 2 i A R B ( G L _ T E X T U R E 0 _ A R B ,   1 ,   0 ) ;     g l V e r t e x 2 f (   1 . f ,   - 1 . f ) ; 
03862  
03863          g l M u l t i T e x C o o r d 2 i A R B ( G L _ T E X T U R E 0 _ A R B ,   1 ,   1 ) ;     g l V e r t e x 2 f (   1 . f ,     1 . f ) ; 
03864  
03865          g l M u l t i T e x C o o r d 2 i A R B ( G L _ T E X T U R E 0 _ A R B ,   0 ,   1 ) ;     g l V e r t e x 2 f ( - 1 . f ,     1 . f ) ; 
03866  
03867  
03868  
03869          g l E n d ( ) ; 
03870  
03871  
03872  
03873          g l D i s a b l e ( G L _ B L E N D ) ; 
03874  
03875  
03876  
03877          e n d R a t i o F i x S c a l e ( ) ; 
03878  
03879  } 
03880  
03881  
03882  
03883  v o i d   s t o p S h a d i n g ( ) 
03884  
03885  { 
03886  
03887          s h a d e r - > u n b i n d ( ) ; 
03888  
03889  } 
03890  
03891  
03892  
03893  v o i d   p o s t R e d i s p l a y B o t t o m W i n d o w ( ) 
03894  
03895  { 
03896  
03897          i n t   c u r W i n d o w   =   g l u t G e t W i n d o w ( ) ; 
03898  
03899          g l u t S e t W i n d o w ( g _ b o t t o m W i n d o w I D ) ; 
03900  
03901          g l u t P o s t R e d i s p l a y ( ) ; 
03902  
03903          g l u t S e t W i n d o w ( c u r W i n d o w ) ; 
03904  
03905  } 
03906  
03907  
03908  
03909  v o i d   r e f r e s h B o t t o m W i n d o w D a t a ( ) 
03910  
03911  { 
03912  
03913          / / R e f r e s h   c a l l s 
03914  
03915          T r a n s f e r F u n c t i o n G U I : : s o r t C o n t r o l P o i n t s ( ) ; 
03916  
03917          T r a n s f e r F u n c t i o n G U I : : r e f r e s h T r a n s f e r F u n c P i c k e r ( ) ; 
03918  
03919          T r a n s f e r F u n c t i o n T e x t u r e : : r e f r e s h T r a n s f e r F u n c t i o n T e x t u r e D a t a ( ) ; 
03920  
03921          T r a n s f e r F u n c t i o n T e x t u r e : : c o p y D a t a T o T r a n s f e r F u n c t i o n T e x t u r e ( g _ b o t t o m W i n d o w I D ,   W I N D O W _ B O T T O M ) ; 
03922  
03923          T r a n s f e r F u n c t i o n T e x t u r e : : c o p y D a t a T o T r a n s f e r F u n c t i o n T e x t u r e ( g _ r e n d e r W i n d o w I D ,   W I N D O W _ R E N D E R I N G ) ; 
03924  
03925          r e f r e s h C o l o u r M a p C o r n e r P o s i t i o n s ( ) ; 
03926  
03927  } 
03928  
03929  
03930  
03931  v o i d   i n i t I n t e r f a c e B o t t o m V a l u e s ( ) 
03932  
03933  { 
03934  
03935          h a n d l e C o l o u r P i c k e r S l i d e r C h a n g e ( 0 ) ; 
03936  
03937          h a n d l e C o l o u r P i c k e r S l i d e r M o d e C h a n g e ( 0 ) ; 
03938  
03939          u p d a t e C o l o u r P i c k e r C u r s o r P o s B a s e d O n S e l e c t e d C o l o u r ( ) ; 
03940  
03941  
03942  
03943          g _ C o l o r P i c k e r C u r s o r X P o s   =   C o l o u r P i c k e r : : c o l o u r P i c k e r W i d t h   *   0 . 5 f ; 
03944  
03945          g _ C o l o r P i c k e r C u r s o r Y P o s   =   C o l o u r P i c k e r : : c o l o u r P i c k e r H e i g h t   *   0 . 5 f ; 
03946  
03947          u p d a t e G U I C o l o u r W i t h C o l o u r P i c k e r V a l u e ( ) ; 
03948  
03949  } 
03950  
03951  
03952  
03953  v o i d   s t a r t R a t i o F i x S c a l e ( ) 
03954  
03955  { 
03956  
03957          g l P u s h M a t r i x ( ) ; 
03958  
03959  
03960  
03961          f l o a t   x R e l D i m e n s i o n   =   1 . f ; 
03962  
03963          f l o a t   y R e l D i m e n s i o n   =   1 . f ; 
03964  
03965  
03966  
03967  
03968  
03969          i f ( g _ i S l i c e D i r   ! =   3 ) 
03970  
03971          { 
03972  
03973                  x R e l D i m e n s i o n   =   ( f l o a t ) g _ i R e n d e r W i n d o w W i d t h ; 
03974  
03975                  y R e l D i m e n s i o n   =   ( f l o a t ) g _ i R e n d e r W i n d o w H e i g h t ; 
03976  
03977  
03978  
03979                  s w i t c h ( g _ i S l i c e D i r ) 
03980  
03981                  { 
03982  
03983                  c a s e   0 : 
03984  
03985                          / / X Y 
03986  
03987                          x R e l D i m e n s i o n   / =   g _ f C u b e D i m e n s i o n N o r m e d X ; 
03988  
03989                          y R e l D i m e n s i o n   / =   g _ f C u b e D i m e n s i o n N o r m e d Y ; 
03990  
03991                          b r e a k ; 
03992  
03993                  c a s e   1 : 
03994  
03995                          / / Y Z 
03996  
03997                          x R e l D i m e n s i o n   / =   g _ f C u b e D i m e n s i o n N o r m e d Y ; 
03998  
03999                          y R e l D i m e n s i o n   / =   g _ f C u b e D i m e n s i o n N o r m e d Z ; 
04000  
04001                          b r e a k ; 
04002  
04003                  c a s e   2 : 
04004  
04005                          / / Z X 
04006  
04007                          x R e l D i m e n s i o n   / =   g _ f C u b e D i m e n s i o n N o r m e d Z ; 
04008  
04009                          y R e l D i m e n s i o n   / =   g _ f C u b e D i m e n s i o n N o r m e d X ; 
04010  
04011                          b r e a k ; 
04012  
04013                  } 
04014  
04015  
04016  
04017                  i f ( g _ i S l i c e D i r   <   3 ) 
04018  
04019                  { 
04020  
04021                          i f ( x R e l D i m e n s i o n   >   y R e l D i m e n s i o n ) 
04022  
04023                          { 
04024  
04025                                  x R e l D i m e n s i o n   =   1 . f   /   ( x R e l D i m e n s i o n   /   g _ i R e n d e r W i n d o w W i d t h ) ; 
04026  
04027                                  y R e l D i m e n s i o n   =   1 . f   /   ( y R e l D i m e n s i o n   /   g _ i R e n d e r W i n d o w W i d t h ) ; 
04028  
04029                          } 
04030  
04031                          e l s e 
04032  
04033                          { 
04034  
04035                                  x R e l D i m e n s i o n   =   1 . f   /   ( x R e l D i m e n s i o n   /   g _ i R e n d e r W i n d o w H e i g h t ) ; 
04036  
04037                                  y R e l D i m e n s i o n   =   1 . f   /   ( y R e l D i m e n s i o n   /   g _ i R e n d e r W i n d o w H e i g h t ) ; 
04038  
04039                          } 
04040  
04041  
04042  
04043                          f l o a t   m a x D i m   =   m a x ( x R e l D i m e n s i o n ,   y R e l D i m e n s i o n ) ; 
04044  
04045  
04046  
04047                          x R e l D i m e n s i o n   / =   m a x D i m ; 
04048  
04049                          y R e l D i m e n s i o n   / =   m a x D i m ; 
04050  
04051                  } 
04052  
04053  
04054  
04055                  g l S c a l e f ( x R e l D i m e n s i o n ,   y R e l D i m e n s i o n ,   1 . f ) ; 
04056  
04057  
04058  
04059          } 
04060  
04061  } 
04062  
04063  
04064  
04065  v o i d   e n d R a t i o F i x S c a l e ( ) 
04066  
04067  { 
04068  
04069          g l P o p M a t r i x ( ) ; 
04070  
04071  } 
04072  
04073  
04074  
04075  v o i d   r e f r e s h F B O T e x t u r e S i z e s ( ) 
04076  
04077  { 
04078  
04079          g l E n a b l e ( G L _ T E X T U R E _ 2 D ) ; 
04080  
04081  
04082  
04083          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   g _ u B a c k B u f f e r T e x t u r e ) ; 
04084  
04085          g l T e x I m a g e 2 D ( G L _ T E X T U R E _ 2 D ,   0 ,   G L _ R G B A 8 ,   g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ,   0 ,   G L _ R G B A ,   G L _ U N S I G N E D _ B Y T E ,   0 ) ; 
04086  
04087  
04088  
04089  
04090  
04091          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   g _ u F r o n t B u f f e r T e x t u r e ) ; 
04092  
04093          g l T e x I m a g e 2 D ( G L _ T E X T U R E _ 2 D ,   0 ,   G L _ R G B A 8 ,   g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ,   0 ,   G L _ R G B A ,   G L _ U N S I G N E D _ B Y T E ,   0 ) ; 
04094  
04095  
04096  
04097          g l B i n d T e x t u r e ( G L _ T E X T U R E _ 2 D ,   0 ) ; 
04098  
04099  } 
04100  
04101  
04102  
04103  v o i d   s t a r t R e n d e r V i e w P e r s p e c t i v e ( ) 
04104  
04105  { 
04106  
04107          g l V i e w p o r t ( 0 ,   0 ,   g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ) ; 
04108  
04109  
04110  
04111          g l M a t r i x M o d e ( G L _ P R O J E C T I O N ) ; 
04112  
04113          g l L o a d I d e n t i t y ( ) ; 
04114  
04115  
04116  
04117  
04118  
04119          i f ( g _ i S l i c e D i r   = =   3 ) 
04120  
04121                  g l O r t h o ( - 1 . - z o o m ,   1 . + z o o m ,   - 1 . - z o o m ,   1 . + z o o m ,   - 2 0 . ,   2 0 . ) ; 
04122  
04123          e l s e 
04124  
04125                  g l O r t h o ( - 1 . ,   1 . ,   - 1 . ,   1 . ,   - 2 0 . ,   2 0 . ) ; 
04126  
04127  
04128  
04129  
04130  
04131          g l M a t r i x M o d e ( G L _ M O D E L V I E W ) ; 
04132  
04133          g l L o a d I d e n t i t y ( ) ; 
04134  
04135  } 
04136  
04137  
04138  
04139  
04140  
04141  
04142  
04143  v o i d   s t a r t F B O P e r s p e c t i v e ( ) 
04144  
04145  { 
04146  
04147          g l V i e w p o r t ( 0 ,   0 ,   g _ i R e n d e r W i n d o w W i d t h ,   g _ i R e n d e r W i n d o w H e i g h t ) ; 
04148  
04149  
04150  
04151          g l M a t r i x M o d e ( G L _ P R O J E C T I O N ) ; 
04152  
04153          g l L o a d I d e n t i t y ( ) ; 
04154  
04155  
04156  
04157  
04158  
04159          i f ( g _ i P e r s p e c t i v e T y p e   = =   0 ) 
04160  
04161                  g l O r t h o ( - 1 . ,   1 . ,   - 1 . ,   1 . ,   - 2 0 . ,   2 0 . ) ; 
04162  
04163          e l s e 
04164  
04165          { 
04166  
04167                  i f ( g _ i S l i c e D i r   = =   3 ) 
04168  
04169                  { 
04170  
04171                          g l u P e r s p e c t i v e ( 1 0 0 . 0 ,   1 . 0 ,   0 . 1 ,   4 . 1 1 ) ; 
04172  
04173  
04174  
04175                          g l T r a n s l a t e f ( 0 . f ,   0 . f ,   - 1 . 1 1 f ) ; 
04176  
04177                  } 
04178  
04179                  e l s e 
04180  
04181                          g l F r u s t u m ( - 1 . ,   1 . ,   - 1 . ,   1 . ,   1 . 1 ,   4 . 1 1 ) ; 
04182  
04183          } 
04184  
04185  
04186  
04187          g l M a t r i x M o d e ( G L _ M O D E L V I E W ) ; 
04188  
04189          g l L o a d I d e n t i t y ( ) ; 
04190  
04191  } 
04192  
04193  
04194  
04195  v o i d   u p d a t e V i e w R o t a t i o n W i t h D r a g P o s i t i o n ( i n t   x ,   i n t   y ) 
04196  
04197  { 
04198  
04199          i f ( x   >   0   & &   y     >   0   & &   x   < =   g _ i M a i n W i n d o w W i d t h   & &   y   < =   g _ i M a i n W i n d o w H e i g h t ) 
04200  
04201          { 
04202  
04203                  i n t   r o t a t i o n D r a g g i n g X   =   v i e w R o t a t i o n D r a g S t a r t X   -   x ; 
04204  
04205                  i n t   r o t a t i o n D r a g g i n g Y   =   v i e w R o t a t i o n D r a g S t a r t Y   -   y ; 
04206  
04207  
04208  
04209                  M a t r i x   r o t a t i o n M a t r i x ; 
04210  
04211                  r o t a t i o n M a t r i x . S e t ( g _ v i e w R o t a t i o n G L U I - > f l o a t _ a r r a y _ v a l ) ; 
04212  
04213  
04214  
04215                  Q u a t e r n i o n   r o t a t i o n Q u a t e r n i o n   =   r o t a t i o n M a t r i x . G e t R o t a t i o n ( ) ; 
04216  
04217  
04218  
04219                  Q u a t e r n i o n   q 1 ( - r o t a t i o n D r a g g i n g X   /   2 0 0 . f ,   V e c t o r ( 0 . f ,   1 . f ,   0 . f ) ) ; 
04220  
04221                  Q u a t e r n i o n   q 2 ( - r o t a t i o n D r a g g i n g Y   /   2 0 0 . f ,   V e c t o r ( 1 . f   , 0 . f ,   0 . f ) ) ; 
04222  
04223  
04224  
04225                  r o t a t i o n Q u a t e r n i o n   =   ( q 1   *   q 2 )   *   r o t a t i o n Q u a t e r n i o n ; 
04226  
04227                  r o t a t i o n M a t r i x . c l e a r M a t r i x ( ) ; 
04228  
04229                  r o t a t i o n M a t r i x . r o t a t e ( r o t a t i o n Q u a t e r n i o n ) ; 
04230  
04231  
04232  
04233                  f l o a t   m a t r i x [ 1 6 ] ; 
04234  
04235                  r o t a t i o n M a t r i x . C o p y T o A r r a y ( m a t r i x ) ; 
04236  
04237                  g _ v i e w R o t a t i o n G L U I - > s e t _ f l o a t _ a r r a y _ v a l ( m a t r i x ) ; 
04238  
04239  
04240  
04241                  g _ v i e w R o t a t i o n G L U I - > r e d r a w ( ) ; 
04242  
04243  
04244  
04245                  v i e w R o t a t i o n D r a g S t a r t X   =   x ; 
04246  
04247                  v i e w R o t a t i o n D r a g S t a r t Y   =   y ; 
04248  
04249          } 
04250  
04251  } 

Generated on Tue Dec 14 2010 03:52:55 for VolVis by  doxygen 1.7.2