diff options
author | 2011-10-04 01:06:46 -0700 | |
---|---|---|
committer | 2011-10-04 01:06:46 -0700 | |
commit | 7afd910242c5008857c28888cb806586fd2dbf5d (patch) | |
tree | 96e69da8144c0ab0e6c8cbf86f0e50caddf518ef /native/src/proximity_info.cpp | |
parent | ab72a97d7ce44230a0c824797d1675a5ca354a56 (diff) | |
parent | 16717159fffc7731669143a8e9ed866e7d88ecef (diff) | |
download | latinime-7afd910242c5008857c28888cb806586fd2dbf5d.tar.gz latinime-7afd910242c5008857c28888cb806586fd2dbf5d.tar.xz latinime-7afd910242c5008857c28888cb806586fd2dbf5d.zip |
Merge "Move ProximityInfo::calculateSweetSpotType right after ProximityInfo::setInputParams"
Diffstat (limited to 'native/src/proximity_info.cpp')
-rw-r--r-- | native/src/proximity_info.cpp | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/native/src/proximity_info.cpp b/native/src/proximity_info.cpp index 547d5e8a3..15f012d8a 100644 --- a/native/src/proximity_info.cpp +++ b/native/src/proximity_info.cpp @@ -116,6 +116,38 @@ void ProximityInfo::setInputParams(const int* inputCodes, const int inputLength, mPrimaryInputWord[inputLength] = 0; } +inline float square(const float x) { return x * x; } + +ProximityInfo::SweetSpotType ProximityInfo::calculateSweetSpotType( + int index, unsigned short baseLowerC) const { + if (KEY_COUNT == 0 || !mInputXCoordinates || !mInputYCoordinates + || baseLowerC > MAX_CHAR_CODE) { + return UNKNOWN; + } + const int keyIndex = mCodeToKeyIndex[baseLowerC]; + if (keyIndex < 0) { + return UNKNOWN; + } + const float sweetSpotRadius = mSweetSpotRadii[keyIndex]; + if (sweetSpotRadius <= 0.0) { + return UNKNOWN; + } + const float sweetSpotCenterX = mSweetSpotCenterXs[keyIndex]; + const float sweetSpotCenterY = mSweetSpotCenterYs[keyIndex]; + const float inputX = (float)mInputXCoordinates[index]; + const float inputY = (float)mInputYCoordinates[index]; + const float squaredDistance = + square(inputX - sweetSpotCenterX) + square(inputY - sweetSpotCenterY); + const float squaredSweetSpotRadius = square(sweetSpotRadius); + if (squaredDistance <= squaredSweetSpotRadius) { + return IN_SWEET_SPOT; + } + if (squaredDistance <= square(NEUTRAL_AREA_RADIUS_RATIO) * squaredSweetSpotRadius) { + return IN_NEUTRAL_AREA; + } + return OUT_OF_NEUTRAL_AREA; +} + inline const int* ProximityInfo::getProximityCharsAt(const int index) const { return mInputCodes + (index * MAX_PROXIMITY_CHARS_SIZE); } @@ -207,38 +239,6 @@ ProximityInfo::ProximityType ProximityInfo::getMatchedProximityId( return UNRELATED_CHAR; } -inline float square(const float x) { return x * x; } - -ProximityInfo::SweetSpotType ProximityInfo::calculateSweetSpotType( - int index, unsigned short baseLowerC) const { - if (KEY_COUNT == 0 || !mInputXCoordinates || !mInputYCoordinates - || baseLowerC > MAX_CHAR_CODE) { - return UNKNOWN; - } - const int keyIndex = mCodeToKeyIndex[baseLowerC]; - if (keyIndex < 0) { - return UNKNOWN; - } - const float sweetSpotRadius = mSweetSpotRadii[keyIndex]; - if (sweetSpotRadius <= 0.0) { - return UNKNOWN; - } - const float sweetSpotCenterX = mSweetSpotCenterXs[keyIndex]; - const float sweetSpotCenterY = mSweetSpotCenterYs[keyIndex]; - const float inputX = (float)mInputXCoordinates[index]; - const float inputY = (float)mInputYCoordinates[index]; - const float squaredDistance = - square(inputX - sweetSpotCenterX) + square(inputY - sweetSpotCenterY); - const float squaredSweetSpotRadius = square(sweetSpotRadius); - if (squaredDistance <= squaredSweetSpotRadius) { - return IN_SWEET_SPOT; - } - if (squaredDistance <= square(NEUTRAL_AREA_RADIUS_RATIO) * squaredSweetSpotRadius) { - return IN_NEUTRAL_AREA; - } - return OUT_OF_NEUTRAL_AREA; -} - bool ProximityInfo::sameAsTyped(const unsigned short *word, int length) const { if (length != mInputLength) { return false; |