Step 40-A Cleanup touch path

Change-Id: Id22c5ae6afbf040227dc47153b0849bbe38ff66f
main
Satoshi Kataoka 2012-08-27 14:39:17 +09:00
parent 1451a0fb1f
commit 37b153e205
2 changed files with 26 additions and 8 deletions

View File

@ -84,12 +84,13 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi
// Assuming pointerId == 0 if pointerIds is null. // Assuming pointerId == 0 if pointerIds is null.
const int pid = pointerIds ? pointerIds[i] : 0; const int pid = pointerIds ? pointerIds[i] : 0;
if (pointerId == pid) { if (pointerId == pid) {
++mInputSize;
const int c = isGeometric ? NOT_A_COORDINATE : getPrimaryCharAt(i); const int c = isGeometric ? NOT_A_COORDINATE : getPrimaryCharAt(i);
const int x = proximityOnly ? NOT_A_COORDINATE : xCoordinates[i]; const int x = proximityOnly ? NOT_A_COORDINATE : xCoordinates[i];
const int y = proximityOnly ? NOT_A_COORDINATE : yCoordinates[i]; const int y = proximityOnly ? NOT_A_COORDINATE : yCoordinates[i];
const int time = times ? times[i] : -1; const int time = times ? times[i] : -1;
pushTouchPoint(c, x, y, time, isGeometric); if (pushTouchPoint(c, x, y, time, isGeometric)) {
++mInputSize;
}
} }
} }
} }
@ -152,7 +153,7 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi
} }
} }
void ProximityInfoState::pushTouchPoint(const int nodeChar, int x, int y, bool ProximityInfoState::pushTouchPoint(const int nodeChar, int x, int y,
const int time, const bool sample) { const int time, const bool sample) {
const uint32_t size = mInputXs.size(); const uint32_t size = mInputXs.size();
// TODO: Should have a const variable for 10 // TODO: Should have a const variable for 10
@ -160,7 +161,7 @@ void ProximityInfoState::pushTouchPoint(const int nodeChar, int x, int y,
if (size > 0) { if (size > 0) {
const int dist = getDistanceInt(x, y, mInputXs[size - 1], mInputYs[size - 1]); const int dist = getDistanceInt(x, y, mInputXs[size - 1], mInputYs[size - 1]);
if (sample && dist < sampleRate) { if (sample && dist < sampleRate) {
return; return false;
} }
mLengthCache.push_back(mLengthCache[size - 1] + dist); mLengthCache.push_back(mLengthCache[size - 1] + dist);
} else { } else {
@ -176,6 +177,7 @@ void ProximityInfoState::pushTouchPoint(const int nodeChar, int x, int y,
mInputXs.push_back(x); mInputXs.push_back(x);
mInputYs.push_back(y); mInputYs.push_back(y);
mTimes.push_back(time); mTimes.push_back(time);
return true;
} }
float ProximityInfoState::calculateNormalizedSquaredDistance( float ProximityInfoState::calculateNormalizedSquaredDistance(
@ -196,10 +198,10 @@ float ProximityInfoState::calculateNormalizedSquaredDistance(
} }
int ProximityInfoState::getDuration(const int index) const { int ProximityInfoState::getDuration(const int index) const {
if (mTimes.size() == 0 || index <= 0 || index >= static_cast<int>(mInputSize) - 1) { if (mInputSize > 0 && index > 0 && index < static_cast<int>(mInputSize) - 1) {
return 0; return mTimes[index + 1] - mTimes[index - 1];
} }
return mTimes[index + 1] - mTimes[index - 1]; return 0;
} }
float ProximityInfoState::getPointToKeyLength(int inputIndex, int charCode, float scale) { float ProximityInfoState::getPointToKeyLength(int inputIndex, int charCode, float scale) {

View File

@ -192,6 +192,22 @@ class ProximityInfoState {
return mInputSize > 0; return mInputSize > 0;
} }
uint32_t size() const {
return mInputSize;
}
int getInputX(int index) const {
return mInputXs[index];
}
int getInputY(int index) const {
return mInputYs[index];
}
int getLengthCache(int index) const {
return mLengthCache[index];
}
float getPointToKeyLength(int inputIndex, int charCode, float scale); float getPointToKeyLength(int inputIndex, int charCode, float scale);
int getKeyKeyDistance(int key0, int key1); int getKeyKeyDistance(int key0, int key1);
@ -208,7 +224,7 @@ class ProximityInfoState {
float calculateSquaredDistanceFromSweetSpotCenter( float calculateSquaredDistanceFromSweetSpotCenter(
const int keyIndex, const int inputIndex) const; const int keyIndex, const int inputIndex) const;
void pushTouchPoint(const int nodeChar, int x, int y, const int time, const bool sample); bool pushTouchPoint(const int nodeChar, int x, int y, const int time, const bool sample);
///////////////////////////////////////// /////////////////////////////////////////
// Defined here // // Defined here //
///////////////////////////////////////// /////////////////////////////////////////