CMGDK r49-rc2
|
00001 # i f n d e f H G L _ R E C T S C O P E _ I N C L U D E 00002 00003 # d e f i n e H G L _ R E C T S C O P E _ 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 n a m e s p a c e h g l 00010 00011 { 00012 00013 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 ; 00014 00015 / * * 00016 00017 * ُ*N{|(uNcTYt N*Nwb_V 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 R e c t S c o p e 2 / / / wb_V{| 00022 00023 { 00024 00025 p u b l i c : 00026 00027 00028 00029 T L e f t ; / / / < wb_]@b(WvPWh 00030 00031 T T o p ; / / / < wb_ 00032 N@b(WvPWh 00033 00034 T W i d t h ; / / / < wb_v[^ 00035 00036 T H e i g h t ; / / / < wb_vؚ^ 00037 00038 00039 00040 p u b l i c : 00041 00042 00043 00044 T G e t B o t t o m ( ) c o n s t { r e t u r n H e i g h t + T o p ; } 00045 00046 T G e t R i g h t ( ) c o n s t { r e t u r n W i d t h + L e f t ; } 00047 00048 v o i d S e t B o t t o m ( T v ) { T o p = v - H e i g h t ; } 00049 00050 v o i d S e t R i g h t ( T v ) { L e f t = v - W i d t h ; } 00051 00052 00053 00054 p u b l i c : 00055 00056 00057 00058 R e c t S c o p e 2 ( ) ; 00059 00060 R e c t S c o p e 2 ( T , T , T , T ) ; 00061 00062 t e m p l a t e < t y p e n a m e N > R e c t S c o p e 2 ( c o n s t R e c t S c o p e 2 < N > & ) ; 00063 00064 00065 00066 v o i d C l e a r ( ) 00067 00068 { 00069 00070 L e f t = 0 ; 00071 00072 T o p = 0 ; 00073 00074 W i d t h = 0 ; 00075 00076 H e i g h t = 0 ; 00077 00078 } 00079 00080 00081 00082 v o i d S e t ( T , T , T , T ) ; 00083 00084 00085 00086 b o o l P o i n t I n ( T , T ) c o n s t ; 00087 00088 00089 00090 t e m p l a t e < t y p e n a m e N > 00091 00092 b o o l P o i n t I n ( c o n s t N & v ) c o n s t { r e t u r n P o i n t I n ( v . x , v . y ) ; } / / / < N*Np/f&T(WvQ 00093 N 00094 00095 00096 00097 t e m p l a t e < t y p e n a m e N > 00098 00099 v o i d o p e r a t o r = ( c o n s t R e c t S c o p e 2 < N > & r s ) 00100 00101 { 00102 00103 L e f t = r s . L e f t ; 00104 00105 T o p = r s . T o p ; 00106 00107 W i d t h = r s . W i d t h ; 00108 00109 H e i g h t = r s . H e i g h t ; 00110 00111 } 00112 00113 00114 00115 t e m p l a t e < t y p e n a m e N > 00116 00117 b o o l o p e r a t o r = = ( c o n s t R e c t S c o p e 2 < N > & r s ) c o n s t 00118 00119 { 00120 00121 i f ( ( L e f t = = r s . L e f t ) 00122 00123 & & ( T o p = = r s . T o p ) 00124 00125 & & ( W i d t h = = r s . W i d t h ) 00126 00127 & & ( H e i g h t = = r s . H e i g h t ) ) r e t u r n ( t r u e ) ; 00128 00129 e l s e 00130 00131 r e t u r n ( f a l s e ) ; 00132 00133 } 00134 00135 00136 00137 t e m p l a t e < t y p e n a m e N > 00138 00139 b o o l o p e r a t o r ! = ( c o n s t R e c t S c o p e 2 < N > & r s ) c o n s t 00140 00141 { 00142 00143 r e t u r n ( ! o p e r a t o r = = ( r s ) ) ; 00144 00145 } 00146 00147 00148 00149 t e m p l a t e < t y p e n a m e N > 00150 00151 R e c t S c o p e 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 00152 00153 { 00154 00155 r e t u r n R e c t S c o p e 2 < T > ( L e f t + v . x , T o p + v . y , W i d t h , H e i g h t ) ; 00156 00157 } 00158 00159 00160 00161 t e m p l a t e < t y p e n a m e N > 00162 00163 R e c t S c o p e 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 00164 00165 { 00166 00167 r e t u r n R e c t S c o p e 2 < T > ( L e f t + v . x , T o p + v . y , W i d t h , H e i g h t ) ; 00168 00169 } 00170 00171 00172 00173 t e m p l a t e < t y p e n a m e N > 00174 00175 R e c t S c o p e 2 < T > & o p e r a t o r + = ( c o n s t V e r t e x 2 < N > & v ) 00176 00177 { 00178 00179 L e f t + = v . x ; 00180 00181 T o p + = v . y ; 00182 00183 00184 00185 r e t u r n ( * t h i s ) ; 00186 00187 } 00188 00189 00190 00191 t e m p l a t e < t y p e n a m e N > 00192 00193 R e c t S c o p e 2 < T > & o p e r a t o r - = ( c o n s t V e r t e x 2 < N > & v ) 00194 00195 { 00196 00197 L e f t - = v . x ; 00198 00199 T o p - = v . y ; 00200 00201 00202 00203 r e t u r n ( * t h i s ) ; 00204 00205 } 00206 00207 } ; / / c l a s s R e c t S c o p e 2 00208 00209 00210 00211 t y p e d e f R e c t S c o p e 2 < d o u b l e > R e c t S c o p e 2 d ; 00212 00213 t y p e d e f R e c t S c o p e 2 < f l o a t > R e c t S c o p e 2 f ; 00214 00215 t y p e d e f R e c t S c o p e 2 < i n t > R e c t S c o p e 2 i ; 00216 00217 } / / n a m e s p a c e h g l 00218 00219 # i n c l u d e < h g l / t y p e / R e c t S c o p e . C P P > 00220 00221 # e n d i f / / H G L _ R E C T S C O P E _ I N C L U D E 00222 00223