19d4cc2572d37983607df38b0f4216ed76ac51814sm/* 29d4cc2572d37983607df38b0f4216ed76ac51814sm * Copyright (C) 2010 The Android Open Source Project 39d4cc2572d37983607df38b0f4216ed76ac51814sm * 49d4cc2572d37983607df38b0f4216ed76ac51814sm * Licensed under the Apache License, Version 2.0 (the "License"); 59d4cc2572d37983607df38b0f4216ed76ac51814sm * you may not use this file except in compliance with the License. 69d4cc2572d37983607df38b0f4216ed76ac51814sm * You may obtain a copy of the License at 79d4cc2572d37983607df38b0f4216ed76ac51814sm * 89d4cc2572d37983607df38b0f4216ed76ac51814sm * http://www.apache.org/licenses/LICENSE-2.0 99d4cc2572d37983607df38b0f4216ed76ac51814sm * 109d4cc2572d37983607df38b0f4216ed76ac51814sm * Unless required by applicable law or agreed to in writing, software 119d4cc2572d37983607df38b0f4216ed76ac51814sm * distributed under the License is distributed on an "AS IS" BASIS, 129d4cc2572d37983607df38b0f4216ed76ac51814sm * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139d4cc2572d37983607df38b0f4216ed76ac51814sm * See the License for the specific language governing permissions and 149d4cc2572d37983607df38b0f4216ed76ac51814sm * limitations under the License. 159d4cc2572d37983607df38b0f4216ed76ac51814sm */ 169d4cc2572d37983607df38b0f4216ed76ac51814sm 179d4cc2572d37983607df38b0f4216ed76ac51814sm 189d4cc2572d37983607df38b0f4216ed76ac51814smpackage com.replica.replicaisland; 199d4cc2572d37983607df38b0f4216ed76ac51814sm 209d4cc2572d37983607df38b0f4216ed76ac51814sm 219d4cc2572d37983607df38b0f4216ed76ac51814smpublic class InputXY { 229d4cc2572d37983607df38b0f4216ed76ac51814sm private InputButton mXAxis; 239d4cc2572d37983607df38b0f4216ed76ac51814sm private InputButton mYAxis; 249d4cc2572d37983607df38b0f4216ed76ac51814sm 259d4cc2572d37983607df38b0f4216ed76ac51814sm public InputXY() { 269d4cc2572d37983607df38b0f4216ed76ac51814sm mXAxis = new InputButton(); 279d4cc2572d37983607df38b0f4216ed76ac51814sm mYAxis = new InputButton(); 289d4cc2572d37983607df38b0f4216ed76ac51814sm } 299d4cc2572d37983607df38b0f4216ed76ac51814sm 309d4cc2572d37983607df38b0f4216ed76ac51814sm public InputXY(InputButton xAxis, InputButton yAxis) { 319d4cc2572d37983607df38b0f4216ed76ac51814sm mXAxis = xAxis; 329d4cc2572d37983607df38b0f4216ed76ac51814sm mYAxis = yAxis; 339d4cc2572d37983607df38b0f4216ed76ac51814sm } 349d4cc2572d37983607df38b0f4216ed76ac51814sm 359d4cc2572d37983607df38b0f4216ed76ac51814sm public final void press(float currentTime, float x, float y) { 369d4cc2572d37983607df38b0f4216ed76ac51814sm mXAxis.press(currentTime, x); 379d4cc2572d37983607df38b0f4216ed76ac51814sm mYAxis.press(currentTime, y); 389d4cc2572d37983607df38b0f4216ed76ac51814sm } 399d4cc2572d37983607df38b0f4216ed76ac51814sm 409d4cc2572d37983607df38b0f4216ed76ac51814sm public final void release() { 419d4cc2572d37983607df38b0f4216ed76ac51814sm mXAxis.release(); 429d4cc2572d37983607df38b0f4216ed76ac51814sm mYAxis.release(); 439d4cc2572d37983607df38b0f4216ed76ac51814sm } 449d4cc2572d37983607df38b0f4216ed76ac51814sm 459d4cc2572d37983607df38b0f4216ed76ac51814sm public boolean getTriggered(float time) { 469d4cc2572d37983607df38b0f4216ed76ac51814sm return mXAxis.getTriggered(time) || mYAxis.getTriggered(time); 479d4cc2572d37983607df38b0f4216ed76ac51814sm } 489d4cc2572d37983607df38b0f4216ed76ac51814sm 499d4cc2572d37983607df38b0f4216ed76ac51814sm public boolean getPressed() { 509d4cc2572d37983607df38b0f4216ed76ac51814sm return mXAxis.getPressed() || mYAxis.getPressed(); 519d4cc2572d37983607df38b0f4216ed76ac51814sm } 529d4cc2572d37983607df38b0f4216ed76ac51814sm 539d4cc2572d37983607df38b0f4216ed76ac51814sm public final void setVector(Vector2 vector) { 549d4cc2572d37983607df38b0f4216ed76ac51814sm vector.x = mXAxis.getMagnitude(); 559d4cc2572d37983607df38b0f4216ed76ac51814sm vector.y = mYAxis.getMagnitude(); 569d4cc2572d37983607df38b0f4216ed76ac51814sm } 579d4cc2572d37983607df38b0f4216ed76ac51814sm 589d4cc2572d37983607df38b0f4216ed76ac51814sm public final float getX() { 599d4cc2572d37983607df38b0f4216ed76ac51814sm return mXAxis.getMagnitude(); 609d4cc2572d37983607df38b0f4216ed76ac51814sm } 619d4cc2572d37983607df38b0f4216ed76ac51814sm 629d4cc2572d37983607df38b0f4216ed76ac51814sm public final float getY() { 639d4cc2572d37983607df38b0f4216ed76ac51814sm return mYAxis.getMagnitude(); 649d4cc2572d37983607df38b0f4216ed76ac51814sm } 659d4cc2572d37983607df38b0f4216ed76ac51814sm 669d4cc2572d37983607df38b0f4216ed76ac51814sm public final float getLastPressedTime() { 679d4cc2572d37983607df38b0f4216ed76ac51814sm return Math.max(mXAxis.getLastPressedTime(), mYAxis.getLastPressedTime()); 689d4cc2572d37983607df38b0f4216ed76ac51814sm } 699d4cc2572d37983607df38b0f4216ed76ac51814sm 709d4cc2572d37983607df38b0f4216ed76ac51814sm public final void releaseX() { 719d4cc2572d37983607df38b0f4216ed76ac51814sm mXAxis.release(); 729d4cc2572d37983607df38b0f4216ed76ac51814sm } 739d4cc2572d37983607df38b0f4216ed76ac51814sm 749d4cc2572d37983607df38b0f4216ed76ac51814sm public final void releaseY() { 759d4cc2572d37983607df38b0f4216ed76ac51814sm mYAxis.release(); 769d4cc2572d37983607df38b0f4216ed76ac51814sm } 779d4cc2572d37983607df38b0f4216ed76ac51814sm 789d4cc2572d37983607df38b0f4216ed76ac51814sm 799d4cc2572d37983607df38b0f4216ed76ac51814sm public void setMagnitude(float x, float y) { 809d4cc2572d37983607df38b0f4216ed76ac51814sm mXAxis.setMagnitude(x); 819d4cc2572d37983607df38b0f4216ed76ac51814sm mYAxis.setMagnitude(y); 829d4cc2572d37983607df38b0f4216ed76ac51814sm } 839d4cc2572d37983607df38b0f4216ed76ac51814sm 849d4cc2572d37983607df38b0f4216ed76ac51814sm public void reset() { 859d4cc2572d37983607df38b0f4216ed76ac51814sm mXAxis.reset(); 869d4cc2572d37983607df38b0f4216ed76ac51814sm mYAxis.reset(); 879d4cc2572d37983607df38b0f4216ed76ac51814sm } 889d4cc2572d37983607df38b0f4216ed76ac51814sm 899d4cc2572d37983607df38b0f4216ed76ac51814sm public void clone(InputXY other) { 909d4cc2572d37983607df38b0f4216ed76ac51814sm if (other.getPressed()) { 919d4cc2572d37983607df38b0f4216ed76ac51814sm press(other.getLastPressedTime(), other.getX(), other.getY()); 929d4cc2572d37983607df38b0f4216ed76ac51814sm } else { 939d4cc2572d37983607df38b0f4216ed76ac51814sm release(); 949d4cc2572d37983607df38b0f4216ed76ac51814sm } 959d4cc2572d37983607df38b0f4216ed76ac51814sm } 969d4cc2572d37983607df38b0f4216ed76ac51814sm} 97