| 843 | } |
| 844 | |
| 845 | int EyawAsModIndex( // note: returns a negative index for left facing yaws |
| 846 | EYAW eyaw, // in |
| 847 | const vec_Mod& mods) // in: a vector of models, one for each yaw range |
| 848 | { |
| 849 | int imod = 0; |
| 850 | if (NSIZE(mods) > 1) |
| 851 | { |
| 852 | switch (eyaw) |
| 853 | { |
| 854 | case EYAW00: imod = 0; break; |
| 855 | case EYAW_45: imod = -2; break; |
| 856 | case EYAW_22: imod = -1; break; |
| 857 | case EYAW22: imod = 1; break; |
| 858 | case EYAW45: imod = 2; break; |
| 859 | default: Err("EyawAsModIndex: bad eyaw %d", eyaw); break; |
| 860 | } |
| 861 | } |
| 862 | CV_Assert(ABS(imod) < NSIZE(mods)); |
| 863 | return imod; |
| 864 | } |
| 865 | |
| 866 | EYAW DegreesAsEyaw( // this determines what model is best for a given yaw |
| 867 | double yaw, // in: yaw in degrees, negative if left facing |
no test coverage detected