CVD 0.8
|
00001 template <class C> inline bool is_corner_10(const byte* p, const int w, const int barrier) { 00002 const int w3 = 3*w; 00003 const int t = C::prep_t(*p, barrier); 00004 if (!C::eval(p[-1-w3],t)) { // ???????????????- 00005 if (!C::eval(p[3+w],t)) { // ?????-?????????- 00006 return false; 00007 } // ?????@?????????- 00008 if (!C::eval(p[2+2*w],t)) { // ?????@-????????- 00009 return false; 00010 } // ?????@@????????- 00011 if (!C::eval(p[-1+w3],t)) { // ?????@@??-?????- 00012 return false; 00013 } // ?????@@??@?????- 00014 if (!C::eval(p[1+w3],t)) { // ?????@@-?@?????- 00015 return false; 00016 } // ?????@@@?@?????- 00017 if (!C::eval(p[w3],t)) { // ?????@@@-@?????- 00018 return false; 00019 } // ?????@@@@@?????- 00020 if (!C::eval(p[-2+2*w],t)) { // ?????@@@@@-????- 00021 if (!C::eval(p[-w3],t)) { // -????@@@@@-????- 00022 return false; 00023 } // @????@@@@@-????- 00024 if (!C::eval(p[3],t)) { // @???-@@@@@-????- 00025 return false; 00026 } // @???@@@@@@-????- 00027 if (!C::eval(p[1-w3],t)) { // @-??@@@@@@-????- 00028 return false; 00029 } // @@??@@@@@@-????- 00030 if (!C::eval(p[2-2*w],t)) { // @@-?@@@@@@-????- 00031 return false; 00032 } // @@@?@@@@@@-????- 00033 if (!C::eval(p[3-w],t)) { // @@@-@@@@@@-????- 00034 return false; 00035 } // @@@@@@@@@@-????- 00036 return true; 00037 } // ?????@@@@@@????- 00038 if (!C::eval(p[-3+w],t)) { // ?????@@@@@@-???- 00039 if (!C::eval(p[3],t)) { // ????-@@@@@@-???- 00040 return false; 00041 } // ????@@@@@@@-???- 00042 if (!C::eval(p[1-w3],t)) { // ?-??@@@@@@@-???- 00043 return false; 00044 } // ?@??@@@@@@@-???- 00045 if (!C::eval(p[2-2*w],t)) { // ?@-?@@@@@@@-???- 00046 return false; 00047 } // ?@@?@@@@@@@-???- 00048 if (!C::eval(p[3-w],t)) { // ?@@-@@@@@@@-???- 00049 return false; 00050 } // ?@@@@@@@@@@-???- 00051 return true; 00052 } // ?????@@@@@@@???- 00053 if (!C::eval(p[3],t)) { // ????-@@@@@@@???- 00054 if (!C::eval(p[-3],t)) { // ????-@@@@@@@-??- 00055 return false; 00056 } // ????-@@@@@@@@??- 00057 if (!C::eval(p[-3-w],t)) { // ????-@@@@@@@@-?- 00058 return false; 00059 } // ????-@@@@@@@@@?- 00060 if (!C::eval(p[-2-2*w],t)) { // ????-@@@@@@@@@-- 00061 return false; 00062 } // ????-@@@@@@@@@@- 00063 return true; 00064 } // ????@@@@@@@@???- 00065 if (!C::eval(p[3-w],t)) { // ???-@@@@@@@@???- 00066 if (!C::eval(p[-3],t)) { // ???-@@@@@@@@-??- 00067 return false; 00068 } // ???-@@@@@@@@@??- 00069 if (!C::eval(p[-3-w],t)) { // ???-@@@@@@@@@-?- 00070 return false; 00071 } // ???-@@@@@@@@@@?- 00072 return true; 00073 } // ???@@@@@@@@@???- 00074 if (!C::eval(p[-3],t)) { // ???@@@@@@@@@-??- 00075 if (!C::eval(p[2-2*w],t)) { // ??-@@@@@@@@@-??- 00076 return false; 00077 } // ??@@@@@@@@@@-??- 00078 return true; 00079 } // ???@@@@@@@@@@??- 00080 return true; 00081 } // ???????????????@ 00082 if (!C::eval(p[-2-2*w],t)) { // ??????????????-@ 00083 if (!C::eval(p[3],t)) { // ????-?????????-@ 00084 return false; 00085 } // ????@?????????-@ 00086 if (!C::eval(p[3+w],t)) { // ????@-????????-@ 00087 return false; 00088 } // ????@@????????-@ 00089 if (!C::eval(p[w3],t)) { // ????@@??-?????-@ 00090 return false; 00091 } // ????@@??@?????-@ 00092 if (!C::eval(p[1+w3],t)) { // ????@@?-@?????-@ 00093 return false; 00094 } // ????@@?@@?????-@ 00095 if (!C::eval(p[2+2*w],t)) { // ????@@-@@?????-@ 00096 return false; 00097 } // ????@@@@@?????-@ 00098 if (!C::eval(p[3-w],t)) { // ???-@@@@@?????-@ 00099 if (!C::eval(p[-1+w3],t)) { // ???-@@@@@-????-@ 00100 return false; 00101 } // ???-@@@@@@????-@ 00102 if (!C::eval(p[-3-w],t)) { // ???-@@@@@@???--@ 00103 return false; 00104 } // ???-@@@@@@???@-@ 00105 if (!C::eval(p[-2+2*w],t)) { // ???-@@@@@@-??@-@ 00106 return false; 00107 } // ???-@@@@@@@??@-@ 00108 if (!C::eval(p[-3+w],t)) { // ???-@@@@@@@-?@-@ 00109 return false; 00110 } // ???-@@@@@@@@?@-@ 00111 if (!C::eval(p[-3],t)) { // ???-@@@@@@@@-@-@ 00112 return false; 00113 } // ???-@@@@@@@@@@-@ 00114 return true; 00115 } // ???@@@@@@?????-@ 00116 if (!C::eval(p[2-2*w],t)) { // ??-@@@@@@?????-@ 00117 if (!C::eval(p[-3],t)) { // ??-@@@@@@???-?-@ 00118 return false; 00119 } // ??-@@@@@@???@?-@ 00120 if (!C::eval(p[-1+w3],t)) { // ??-@@@@@@-??@?-@ 00121 return false; 00122 } // ??-@@@@@@@??@?-@ 00123 if (!C::eval(p[-2+2*w],t)) { // ??-@@@@@@@-?@?-@ 00124 return false; 00125 } // ??-@@@@@@@@?@?-@ 00126 if (!C::eval(p[-3+w],t)) { // ??-@@@@@@@@-@?-@ 00127 return false; 00128 } // ??-@@@@@@@@@@?-@ 00129 return true; 00130 } // ??@@@@@@@?????-@ 00131 if (!C::eval(p[1-w3],t)) { // ?-@@@@@@@?????-@ 00132 if (!C::eval(p[-1+w3],t)) { // ?-@@@@@@@-????-@ 00133 return false; 00134 } // ?-@@@@@@@@????-@ 00135 if (!C::eval(p[-2+2*w],t)) { // ?-@@@@@@@@-???-@ 00136 return false; 00137 } // ?-@@@@@@@@@???-@ 00138 if (!C::eval(p[-3+w],t)) { // ?-@@@@@@@@@-??-@ 00139 return false; 00140 } // ?-@@@@@@@@@@??-@ 00141 return true; 00142 } // ?@@@@@@@@?????-@ 00143 if (!C::eval(p[-w3],t)) { // -@@@@@@@@?????-@ 00144 if (!C::eval(p[-1+w3],t)) { // -@@@@@@@@-????-@ 00145 return false; 00146 } // -@@@@@@@@@????-@ 00147 if (!C::eval(p[-2+2*w],t)) { // -@@@@@@@@@-???-@ 00148 return false; 00149 } // -@@@@@@@@@@???-@ 00150 return true; 00151 } // @@@@@@@@@?????-@ 00152 return true; 00153 } // ??????????????@@ 00154 if (!C::eval(p[-3-w],t)) { // ?????????????-@@ 00155 if (!C::eval(p[1+w3],t)) { // ???????-?????-@@ 00156 return false; 00157 } // ???????@?????-@@ 00158 if (!C::eval(p[3-w],t)) { // ???-???@?????-@@ 00159 return false; 00160 } // ???@???@?????-@@ 00161 if (!C::eval(p[3],t)) { // ???@-??@?????-@@ 00162 return false; 00163 } // ???@@??@?????-@@ 00164 if (!C::eval(p[3+w],t)) { // ???@@-?@?????-@@ 00165 return false; 00166 } // ???@@@?@?????-@@ 00167 if (!C::eval(p[2+2*w],t)) { // ???@@@-@?????-@@ 00168 return false; 00169 } // ???@@@@@?????-@@ 00170 if (!C::eval(p[2-2*w],t)) { // ??-@@@@@?????-@@ 00171 if (!C::eval(p[w3],t)) { // ??-@@@@@-????-@@ 00172 return false; 00173 } // ??-@@@@@@????-@@ 00174 if (!C::eval(p[-3],t)) { // ??-@@@@@@???--@@ 00175 return false; 00176 } // ??-@@@@@@???@-@@ 00177 if (!C::eval(p[-1+w3],t)) { // ??-@@@@@@-??@-@@ 00178 return false; 00179 } // ??-@@@@@@@??@-@@ 00180 if (!C::eval(p[-2+2*w],t)) { // ??-@@@@@@@-?@-@@ 00181 return false; 00182 } // ??-@@@@@@@@?@-@@ 00183 if (!C::eval(p[-3+w],t)) { // ??-@@@@@@@@-@-@@ 00184 return false; 00185 } // ??-@@@@@@@@@@-@@ 00186 return true; 00187 } // ??@@@@@@?????-@@ 00188 if (!C::eval(p[1-w3],t)) { // ?-@@@@@@?????-@@ 00189 if (!C::eval(p[-3+w],t)) { // ?-@@@@@@???-?-@@ 00190 return false; 00191 } // ?-@@@@@@???@?-@@ 00192 if (!C::eval(p[w3],t)) { // ?-@@@@@@-??@?-@@ 00193 return false; 00194 } // ?-@@@@@@@??@?-@@ 00195 if (!C::eval(p[-1+w3],t)) { // ?-@@@@@@@-?@?-@@ 00196 return false; 00197 } // ?-@@@@@@@@?@?-@@ 00198 if (!C::eval(p[-2+2*w],t)) { // ?-@@@@@@@@-@?-@@ 00199 return false; 00200 } // ?-@@@@@@@@@@?-@@ 00201 return true; 00202 } // ?@@@@@@@?????-@@ 00203 if (!C::eval(p[-w3],t)) { // -@@@@@@@?????-@@ 00204 if (!C::eval(p[w3],t)) { // -@@@@@@@-????-@@ 00205 return false; 00206 } // -@@@@@@@@????-@@ 00207 if (!C::eval(p[-1+w3],t)) { // -@@@@@@@@-???-@@ 00208 return false; 00209 } // -@@@@@@@@@???-@@ 00210 if (!C::eval(p[-2+2*w],t)) { // -@@@@@@@@@-??-@@ 00211 return false; 00212 } // -@@@@@@@@@@??-@@ 00213 return true; 00214 } // @@@@@@@@?????-@@ 00215 return true; 00216 } // ?????????????@@@ 00217 if (!C::eval(p[-w3],t)) { // -????????????@@@ 00218 if (!C::eval(p[2+2*w],t)) { // -?????-??????@@@ 00219 return false; 00220 } // -?????@??????@@@ 00221 if (!C::eval(p[1+w3],t)) { // -?????@-?????@@@ 00222 return false; 00223 } // -?????@@?????@@@ 00224 if (!C::eval(p[-2+2*w],t)) { // -?????@@??-??@@@ 00225 return false; 00226 } // -?????@@??@??@@@ 00227 if (!C::eval(p[w3],t)) { // -?????@@-?@??@@@ 00228 return false; 00229 } // -?????@@@?@??@@@ 00230 if (!C::eval(p[-1+w3],t)) { // -?????@@@-@??@@@ 00231 return false; 00232 } // -?????@@@@@??@@@ 00233 if (!C::eval(p[-3+w],t)) { // -?????@@@@@-?@@@ 00234 if (!C::eval(p[1-w3],t)) { // --????@@@@@-?@@@ 00235 return false; 00236 } // -@????@@@@@-?@@@ 00237 if (!C::eval(p[3+w],t)) { // -@???-@@@@@-?@@@ 00238 return false; 00239 } // -@???@@@@@@-?@@@ 00240 if (!C::eval(p[2-2*w],t)) { // -@-??@@@@@@-?@@@ 00241 return false; 00242 } // -@@??@@@@@@-?@@@ 00243 if (!C::eval(p[3-w],t)) { // -@@-?@@@@@@-?@@@ 00244 return false; 00245 } // -@@@?@@@@@@-?@@@ 00246 if (!C::eval(p[3],t)) { // -@@@-@@@@@@-?@@@ 00247 return false; 00248 } // -@@@@@@@@@@-?@@@ 00249 return true; 00250 } // -?????@@@@@@?@@@ 00251 if (!C::eval(p[-3],t)) { // -?????@@@@@@-@@@ 00252 if (!C::eval(p[3+w],t)) { // -????-@@@@@@-@@@ 00253 return false; 00254 } // -????@@@@@@@-@@@ 00255 if (!C::eval(p[2-2*w],t)) { // -?-??@@@@@@@-@@@ 00256 return false; 00257 } // -?@??@@@@@@@-@@@ 00258 if (!C::eval(p[3-w],t)) { // -?@-?@@@@@@@-@@@ 00259 return false; 00260 } // -?@@?@@@@@@@-@@@ 00261 if (!C::eval(p[3],t)) { // -?@@-@@@@@@@-@@@ 00262 return false; 00263 } // -?@@@@@@@@@@-@@@ 00264 return true; 00265 } // -?????@@@@@@@@@@ 00266 return true; 00267 } // @????????????@@@ 00268 if (!C::eval(p[-3],t)) { // @???????????-@@@ 00269 if (!C::eval(p[2+2*w],t)) { // @?????-?????-@@@ 00270 return false; 00271 } // @?????@?????-@@@ 00272 if (!C::eval(p[2-2*w],t)) { // @?-???@?????-@@@ 00273 return false; 00274 } // @?@???@?????-@@@ 00275 if (!C::eval(p[3-w],t)) { // @?@-??@?????-@@@ 00276 return false; 00277 } // @?@@??@?????-@@@ 00278 if (!C::eval(p[3+w],t)) { // @?@@?-@?????-@@@ 00279 return false; 00280 } // @?@@?@@?????-@@@ 00281 if (!C::eval(p[3],t)) { // @?@@-@@?????-@@@ 00282 return false; 00283 } // @?@@@@@?????-@@@ 00284 if (!C::eval(p[1-w3],t)) { // @-@@@@@?????-@@@ 00285 if (!C::eval(p[1+w3],t)) { // @-@@@@@-????-@@@ 00286 return false; 00287 } // @-@@@@@@????-@@@ 00288 if (!C::eval(p[-3+w],t)) { // @-@@@@@@???--@@@ 00289 return false; 00290 } // @-@@@@@@???@-@@@ 00291 if (!C::eval(p[w3],t)) { // @-@@@@@@-??@-@@@ 00292 return false; 00293 } // @-@@@@@@@??@-@@@ 00294 if (!C::eval(p[-1+w3],t)) { // @-@@@@@@@-?@-@@@ 00295 return false; 00296 } // @-@@@@@@@@?@-@@@ 00297 if (!C::eval(p[-2+2*w],t)) { // @-@@@@@@@@-@-@@@ 00298 return false; 00299 } // @-@@@@@@@@@@-@@@ 00300 return true; 00301 } // @@@@@@@?????-@@@ 00302 return true; 00303 } // @???????????@@@@ 00304 if (!C::eval(p[1-w3],t)) { // @-??????????@@@@ 00305 if (!C::eval(p[1+w3],t)) { // @-?????-????@@@@ 00306 return false; 00307 } // @-?????@????@@@@ 00308 if (!C::eval(p[-3+w],t)) { // @-?????@???-@@@@ 00309 return false; 00310 } // @-?????@???@@@@@ 00311 if (!C::eval(p[w3],t)) { // @-?????@-??@@@@@ 00312 return false; 00313 } // @-?????@@??@@@@@ 00314 if (!C::eval(p[-1+w3],t)) { // @-?????@@-?@@@@@ 00315 return false; 00316 } // @-?????@@@?@@@@@ 00317 if (!C::eval(p[-2+2*w],t)) { // @-?????@@@-@@@@@ 00318 return false; 00319 } // @-?????@@@@@@@@@ 00320 return true; 00321 } // @@??????????@@@@ 00322 if (!C::eval(p[2-2*w],t)) { // @@-?????????@@@@ 00323 if (!C::eval(p[-3+w],t)) { // @@-????????-@@@@ 00324 return false; 00325 } // @@-????????@@@@@ 00326 if (!C::eval(p[w3],t)) { // @@-?????-??@@@@@ 00327 return false; 00328 } // @@-?????@??@@@@@ 00329 if (!C::eval(p[-1+w3],t)) { // @@-?????@-?@@@@@ 00330 return false; 00331 } // @@-?????@@?@@@@@ 00332 if (!C::eval(p[-2+2*w],t)) { // @@-?????@@-@@@@@ 00333 return false; 00334 } // @@-?????@@@@@@@@ 00335 return true; 00336 } // @@@?????????@@@@ 00337 if (!C::eval(p[-3+w],t)) { // @@@????????-@@@@ 00338 if (!C::eval(p[3-w],t)) { // @@@-???????-@@@@ 00339 return false; 00340 } // @@@@???????-@@@@ 00341 if (!C::eval(p[3],t)) { // @@@@-??????-@@@@ 00342 return false; 00343 } // @@@@@??????-@@@@ 00344 if (!C::eval(p[3+w],t)) { // @@@@@-?????-@@@@ 00345 return false; 00346 } // @@@@@@?????-@@@@ 00347 return true; 00348 } // @@@????????@@@@@ 00349 if (!C::eval(p[-2+2*w],t)) { // @@@???????-@@@@@ 00350 if (!C::eval(p[3-w],t)) { // @@@-??????-@@@@@ 00351 return false; 00352 } // @@@@??????-@@@@@ 00353 if (!C::eval(p[3],t)) { // @@@@-?????-@@@@@ 00354 return false; 00355 } // @@@@@?????-@@@@@ 00356 return true; 00357 } // @@@???????@@@@@@ 00358 if (!C::eval(p[3-w],t)) { // @@@-??????@@@@@@ 00359 if (!C::eval(p[-1+w3],t)) { // @@@-?????-@@@@@@ 00360 return false; 00361 } // @@@-?????@@@@@@@ 00362 return true; 00363 } // @@@@??????@@@@@@ 00364 return true; 00365 } 00366