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