CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/TypeFunc.h
浏览该文件的文档。
00001 # i f n d e f   H G L _ T Y P E _ F U N C _ I N C L U D E 
00002  
00003  # d e f i n e   H G L _ T Y P E _ F U N C _ I N C L U D E 
00004  
00005  
00006  
00007  # i n c l u d e < h g l / p l a t f o r m / P l a t f o r m . h > 
00008  
00009  n a m e s p a c e   h g l 
00010  
00011  { 
00012  
00013      # d e f i n e   H G L _ C O N V E R _ T O _ M E M _ A L I G N ( x )         ( ( ( ( x ) + H G L _ M E M _ A L I G N - 1 ) / H G L _ M E M _ A L I G N ) * H G L _ M E M _ A L I G N )                   / / QX[[Plbc[
00014  
00015  
00016  
00017      # i f n d e f   N U L L 
00018  
00019      # d e f i n e   N U L L   0 
00020  
00021      # e n d i f / / 
00022  
00023  
00024  
00025      c o n s t   c h a r   H e x C h a r [ 2 ] [ 1 6 ] = {   { ' 0 ' , ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' , ' 6 ' , ' 7 ' , ' 8 ' , ' 9 ' , ' A ' , ' B ' , ' C ' , ' D ' , ' E ' , ' F ' } , 
00026  
00027                                  { ' 0 ' , ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' , ' 6 ' , ' 7 ' , ' 8 ' , ' 9 ' , ' a ' , ' b ' , ' c ' , ' d ' , ' e ' , ' f ' } } ; 
00028  
00029  
00030  
00031      # d e f i n e   H G L _ E                 2 . 7 1 8 2 8 1 8 2 8 4 5 9 0 4 5 2 3 5 3 6 
00032  
00033      # d e f i n e   H G L _ L O G 2 E         1 . 4 4 2 6 9 5 0 4 0 8 8 8 9 6 3 4 0 7 3 6 
00034  
00035      # d e f i n e   H G L _ L O G 1 0 E       0 . 4 3 4 2 9 4 4 8 1 9 0 3 2 5 1 8 2 7 6 5 1 
00036  
00037      # d e f i n e   H G L _ L N 2             0 . 6 9 3 1 4 7 1 8 0 5 5 9 9 4 5 3 0 9 4 1 7 
00038  
00039      # d e f i n e   H G L _ L N 1 0           2 . 3 0 2 5 8 5 0 9 2 9 9 4 0 4 5 6 8 4 0 2 
00040  
00041      # d e f i n e   H G L _ P I               3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 
00042  
00043      # d e f i n e   H G L _ P I _ 2           1 . 5 7 0 7 9 6 3 2 6 7 9 4 8 9 6 6 1 9 2 3 
00044  
00045      # d e f i n e   H G L _ P I _ 4           0 . 7 8 5 3 9 8 1 6 3 3 9 7 4 4 8 3 0 9 6 1 6 
00046  
00047      # d e f i n e   H G L _ 1 _ P I           0 . 3 1 8 3 0 9 8 8 6 1 8 3 7 9 0 6 7 1 5 3 8 
00048  
00049      # d e f i n e   H G L _ 2 _ P I           0 . 6 3 6 6 1 9 7 7 2 3 6 7 5 8 1 3 4 3 0 7 6 
00050  
00051      # d e f i n e   H G L _ 2 _ S Q R T P I   1 . 1 2 8 3 7 9 1 6 7 0 9 5 5 1 2 5 7 3 9 0 
00052  
00053      # d e f i n e   H G L _ S Q R T 2         1 . 4 1 4 2 1 3 5 6 2 3 7 3 0 9 5 0 4 8 8 0 
00054  
00055      # d e f i n e   H G L _ S Q R T 1 _ 2     0 . 7 0 7 1 0 6 7 8 1 1 8 6 5 4 7 5 2 4 4 0 1 
00056  
00057  
00058  
00059      i n l i n e   i n t   p o w e r _ t o _ 2 ( i n t   v a l u e ) 
00060  
00061      { 
00062  
00063          i n t   r e s u l t = 1 ; 
00064  
00065  
00066  
00067          w h i l e ( r e s u l t < v a l u e ) 
00068  
00069              r e s u l t < < = 1 ; 
00070  
00071  
00072  
00073          r e t u r n ( r e s u l t ) ; 
00074  
00075      } 
00076  
00077  
00078  
00079      t e m p l a t e < t y p e n a m e   T >   v o i d   h g l _ s w a p ( T   & x , T   & y ) 
00080  
00081      { 
00082  
00083          x ^ = y ; 
00084  
00085          y = x ^ y ; 
00086  
00087          x ^ = y ; 
00088  
00089      } 
00090  
00091  
00092  
00093      t e m p l a t e < t y p e n a m e   T >   T   h g l _ a b s ( c o n s t   T   & v ) { r e t u r n   ( v > = 0 ? v : - v ) ; } 
00094  
00095  
00096  
00097      t e m p l a t e < t y p e n a m e   T >   T   h g l _ m i n ( c o n s t   T   & a , c o n s t   T   & b ) { r e t u r n   ( a > b ? b : a ) ; } 
00098  
00099      t e m p l a t e < t y p e n a m e   T >   T   h g l _ m a x ( c o n s t   T   & a , c o n s t   T   & b ) { r e t u r n   ( a > b ? a : b ) ; } 
00100  
00101  
00102  
00103      t e m p l a t e < t y p e n a m e   T >   T   h g l _ m i n ( c o n s t   T   * d a t a , i n t   c o u n t , T   m i n _ v a l u e ) 
00104  
00105      { 
00106  
00107          T   v a l u e = m i n _ v a l u e ; 
00108  
00109  
00110  
00111          f o r ( i n t   i = 0 ; i < c o u n t ; i + + ) 
00112  
00113          { 
00114  
00115              i f ( * d a t a < v a l u e ) 
00116  
00117                  v a l u e = * d a t a ; 
00118  
00119  
00120  
00121              d a t a + + ; 
00122  
00123          } 
00124  
00125  
00126  
00127          r e t u r n ( v a l u e ) ; 
00128  
00129      } 
00130  
00131  
00132  
00133      t e m p l a t e < t y p e n a m e   T >   T   h g l _ m a x ( c o n s t   T   * d a t a , i n t   c o u n t , T   m a x _ v a l u e ) 
00134  
00135      { 
00136  
00137          T   v a l u e = m a x _ v a l u e ; 
00138  
00139  
00140  
00141          f o r ( i n t   i = 0 ; i < c o u n t ; i + + ) 
00142  
00143          { 
00144  
00145              i f ( * d a t a > v a l u e ) 
00146  
00147                  v a l u e = * d a t a ; 
00148  
00149  
00150  
00151              d a t a + + ; 
00152  
00153          } 
00154  
00155  
00156  
00157          r e t u r n ( v a l u e ) ; 
00158  
00159      } 
00160  
00161  
00162  
00163      i n l i n e   d o u b l e   h g l _ a n g 2 r a d ( c o n s t   d o u b l e   a n g ) 
00164  
00165      { 
00166  
00167          r e t u r n   a n g * H G L _ P I / 1 8 0 . 0 f ; 
00168  
00169      } 
00170  
00171  
00172  
00173      i n l i n e   d o u b l e   h g l _ r a d 2 a n g ( c o n s t   d o u b l e   r a d ) 
00174  
00175      { 
00176  
00177          r e t u r n   r a d * 1 8 0 . 0 f / H G L _ P I ; 
00178  
00179      } 
00180  
00181  
00182  
00183      t e m p l a t e < t y p e n a m e   S , t y p e n a m e   D > 
00184  
00185      i n l i n e   v o i d   h g l _ c p y ( D   * d s t , c o n s t   S   * s r c , c o n s t   s i z e _ t   c o u n t ) 
00186  
00187      { 
00188  
00189          f o r ( s i z e _ t   i = 0 ; i < c o u n t ; i + + ) 
00190  
00191              * d s t + + = D ( * s r c + + ) ; 
00192  
00193      } 
00194  
00195  
00196  
00197      t e m p l a t e < t y p e n a m e   T > 
00198  
00199      i n l i n e   v o i d   h g l _ s e t ( T   * d a t a , c o n s t   T   & v a l u e , c o n s t   s i z e _ t   c o u n t ) 
00200  
00201      { 
00202  
00203          f o r ( s i z e _ t   i = 0 ; i < c o u n t ; i + + ) 
00204  
00205              * d a t a + + = v a l u e ; 
00206  
00207      } 
00208  
00209  
00210  
00211      / * * 
00212  
00213        *   kYtW{|
00214  
00215        * / 
00216  
00217      t e m p l a t e < t y p e n a m e   T >   c l a s s   C o m p a r a t o r 
00218  
00219      { 
00220  
00221      p u b l i c : 
00222  
00223  
00224  
00225          v i r t u a l   i n t   c o m p a r e ( c o n s t   T   & o 1 , c o n s t   T   & o 2 )                                                 / / / < kQpe ͑}
00226  
00227          { 
00228  
00229              r e t u r n ( o 1 - o 2 ) ; 
00230  
00231          } 
00232  
00233      } ; / / c l a s s   C o m p a r a t o r 
00234  
00235  } / / n a m e s p a c e   h g l 
00236  
00237  # e n d i f / / H G L _ T Y P E _ F U N C _ I N C L U D E 
00238  
00239  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义