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