diff options
Diffstat (limited to 'native')
-rw-r--r-- | native/jni/src/geometry_utils.h | 15 | ||||
-rw-r--r-- | native/jni/src/proximity_info_state.cpp | 14 |
2 files changed, 10 insertions, 19 deletions
diff --git a/native/jni/src/geometry_utils.h b/native/jni/src/geometry_utils.h index bad5eda61..3892b46a0 100644 --- a/native/jni/src/geometry_utils.h +++ b/native/jni/src/geometry_utils.h @@ -64,17 +64,8 @@ static inline float getAngleDiff(float a1, float a2) { return diff; } -// static float pointToLineSegSquaredDistanceFloat( -// float x, float y, float x1, float y1, float x2, float y2) { -// float A = x - x1; -// float B = y - y1; -// float C = x2 - x1; -// float D = y2 - y1; -// return fabsf(A * D - C * B) / sqrtf(C * C + D * D); -// } - static inline float pointToLineSegSquaredDistanceFloat( - float x, float y, float x1, float y1, float x2, float y2) { + float x, float y, float x1, float y1, float x2, float y2, bool extend) { const float ray1x = x - x1; const float ray1y = y - y1; const float ray2x = x2 - x1; @@ -86,10 +77,10 @@ static inline float pointToLineSegSquaredDistanceFloat( float projectionX; float projectionY; - if (projectionLengthSqr < 0.0f) { + if (!extend && projectionLengthSqr < 0.0f) { projectionX = x1; projectionY = y1; - } else if (projectionLengthSqr > 1.0f) { + } else if (!extend && projectionLengthSqr > 1.0f) { projectionX = x2; projectionY = y2; } else { diff --git a/native/jni/src/proximity_info_state.cpp b/native/jni/src/proximity_info_state.cpp index 9b189183b..b9fce5fef 100644 --- a/native/jni/src/proximity_info_state.cpp +++ b/native/jni/src/proximity_info_state.cpp @@ -409,11 +409,11 @@ bool ProximityInfoState::pushTouchPoint(const int inputIndex, const int nodeChar } NearKeysDistanceMap::const_iterator itPP = prevNearKeysDistances->find(minChar); - if (DEBUG_GEO_FULL) { - AKLOGI("p1: char = %c, minDist = %f, prevNear key minDist = %f", - minChar, itPP->second, minDist); - } if (itPP != prevNearKeysDistances->end() && minDist > itPP->second) { + if (DEBUG_GEO_FULL) { + AKLOGI("p1: char = %c, minDist = %f, prevNear key minDist = %f", + minChar, itPP->second, minDist); + } return popped; } } @@ -504,7 +504,7 @@ int32_t ProximityInfoState::getAllPossibleChars( if (index >= mInputXs.size()) { return filterSize; } - int i = filterSize; + int newFilterSize = filterSize; for (int j = 0; j < mProximityInfo->getKeyCount(); ++j) { if (mNearKeysVector[index].test(j)) { const int32_t keyCodePoint = mProximityInfo->getCodePointOf(j); @@ -517,11 +517,11 @@ int32_t ProximityInfoState::getAllPossibleChars( } } if (insert) { - filter[i++] = keyCodePoint; + filter[newFilterSize++] = keyCodePoint; } } } - return i; + return newFilterSize; } float ProximityInfoState::getAveragePointDuration() const { |