\brief CTrack::CalcDistRect \param reg \return
| 132 | /// \return |
| 133 | /// |
| 134 | track_t CTrack::CalcDistRect(const CRegion& reg) const |
| 135 | { |
| 136 | std::array<track_t, 5> diff; |
| 137 | diff[0] = reg.m_rrect.center.x - m_lastRegion.m_rrect.center.x; |
| 138 | diff[1] = reg.m_rrect.center.y - m_lastRegion.m_rrect.center.y; |
| 139 | diff[2] = static_cast<track_t>(m_lastRegion.m_rrect.size.width - reg.m_rrect.size.width); |
| 140 | diff[3] = static_cast<track_t>(m_lastRegion.m_rrect.size.height - reg.m_rrect.size.height); |
| 141 | diff[4] = static_cast<track_t>(m_lastRegion.m_rrect.angle - reg.m_rrect.angle); |
| 142 | |
| 143 | track_t dist = 0; |
| 144 | for (size_t i = 0; i < diff.size(); ++i) |
| 145 | { |
| 146 | dist += sqr(diff[i]); |
| 147 | } |
| 148 | if constexpr (sizeof(track_t) == sizeof(float)) |
| 149 | return sqrtf(dist); |
| 150 | else |
| 151 | return sqrt(dist); |
| 152 | } |
| 153 | |
| 154 | /// |
| 155 | /// \brief CTrack::CalcDistJaccard |
no test coverage detected