CMGDK r49-rc2
|
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