diff --git a/engine/src/core/com/jme3/input/ChaseCamera.java b/engine/src/core/com/jme3/input/ChaseCamera.java
index b5a795977..c642d3604 100644
--- a/engine/src/core/com/jme3/input/ChaseCamera.java
+++ b/engine/src/core/com/jme3/input/ChaseCamera.java
@@ -541,7 +541,7 @@ public class ChaseCamera implements ActionListener, AnalogListener, Control {
}
/**
- * update the camera control, should on ly be used internally
+ * update the camera control, should only be used internally
* @param tpf
*/
public void update(float tpf) {
@@ -549,7 +549,7 @@ public class ChaseCamera implements ActionListener, AnalogListener, Control {
}
/**
- * renders the camera control, should on ly be used internally
+ * renders the camera control, should only be used internally
* @param rm
* @param vp
*/
diff --git a/engine/src/core/com/jme3/input/FlyByCamera.java b/engine/src/core/com/jme3/input/FlyByCamera.java
index 3a62a6e86..e1bc2127d 100644
--- a/engine/src/core/com/jme3/input/FlyByCamera.java
+++ b/engine/src/core/com/jme3/input/FlyByCamera.java
@@ -135,11 +135,15 @@ public class FlyByCamera implements AnalogListener, ActionListener {
}
/**
- * @param dragToRotate When true, the user must hold the mouse button
+ * Set if drag to rotate mode is enabled.
+ *
+ * When true, the user must hold the mouse button
* and drag over the screen to rotate the camera, and the cursor is
* visible until dragged. Otherwise, the cursor is invisible at all times
* and holding the mouse button is not needed to rotate the camera.
* This feature is disabled by default.
+ *
+ * @param dragToRotate True if drag to rotate mode is enabled.
*/
public void setDragToRotate(boolean dragToRotate) {
this.dragToRotate = dragToRotate;
diff --git a/engine/src/core/com/jme3/input/InputManager.java b/engine/src/core/com/jme3/input/InputManager.java
index 324aa268a..5e437ec21 100644
--- a/engine/src/core/com/jme3/input/InputManager.java
+++ b/engine/src/core/com/jme3/input/InputManager.java
@@ -31,6 +31,7 @@
*/
package com.jme3.input;
+import com.jme3.app.Application;
import com.jme3.input.controls.ActionListener;
import com.jme3.input.controls.AnalogListener;
import com.jme3.input.controls.InputListener;
@@ -62,10 +63,38 @@ import java.util.logging.Logger;
* The InputManager
is responsible for converting input events
* received from the Key, Mouse and Joy Input implementations into an
* abstract, input device independent representation that user code can use.
- *
- * By default a dispatcher is included with every Application instance for use
+ *
+ * By default an InputManager
is included with every Application instance for use
* in user code to query input, unless the Application is created as headless
* or with input explicitly disabled.
+ *
+ * The input manager has two concepts, a {@link Trigger} and a mapping. + * A trigger represents a specific input trigger, such as a key button, + * or a mouse axis. A mapping represents a link onto one or several triggers, + * when the appropriate trigger is activated (e.g. a key is pressed), the + * mapping will be invoked. Any listeners registered to receive an event + * from the mapping will have an event raised. + *
+ * There are two types of events that {@link InputListener input listeners} + * can receive, one is {@link ActionListener#onAction(java.lang.String, boolean, float) action} + * events and another is {@link AnalogListener#onAnalog(java.lang.String, float, float) analog} + * events. + *
+ * onAction
events are raised when the specific input
+ * activates or deactivates. For a digital input such as key press, the onAction()
+ * event will be raised with the isPressed
argument equal to true,
+ * when the key is released, onAction
is called again but this time
+ * with the isPressed
argument set to false.
+ * For analog inputs, the onAction
method will be called any time
+ * the input is non-zero, however an exception to this is for joystick axis inputs,
+ * which are only called when the input is above the {@link InputManager#setAxisDeadZone(float) dead zone}.
+ *
+ * onAnalog
events are raised every frame while the input is activated.
+ * For digital inputs, every frame that the input is active will cause the
+ * onAnalog
method to be called, the argument value
+ * argument will equal to the frame's time per frame (TPF) value but only
+ * for digital inputs. For analog inputs however, the value
argument
+ * will equal the actual analog value.
*/
public class InputManager implements RawInputListener {
@@ -106,6 +135,8 @@ public class InputManager implements RawInputListener {
/**
* Initializes the InputManager.
+ *
+ *
This should only be called internally in {@link Application}. * * @param mouseInput * @param keyInput @@ -267,9 +298,15 @@ public class InputManager implements RawInputListener { } } + /** + * Callback from RawInputListener. Do not use. + */ public void beginInput() { } + /** + * Callback from RawInputListener. Do not use. + */ public void endInput() { } @@ -309,6 +346,9 @@ public class InputManager implements RawInputListener { } } + /** + * Callback from RawInputListener. Do not use. + */ public void onJoyAxisEvent(JoyAxisEvent evt) { if (!eventsPermitted) { throw new UnsupportedOperationException("JoyInput has raised an event at an illegal time."); @@ -327,6 +367,9 @@ public class InputManager implements RawInputListener { invokeTimedActions(hash, evt.getTime(), evt.isPressed()); } + /** + * Callback from RawInputListener. Do not use. + */ public void onJoyButtonEvent(JoyButtonEvent evt) { if (!eventsPermitted) { throw new UnsupportedOperationException("JoyInput has raised an event at an illegal time."); @@ -354,6 +397,9 @@ public class InputManager implements RawInputListener { } } + /** + * Callback from RawInputListener. Do not use. + */ public void onMouseMotionEvent(MouseMotionEvent evt) { if (!eventsPermitted) { throw new UnsupportedOperationException("MouseInput has raised an event at an illegal time."); @@ -364,15 +410,14 @@ public class InputManager implements RawInputListener { } private void onMouseButtonEventQueued(MouseButtonEvent evt) { -// for (int i = 0; i < rawListeners.size(); i++){ -// rawListeners.get(i).onMouseButtonEvent(evt); -// } - int hash = MouseButtonTrigger.mouseButtonHash(evt.getButtonIndex()); invokeActions(hash, evt.isPressed()); invokeTimedActions(hash, evt.getTime(), evt.isPressed()); } + /** + * Callback from RawInputListener. Do not use. + */ public void onMouseButtonEvent(MouseButtonEvent evt) { if (!eventsPermitted) { throw new UnsupportedOperationException("MouseInput has raised an event at an illegal time."); @@ -382,18 +427,18 @@ public class InputManager implements RawInputListener { } private void onKeyEventQueued(KeyInputEvent evt) { -// for (int i = 0; i < rawListeners.size(); i++){ -// rawListeners.get(i).onKeyEvent(evt); -// } - if (evt.isRepeating()) { return; // repeat events not used for bindings } + int hash = KeyTrigger.keyHash(evt.getKeyCode()); invokeActions(hash, evt.isPressed()); invokeTimedActions(hash, evt.getTime(), evt.isPressed()); } + /** + * Callback from RawInputListener. Do not use. + */ public void onKeyEvent(KeyInputEvent evt) { if (!eventsPermitted) { throw new UnsupportedOperationException("KeyInput has raised an event at an illegal time."); @@ -401,11 +446,69 @@ public class InputManager implements RawInputListener { inputQueue.add(evt); } + + private void onTouchEventQueued(TouchEvent evt) { + for (Mapping mapping : mappings.values()) { + for (InputListener listener : mapping.listeners) { + if (listener instanceof TouchListener) { + ((TouchListener) listener).onTouch(mapping.name, evt, frameTPF); + } + } + } + } + + /** + * Callback from RawInputListener. Do not use. + */ + @Override + public void onTouchEvent(TouchEvent evt) { + if (!eventsPermitted) { + throw new UnsupportedOperationException("TouchInput has raised an event at an illegal time."); + } + + inputQueue.add(evt); + } + /** + * Set the deadzone for joystick axes. + * + *
{@link ActionListener#onAction(java.lang.String, boolean, float) }
+ * events will only be raised if the joystick axis value is greater than
+ * the deadZone
.
+ *
+ * @param deadZone the deadzone for joystick axes.
+ */
public void setAxisDeadZone(float deadZone) {
this.axisDeadZone = deadZone;
}
+ /**
+ * Returns the deadzone for joystick axes.
+ *
+ * @return the deadzone for joystick axes.
+ */
+ public float getAxisDeadZone() {
+ return axisDeadZone;
+ }
+
+ /**
+ * Adds a new listener to receive events on the given mappings.
+ *
+ *
The given InputListener will be registered to receive events
+ * on the specified mapping names. When a mapping raises an event, the
+ * listener will have its appropriate method invoked, either
+ * {@link ActionListener#onAction(java.lang.String, boolean, float) }
+ * or {@link AnalogListener#onAnalog(java.lang.String, float, float) }
+ * depending on which interface the listener
implements.
+ * If the listener implements both interfaces, then it will receive the
+ * appropriate event for each method.
+ *
+ * @param listener The listener to register to receive input events.
+ * @param mappingNames The mapping names which the listener will receive
+ * events from.
+ *
+ * @see InputManager#removeListener(com.jme3.input.controls.InputListener)
+ */
public void addListener(InputListener listener, String... mappingNames) {
for (String mappingName : mappingNames) {
Mapping mapping = mappings.get(mappingName);
@@ -419,12 +522,36 @@ public class InputManager implements RawInputListener {
}
}
+ /**
+ * Removes a listener from receiving events.
+ *
+ *
This will unregister the listener from any mappings that it + * was previously registered with via + * {@link InputManager#addListener(com.jme3.input.controls.InputListener, java.lang.String[]) }. + * + * @param listener The listener to unregister. + * + * @see InputManager#addListener(com.jme3.input.controls.InputListener, java.lang.String[]) + */ public void removeListener(InputListener listener) { for (Mapping mapping : mappings.values()) { mapping.listeners.remove(listener); } } + /** + * Create a new mapping to the given triggers. + * + *
+ * The given mapping will be assigned to the given triggers, when + * any of the triggers given raise an event, the listeners + * registered to the mappings will receive appropriate events. + * + * @param mappingName The mapping name to assign. + * @param triggers The triggers to which the mapping is to be registered. + * + * @see InputManager#deleteMapping(java.lang.String) + */ public void addMapping(String mappingName, Trigger... triggers) { Mapping mapping = mappings.get(mappingName); if (mapping == null) { @@ -448,6 +575,17 @@ public class InputManager implements RawInputListener { } } + /** + * Deletes a mapping from receiving trigger events. + * + *
+ * The given mapping will no longer be assigned to receive trigger + * events. + * + * @param mappingName The mapping name to unregister. + * + * @see InputManager#addMapping(java.lang.String, com.jme3.input.controls.Trigger[]) + */ public void deleteMapping(String mappingName) { Mapping mapping = mappings.remove(mappingName); if (mapping == null) { @@ -462,6 +600,17 @@ public class InputManager implements RawInputListener { } } + /** + * Deletes a specific trigger registered to a mapping. + * + *
+ * The given mapping will no longer receive events raised by the + * trigger. + * + * @param mappingName The mapping name to cease receiving events from the + * trigger. + * @param trigger The trigger to no longer invoke events on the mapping. + */ public void deleteTrigger(String mappingName, Trigger trigger) { Mapping mapping = mappings.get(mappingName); if (mapping == null) { @@ -474,7 +623,8 @@ public class InputManager implements RawInputListener { } /** - * Clears all the input mappings from this InputManager. Consequently, also clears all of the + * Clears all the input mappings from this InputManager. + * Consequently, also clears all of the * InputListeners as well. */ public void clearMappings() { @@ -484,6 +634,7 @@ public class InputManager implements RawInputListener { } /** + * Do not use. * Called to reset pressed keys or buttons when focus is restored. */ public void reset() { @@ -492,13 +643,21 @@ public class InputManager implements RawInputListener { } /** + * Returns whether the mouse cursor is visible or not. + * + *
By default the cursor is visible. + * * @param visible whether the mouse cursor is visible or not. + * + * @see InputManager#setCursorVisible(boolean) */ public boolean isCursorVisible() { return mouseVisible; } /** + * Set whether the mouse cursor should be visible or not. + * * @param visible whether the mouse cursor should be visible or not. */ public void setCursorVisible(boolean visible) { @@ -508,24 +667,68 @@ public class InputManager implements RawInputListener { } } + /** + * Returns the current cursor position. The position is relative to the + * bottom-left of the screen and is in pixels. + * + * @return the current cursor position + */ public Vector2f getCursorPosition() { return cursorPos; } + /** + * Returns an array of all joysticks installed on the system. + * + * @return an array of all joysticks installed on the system. + */ public Joystick[] getJoysticks() { return joysticks; } + /** + * Adds a {@link RawInputListener} to receive raw input events. + * + *
+ * Any raw input listeners registered to this InputManager
+ * will receive raw input events first, before they get handled
+ * by the InputManager
itself. The listeners are
+ * each processed in the order they were added, e.g. FIFO.
+ *
+ * If a raw input listener has handled the event and does not wish
+ * other listeners down the list to process the event, it may set the
+ * {@link InputEvent#setConsumed() consumed flag} to indicate the
+ * event was consumed and shouldn't be processed any further.
+ * The listener may do this either at each of the event callbacks
+ * or at the {@link RawInputListener#endInput() } method.
+ *
+ * @param listener A listener to receive raw input events.
+ *
+ * @see RawInputListener
+ */
public void addRawInputListener(RawInputListener listener) {
rawListeners.add(listener);
rawListenerArray = null;
}
+ /**
+ * Removes a {@link RawInputListener} so that it no longer
+ * receives raw input events.
+ *
+ * @param listener The listener to cease receiving raw input events.
+ *
+ * @see InputManager#addRawInputListener(com.jme3.input.RawInputListener)
+ */
public void removeRawInputListener(RawInputListener listener) {
rawListeners.remove(listener);
rawListenerArray = null;
}
+ /**
+ * Clears all {@link RawInputListener}s.
+ *
+ * @see InputManager#addRawInputListener(com.jme3.input.RawInputListener)
+ */
public void clearRawInputListeners() {
rawListeners.clear();
rawListenerArray = null;
@@ -537,16 +740,22 @@ public class InputManager implements RawInputListener {
return rawListenerArray;
}
- public TouchInput getTouchInput() {
- return touch;
- }
-
+ /**
+ * Enable simulation of mouse events. Used for touchscreen input only.
+ *
+ * @param value True to enable simulation of mouse events
+ */
public void setSimulateMouse(boolean value) {
if (touch != null) {
touch.setSimulateMouse(value);
}
}
+ /**
+ * Enable simulation of keyboard events. Used for touchscreen input only.
+ *
+ * @param value True to enable simulation of keyboard events
+ */
public void setSimulateKeyboard(boolean value) {
if (touch != null) {
touch.setSimulateKeyboard(value);
@@ -557,7 +766,7 @@ public class InputManager implements RawInputListener {
int queueSize = inputQueue.size();
RawInputListener[] array = getRawListenerArray();
- for (RawInputListener listener : array) {
+ for (RawInputListener listener : array) {
listener.beginInput();
for (int j = 0; j < queueSize; j++) {
@@ -618,14 +827,19 @@ public class InputManager implements RawInputListener {
}
/**
- * Updates the Dispatcher. This will query current input devices and send
+ * Updates the InputManager
.
+ * This will query current input devices and send
* appropriate events to registered listeners.
*
* @param tpf Time per frame value.
*/
public void update(float tpf) {
frameTPF = tpf;
+
+ // Activate safemode if the TPF value is so small
+ // that rounding errors are inevitable
safeMode = tpf < 0.015f;
+
long currentTime = keys.getInputTimeNanos();
frameDelta = currentTime - lastUpdateTime;
diff --git a/engine/src/core/com/jme3/input/JoyInput.java b/engine/src/core/com/jme3/input/JoyInput.java
index a867e95ab..77c553994 100644
--- a/engine/src/core/com/jme3/input/JoyInput.java
+++ b/engine/src/core/com/jme3/input/JoyInput.java
@@ -37,9 +37,30 @@ package com.jme3.input;
*/
public interface JoyInput extends Input {
+ /**
+ * The X axis for POV (point of view hat).
+ */
public static final int AXIS_POV_X = 254;
+
+ /**
+ * The Y axis for POV (point of view hat).
+ */
public static final int AXIS_POV_Y = 255;
+ /**
+ * Causes the joystick at joyId
index to rumble with
+ * the given amount.
+ *
+ * @param joyId The joystick index
+ * @param amount Rumble amount. Should be between 0 and 1.
+ */
public void setJoyRumble(int joyId, float amount);
+
+ /**
+ * Loads a list of joysticks from the system.
+ *
+ * @param inputManager The input manager requesting to load joysticks
+ * @return A list of joysticks that are installed.
+ */
public Joystick[] loadJoysticks(InputManager inputManager);
}
diff --git a/engine/src/core/com/jme3/input/Joystick.java b/engine/src/core/com/jme3/input/Joystick.java
index 28fc7daed..658781fed 100644
--- a/engine/src/core/com/jme3/input/Joystick.java
+++ b/engine/src/core/com/jme3/input/Joystick.java
@@ -3,6 +3,11 @@ package com.jme3.input;
import com.jme3.input.controls.JoyAxisTrigger;
import com.jme3.input.controls.JoyButtonTrigger;
+/**
+ * A joystick represents a single joystick that is installed in the system.
+ *
+ * @author Kirill Vainer
+ */
public final class Joystick {
private InputManager inputManager;
@@ -13,6 +18,9 @@ public final class Joystick {
private int axisXIndex, axisYIndex;
private String name;
+ /**
+ * Creates a new joystick instance. Only used internally.
+ */
public Joystick(InputManager inputManager, JoyInput joyInput,
int joyId, String name, int buttonCount, int axisCount,
int xAxis, int yAxis){
@@ -27,10 +35,24 @@ public final class Joystick {
this.axisYIndex = yAxis;
}
+ /**
+ * Rumbles the joystick for the given amount/magnitude.
+ *
+ * @param amount The amount to rumble. Should be between 0 and 1.
+ */
public void rumble(float amount){
joyInput.setJoyRumble(joyId, amount);
}
+ /**
+ * Assign the mapping name to receive events from the given button index
+ * on the joystick.
+ *
+ * @param mappingName The mapping to receive joystick button events.
+ * @param buttonId The button index.
+ *
+ * @see Joystick#getButtonCount()
+ */
public void assignButton(String mappingName, int buttonId){
if (buttonId < 0 || buttonId >= buttonCount)
throw new IllegalArgumentException();
@@ -38,27 +60,69 @@ public final class Joystick {
inputManager.addMapping(mappingName, new JoyButtonTrigger(joyId, buttonId));
}
+ /**
+ * Assign the mappings to receive events from the given joystick axis.
+ *
+ * @param positiveMapping The mapping to receive events when the axis is negative
+ * @param negativeMapping The mapping to receive events when the axis is positive
+ * @param axisId The axis index.
+ *
+ * @see Joystick#getAxisCount()
+ */
public void assignAxis(String positiveMapping, String negativeMapping, int axisId){
inputManager.addMapping(positiveMapping, new JoyAxisTrigger(joyId, axisId, false));
inputManager.addMapping(negativeMapping, new JoyAxisTrigger(joyId, axisId, true));
}
+ /**
+ * Gets the index number for the X axis on the joystick.
+ *
+ *
E.g. for most gamepads, the left control stick X axis will be returned. + * + * @return The axis index for the X axis for this joystick. + * + * @see Joystick#assignAxis(java.lang.String, java.lang.String, int) + */ public int getXAxisIndex(){ return axisXIndex; } + /** + * Gets the index number for the Y axis on the joystick. + * + *
E.g. for most gamepads, the left control stick Y axis will be returned.
+ *
+ * @return The axis index for the Y axis for this joystick.
+ *
+ * @see Joystick#assignAxis(java.lang.String, java.lang.String, int)
+ */
public int getYAxisIndex(){
return axisYIndex;
}
+ /**
+ * Returns the number of axes on this joystick.
+ *
+ * @return the number of axes on this joystick.
+ */
public int getAxisCount() {
return axisCount;
}
+ /**
+ * Returns the number of buttons on this joystick.
+ *
+ * @return the number of buttons on this joystick.
+ */
public int getButtonCount() {
return buttonCount;
}
+ /**
+ * Returns the name of this joystick.
+ *
+ * @return the name of this joystick.
+ */
public String getName() {
return name;
}
diff --git a/engine/src/core/com/jme3/input/KeyInput.java b/engine/src/core/com/jme3/input/KeyInput.java
index 87fce38ff..a26d23a50 100644
--- a/engine/src/core/com/jme3/input/KeyInput.java
+++ b/engine/src/core/com/jme3/input/KeyInput.java
@@ -519,9 +519,17 @@ public interface KeyInput extends Input {
* delete key.
*/
public static final int KEY_DELETE = 0xD3;
- public static final int KEY_LMETA = 0xDB; /* Left Windows/Option key */
- public static final int KEY_RMETA = 0xDC; /* Right Windows/Option key */
+ /**
+ * Left "Windows" key on PC keyboards, left "Option" key on Mac keyboards.
+ */
+ public static final int KEY_LMETA = 0xDB;
+
+ /**
+ * Right "Windows" key on PC keyboards, right "Option" key on Mac keyboards.
+ */
+ public static final int KEY_RMETA = 0xDC;
+
public static final int KEY_APPS = 0xDD;
/**
* power key.
diff --git a/engine/src/core/com/jme3/input/MouseInput.java b/engine/src/core/com/jme3/input/MouseInput.java
index 9211c529a..f4a1f3694 100644
--- a/engine/src/core/com/jme3/input/MouseInput.java
+++ b/engine/src/core/com/jme3/input/MouseInput.java
@@ -37,21 +37,47 @@ package com.jme3.input;
*/
public interface MouseInput extends Input {
- public static final int AXIS_X = 0,
- AXIS_Y = 1,
- AXIS_WHEEL = 2;
+ /**
+ * Mouse X axis.
+ */
+ public static final int AXIS_X = 0;
+
+ /**
+ * Mouse Y axis.
+ */
+ public static final int AXIS_Y = 1;
+
+ /**
+ * Mouse wheel axis.
+ */
+ public static final int AXIS_WHEEL = 2;
- public static final int BUTTON_LEFT = 0,
- BUTTON_RIGHT = 1,
- BUTTON_MIDDLE = 2;
+ /**
+ * Left mouse button.
+ */
+ public static final int BUTTON_LEFT = 0;
+
+ /**
+ * Right mouse button.
+ */
+ public static final int BUTTON_RIGHT = 1;
+
+ /**
+ * Middle mouse button.
+ */
+ public static final int BUTTON_MIDDLE = 2;
/**
+ * Set whether the mouse cursor should be visible or not.
+ *
* @param visible Whether the mouse cursor should be visible or not.
*/
public void setCursorVisible(boolean visible);
/**
- * @return The number of buttons the mouse has. Typically 3 for most mice.
+ * Returns the number of buttons the mouse has. Typically 3 for most mice.
+ *
+ * @return the number of buttons the mouse has.
*/
public int getButtonCount();
}
diff --git a/engine/src/core/com/jme3/input/RawInputListener.java b/engine/src/core/com/jme3/input/RawInputListener.java
index 38511f222..c118246bd 100644
--- a/engine/src/core/com/jme3/input/RawInputListener.java
+++ b/engine/src/core/com/jme3/input/RawInputListener.java
@@ -32,6 +32,7 @@
package com.jme3.input;
+import com.jme3.input.event.InputEvent;
import com.jme3.input.event.JoyAxisEvent;
import com.jme3.input.event.JoyButtonEvent;
import com.jme3.input.event.KeyInputEvent;
@@ -44,15 +45,61 @@ import com.jme3.input.event.TouchEvent;
*/
public interface RawInputListener {
+ /**
+ * Called before a batch of input will be sent to this
+ * RawInputListener
.
+ */
public void beginInput();
+
+ /**
+ * Called after a batch of input was sent to this
+ * RawInputListener
.
+ *
+ * The listener should set the {@link InputEvent#setConsumed() consumed flag}
+ * on any events that have been consumed either at this call or previous calls.
+ */
public void endInput();
+ /**
+ * Invoked on joystick axis events.
+ *
+ * @param evt
+ */
public void onJoyAxisEvent(JoyAxisEvent evt);
+
+ /**
+ * Invoked on joystick button presses.
+ *
+ * @param evt
+ */
public void onJoyButtonEvent(JoyButtonEvent evt);
+
+ /**
+ * Invoked on mouse movement/motion events.
+ *
+ * @param evt
+ */
public void onMouseMotionEvent(MouseMotionEvent evt);
+
+ /**
+ * Invoked on mouse button events.
+ *
+ * @param evt
+ */
public void onMouseButtonEvent(MouseButtonEvent evt);
+
+ /**
+ * Invoked on keyboard key press or release events.
+ *
+ * @param evt
+ */
public void onKeyEvent(KeyInputEvent evt);
- // Generic Smartphone input event, used by the Android platform currently
+
+ /**
+ * Invoked on touchscreen touch events.
+ *
+ * @param evt
+ */
public void onTouchEvent(TouchEvent evt);
}
diff --git a/engine/src/core/com/jme3/input/TouchInput.java b/engine/src/core/com/jme3/input/TouchInput.java
index 70fb2c910..780ea85ef 100644
--- a/engine/src/core/com/jme3/input/TouchInput.java
+++ b/engine/src/core/com/jme3/input/TouchInput.java
@@ -38,11 +38,15 @@ package com.jme3.input;
public interface TouchInput extends Input {
/**
+ * Set whether mouse events should be generated
+ *
* @param simulate Whether mouse events should be generated
*/
public void setSimulateMouse(boolean simulate);
/**
+ * Set whether keyboard events should be generated
+ *
* @param simulate Whether keyboard events should be generated
*/
public void setSimulateKeyboard(boolean simulate);
diff --git a/engine/src/core/com/jme3/input/controls/ActionListener.java b/engine/src/core/com/jme3/input/controls/ActionListener.java
index 79e2a29c4..8deed3c9a 100644
--- a/engine/src/core/com/jme3/input/controls/ActionListener.java
+++ b/engine/src/core/com/jme3/input/controls/ActionListener.java
@@ -34,9 +34,10 @@ package com.jme3.input.controls;
/**
* ActionListener
is used to receive input events in "digital" style.
+ *
* Generally all button inputs, such as keyboard, mouse button, and joystick button, * will be represented exactly. Analog inputs will be converted into digital. - * + *
* When an action listener is registered to a natively digital input, such as a button,
* the event will be invoked when the button is pressed, with value
* set to true
, and will be invoked again when the button is released,
@@ -45,5 +46,13 @@ package com.jme3.input.controls;
* @author Kirill Vainer
*/
public interface ActionListener extends InputListener {
+
+ /**
+ * Called when an input to which this listener is registered to is invoked.
+ *
+ * @param name The name of the mapping that was invoked
+ * @param isPressed True if the action is "pressed", false otherwise
+ * @param tpf The time per frame value.
+ */
public void onAction(String name, boolean isPressed, float tpf);
}
diff --git a/engine/src/core/com/jme3/input/controls/AnalogListener.java b/engine/src/core/com/jme3/input/controls/AnalogListener.java
index d1481f659..b28796ad4 100644
--- a/engine/src/core/com/jme3/input/controls/AnalogListener.java
+++ b/engine/src/core/com/jme3/input/controls/AnalogListener.java
@@ -34,20 +34,20 @@ package com.jme3.input.controls;
/**
* AnalogListener
is used to receive events of inputs
- * in analog format. As a value from 0 to 1.
+ * in analog format.
*
* @author Kirill Vainer
*/
public interface AnalogListener extends InputListener {
/**
- * Called to notify the implementation that an analog event has occured.
+ * Called to notify the implementation that an analog event has occurred.
*
* The results of KeyTrigger and MouseButtonTrigger events will have tpf
* == value.
*
- * @param name - the name of the analog event
- * @param value - how much the axis changed during this event
- * @param tpf - how much time has passed since the last frame
+ * @param name The name of the mapping that was invoked
+ * @param value Value of the axis, from 0 to 1.
+ * @param tpf The time per frame value.
*/
public void onAnalog(String name, float value, float tpf);
}
diff --git a/engine/src/core/com/jme3/input/controls/JoyAxisTrigger.java b/engine/src/core/com/jme3/input/controls/JoyAxisTrigger.java
index fc60f4044..d67de680e 100644
--- a/engine/src/core/com/jme3/input/controls/JoyAxisTrigger.java
+++ b/engine/src/core/com/jme3/input/controls/JoyAxisTrigger.java
@@ -32,11 +32,17 @@
package com.jme3.input.controls;
+import com.jme3.input.Joystick;
+
public class JoyAxisTrigger implements Trigger {
private final int joyId, axisId;
private final boolean negative;
+ /**
+ * Use {@link Joystick#assignAxis(java.lang.String, java.lang.String, int) }
+ * instead.
+ */
public JoyAxisTrigger(int joyId, int axisId, boolean negative) {
this.joyId = joyId;
this.axisId = axisId;
@@ -48,11 +54,6 @@ public class JoyAxisTrigger implements Trigger {
return (2048 * joyId) | (negative ? 1280 : 1024) | (joyAxis & 0xff);
}
- @Override
- public int hashCode(){
- return joyAxisHash(joyId, axisId, negative);
- }
-
public int getAxisId() {
return axisId;
}
diff --git a/engine/src/core/com/jme3/input/controls/JoyButtonTrigger.java b/engine/src/core/com/jme3/input/controls/JoyButtonTrigger.java
index 9fe454103..d6b8b4328 100644
--- a/engine/src/core/com/jme3/input/controls/JoyButtonTrigger.java
+++ b/engine/src/core/com/jme3/input/controls/JoyButtonTrigger.java
@@ -32,10 +32,18 @@
package com.jme3.input.controls;
+import com.jme3.input.Joystick;
+
public class JoyButtonTrigger implements Trigger {
private final int joyId, buttonId;
+ /**
+ * Use {@link Joystick#assignButton(java.lang.String, int) } instead.
+ *
+ * @param joyId
+ * @param axisId
+ */
public JoyButtonTrigger(int joyId, int axisId) {
this.joyId = joyId;
this.buttonId = axisId;
@@ -46,11 +54,6 @@ public class JoyButtonTrigger implements Trigger {
return (2048 * joyId) | 1536 | (joyButton & 0xff);
}
- @Override
- public int hashCode(){
- return joyButtonHash(joyId, buttonId);
- }
-
public int getAxisId() {
return buttonId;
}
diff --git a/engine/src/core/com/jme3/input/controls/KeyTrigger.java b/engine/src/core/com/jme3/input/controls/KeyTrigger.java
index 7b4dcd262..03f6d3244 100644
--- a/engine/src/core/com/jme3/input/controls/KeyTrigger.java
+++ b/engine/src/core/com/jme3/input/controls/KeyTrigger.java
@@ -32,6 +32,8 @@
package com.jme3.input.controls;
+import com.jme3.input.KeyInput;
+
/**
* A KeyTrigger
is used as a mapping to keyboard keys.
*
@@ -41,6 +43,11 @@ public class KeyTrigger implements Trigger {
private final int keyCode;
+ /**
+ * Create a new KeyTrigger
for the given keycode.
+ *
+ * @param keyCode the code for the key, see constants in {@link KeyInput}.
+ */
public KeyTrigger(int keyCode){
this.keyCode = keyCode;
}
@@ -58,9 +65,4 @@ public class KeyTrigger implements Trigger {
return keyCode & 0xff;
}
- @Override
- public int hashCode(){
- return keyHash(keyCode);
- }
-
}
diff --git a/engine/src/core/com/jme3/input/controls/MouseAxisTrigger.java b/engine/src/core/com/jme3/input/controls/MouseAxisTrigger.java
index 772e8eac6..f13d0a37f 100644
--- a/engine/src/core/com/jme3/input/controls/MouseAxisTrigger.java
+++ b/engine/src/core/com/jme3/input/controls/MouseAxisTrigger.java
@@ -46,6 +46,13 @@ public class MouseAxisTrigger implements Trigger {
private int mouseAxis;
private boolean negative;
+ /**
+ * Create a new MouseAxisTrigger
.
+ *
+ * @param mouseAxis Mouse axis. See AXIS_*** constants in {@link MouseInput}
+ * @param negative True if listen to negative axis events, false if
+ * listen to positive axis events.
+ */
public MouseAxisTrigger(int mouseAxis, boolean negative){
if (mouseAxis < 0 || mouseAxis > 2)
throw new IllegalArgumentException("Mouse Axis must be between 0 and 2");
@@ -72,13 +79,8 @@ public class MouseAxisTrigger implements Trigger {
}
}
- public static final int mouseAxisHash(int mouseAxis, boolean negative){
+ public static int mouseAxisHash(int mouseAxis, boolean negative){
assert mouseAxis >= 0 && mouseAxis <= 255;
return (negative ? 768 : 512) | (mouseAxis & 0xff);
}
-
- @Override
- public int hashCode(){
- return mouseAxisHash(mouseAxis, negative);
- }
}
diff --git a/engine/src/core/com/jme3/input/controls/MouseButtonTrigger.java b/engine/src/core/com/jme3/input/controls/MouseButtonTrigger.java
index b1ecb0cc3..fb9483660 100644
--- a/engine/src/core/com/jme3/input/controls/MouseButtonTrigger.java
+++ b/engine/src/core/com/jme3/input/controls/MouseButtonTrigger.java
@@ -44,6 +44,12 @@ public class MouseButtonTrigger implements Trigger {
private final int mouseButton;
+ /**
+ * Create a new MouseButtonTrigger
to receive mouse button events.
+ *
+ * @param mouseButton Mouse button index. See BUTTON_*** constants in
+ * {@link MouseInput}.
+ */
public MouseButtonTrigger(int mouseButton) {
if (mouseButton < 0)
throw new IllegalArgumentException("Mouse Button cannot be negative");
diff --git a/engine/src/core/com/jme3/input/controls/TouchListener.java b/engine/src/core/com/jme3/input/controls/TouchListener.java
index 92dd03141..21c100fcb 100644
--- a/engine/src/core/com/jme3/input/controls/TouchListener.java
+++ b/engine/src/core/com/jme3/input/controls/TouchListener.java
@@ -41,9 +41,9 @@ import com.jme3.input.event.TouchEvent;
*/
public interface TouchListener extends InputListener {
/**
- * @param name - the name of the event
- * @param event - the touch event itself
- * @param tpf - how much time has passed since the last frame
+ * @param name the name of the event
+ * @param event the touch event
+ * @param tpf how much time has passed since the last frame
*/
public void onTouch(String name, TouchEvent event, float tpf);
}
\ No newline at end of file
diff --git a/engine/src/core/com/jme3/input/controls/Trigger.java b/engine/src/core/com/jme3/input/controls/Trigger.java
index dde8ebac4..0eea7835b 100644
--- a/engine/src/core/com/jme3/input/controls/Trigger.java
+++ b/engine/src/core/com/jme3/input/controls/Trigger.java
@@ -42,12 +42,4 @@ public interface Trigger {
* @return A user friendly name for the trigger.
*/
public String getName();
-
- /**
- * @return Hash-code for the trigger, can map into the entire
- * 32 bit space, and there must be no two different triggers with same
- * hash-code.
- */
- @Override
- public int hashCode();
}
diff --git a/engine/src/core/com/jme3/input/dummy/DummyInput.java b/engine/src/core/com/jme3/input/dummy/DummyInput.java
index 21097b527..3ecb509cd 100644
--- a/engine/src/core/com/jme3/input/dummy/DummyInput.java
+++ b/engine/src/core/com/jme3/input/dummy/DummyInput.java
@@ -35,6 +35,12 @@ package com.jme3.input.dummy;
import com.jme3.input.Input;
import com.jme3.input.RawInputListener;
+/**
+ * DummyInput as an implementation of Input
that raises no
+ * input events.
+ *
+ * @author Kirill Vainer.
+ */
public class DummyInput implements Input {
protected boolean inited = false;
diff --git a/engine/src/core/com/jme3/input/dummy/DummyKeyInput.java b/engine/src/core/com/jme3/input/dummy/DummyKeyInput.java
index 41d31b0a7..4d4efcb5a 100644
--- a/engine/src/core/com/jme3/input/dummy/DummyKeyInput.java
+++ b/engine/src/core/com/jme3/input/dummy/DummyKeyInput.java
@@ -34,6 +34,12 @@ package com.jme3.input.dummy;
import com.jme3.input.KeyInput;
+/**
+ * DummyKeyInput as an implementation of KeyInput
that raises no
+ * input events.
+ *
+ * @author Kirill Vainer.
+ */
public class DummyKeyInput extends DummyInput implements KeyInput {
public int getKeyCount() {
diff --git a/engine/src/core/com/jme3/input/dummy/DummyMouseInput.java b/engine/src/core/com/jme3/input/dummy/DummyMouseInput.java
index 155640023..b86206160 100644
--- a/engine/src/core/com/jme3/input/dummy/DummyMouseInput.java
+++ b/engine/src/core/com/jme3/input/dummy/DummyMouseInput.java
@@ -34,6 +34,12 @@ package com.jme3.input.dummy;
import com.jme3.input.MouseInput;
+/**
+ * DummyMouseInput as an implementation of MouseInput
that raises no
+ * input events.
+ *
+ * @author Kirill Vainer.
+ */
public class DummyMouseInput extends DummyInput implements MouseInput {
public void setCursorVisible(boolean visible) {
diff --git a/engine/src/core/com/jme3/input/event/InputEvent.java b/engine/src/core/com/jme3/input/event/InputEvent.java
index 981a51995..bb3867df4 100644
--- a/engine/src/core/com/jme3/input/event/InputEvent.java
+++ b/engine/src/core/com/jme3/input/event/InputEvent.java
@@ -32,34 +32,51 @@
package com.jme3.input.event;
+import com.jme3.input.Input;
+
/**
* An abstract input event.
*/
public abstract class InputEvent {
- /**
- * Time in ticks when the event occured.
- */
protected long time;
- /**
- * If the input event has been consumed, meaning it is no longer valid
- * and should not be forwarded to input listeners.
- */
+
protected boolean consumed = false;
+ /**
+ * The time when the event occurred. This is relative to
+ * {@link Input#getInputTimeNanos() }.
+ *
+ * @return time when the event occured
+ */
public long getTime(){
return time;
}
+ /**
+ * Set the time when the event occurred.
+ *
+ * @param time time when the event occurred.
+ */
public void setTime(long time){
this.time = time;
}
+ /**
+ * Returns true if the input event has been consumed, meaning it is no longer valid
+ * and should not be forwarded to input listeners.
+ *
+ * @return true if the input event has been consumed
+ */
public boolean isConsumed() {
return consumed;
}
+ /**
+ * Call to mark this input event as consumed, meaning it is no longer valid
+ * and should not be forwarded to input listeners.
+ */
public void setConsumed() {
this.consumed = true;
}
diff --git a/engine/src/core/com/jme3/input/event/JoyAxisEvent.java b/engine/src/core/com/jme3/input/event/JoyAxisEvent.java
index 3115a6585..2896b0bbf 100644
--- a/engine/src/core/com/jme3/input/event/JoyAxisEvent.java
+++ b/engine/src/core/com/jme3/input/event/JoyAxisEvent.java
@@ -32,6 +32,14 @@
package com.jme3.input.event;
+import com.jme3.input.InputManager;
+import com.jme3.input.Joystick;
+
+/**
+ * Joystick axis event.
+ *
+ * @author Kirill Vainer
+ */
public class JoyAxisEvent extends InputEvent {
private int joyIdx;
@@ -44,18 +52,34 @@ public class JoyAxisEvent extends InputEvent {
this.value = value;
}
+ /**
+ * Returns the joystick axis index.
+ *
+ * @return joystick axis index.
+ *
+ * @see Joystick#assignAxis(java.lang.String, java.lang.String, int)
+ */
public int getAxisIndex() {
return axisIdx;
}
+ /**
+ * The joystick index.
+ *
+ * @return joystick index.
+ *
+ * @see InputManager#getJoysticks()
+ */
public int getJoyIndex() {
return joyIdx;
}
+ /**
+ * The value of the axis.
+ *
+ * @return value of the axis.
+ */
public float getValue() {
return value;
}
-
-
-
}
diff --git a/engine/src/core/com/jme3/input/event/JoyButtonEvent.java b/engine/src/core/com/jme3/input/event/JoyButtonEvent.java
index 9ffc27c1a..906847f1a 100644
--- a/engine/src/core/com/jme3/input/event/JoyButtonEvent.java
+++ b/engine/src/core/com/jme3/input/event/JoyButtonEvent.java
@@ -32,6 +32,13 @@
package com.jme3.input.event;
+import com.jme3.input.Joystick;
+
+/**
+ * Joystick button event.
+ *
+ * @author Kirill Vainer
+ */
public class JoyButtonEvent extends InputEvent {
private int joyIdx;
@@ -44,14 +51,35 @@ public class JoyButtonEvent extends InputEvent {
this.pressed = pressed;
}
+ /**
+ * The button index.
+ *
+ * @return button index.
+ *
+ * @see Joystick#assignButton(java.lang.String, int)
+ */
public int getButtonIndex() {
return btnIdx;
}
+ /**
+ * The joystick index.
+ *
+ * @return joystick index.
+ *
+ * @see InputManager#getJoysticks()
+ */
public int getJoyIndex() {
return joyIdx;
}
+ /**
+ * Returns true if the event was a button press,
+ * returns false if the event was a button release.
+ *
+ * @return true if the event was a button press,
+ * false if the event was a button release.
+ */
public boolean isPressed() {
return pressed;
}
diff --git a/engine/src/core/com/jme3/input/event/KeyInputEvent.java b/engine/src/core/com/jme3/input/event/KeyInputEvent.java
index 498dbaacd..403635cd6 100644
--- a/engine/src/core/com/jme3/input/event/KeyInputEvent.java
+++ b/engine/src/core/com/jme3/input/event/KeyInputEvent.java
@@ -32,6 +32,13 @@
package com.jme3.input.event;
+import com.jme3.input.KeyInput;
+
+/**
+ * Keyboard key event.
+ *
+ * @author Kirill Vainer
+ */
public class KeyInputEvent extends InputEvent {
private int keyCode;
@@ -46,26 +53,54 @@ public class KeyInputEvent extends InputEvent {
this.repeating = repeating;
}
+ /**
+ * Returns the key character. Returns 0 if the key has no character.
+ *
+ * @return the key character. 0 if the key has no character.
+ */
public char getKeyChar() {
return keyChar;
}
+ /**
+ * The key code.
+ *
+ * See KEY_*** constants in {@link KeyInput}. + * + * @return key code. + */ public int getKeyCode() { return keyCode; } + /** + * Returns true if this event is key press, false is it was a key release. + * + * @return true if this event is key press, false is it was a key release. + */ public boolean isPressed() { return pressed; } + /** + * Returns true if this event is a repeat event. Not used anymore. + * + * @return true if this event is a repeat event + */ public boolean isRepeating() { return repeating; } + /** + * Returns true if this event is a key release, false if it was a key press. + * + * @return true if this event is a key release, false if it was a key press. + */ public boolean isReleased() { return !pressed; } + @Override public String toString(){ String str = "Key(CODE="+keyCode; if (keyChar != '\0') diff --git a/engine/src/core/com/jme3/input/event/MouseButtonEvent.java b/engine/src/core/com/jme3/input/event/MouseButtonEvent.java index a10a8293d..990003c45 100644 --- a/engine/src/core/com/jme3/input/event/MouseButtonEvent.java +++ b/engine/src/core/com/jme3/input/event/MouseButtonEvent.java @@ -32,12 +32,17 @@ package com.jme3.input.event; +/** + * Mouse button press/release event. + * + * @author Kirill Vainer + */ public class MouseButtonEvent extends InputEvent { - int x; - int y; - int btnIndex; - boolean pressed; + private int x; + private int y; + private int btnIndex; + private boolean pressed; public MouseButtonEvent(int btnIndex, boolean pressed, int x, int y) { this.btnIndex = btnIndex; @@ -46,26 +51,52 @@ public class MouseButtonEvent extends InputEvent { this.y = y; } + /** + * Returns the mouse button index. + *
+ * See constants in {@link MouseInput}. + * + * @return the mouse button index. + */ public int getButtonIndex() { return btnIndex; } + /** + * Returns true if the mouse button was pressed, false if it was released. + * + * @return true if the mouse button was pressed, false if it was released. + */ public boolean isPressed() { return pressed; } + /** + * Returns true if the mouse button was released, false if it was pressed. + * + * @return true if the mouse button was released, false if it was pressed. + */ public boolean isReleased() { return !pressed; } + /** + * The X coordinate of the mouse when the event was generated. + * @return X coordinate of the mouse when the event was generated. + */ public int getX() { return x; } + /** + * The Y coordinate of the mouse when the event was generated. + * @return Y coordinate of the mouse when the event was generated. + */ public int getY() { return y; } + @Override public String toString(){ String str = "MouseButton(BTN="+btnIndex; if (pressed){ diff --git a/engine/src/core/com/jme3/input/event/MouseMotionEvent.java b/engine/src/core/com/jme3/input/event/MouseMotionEvent.java index e120e4bd9..7439eccb5 100644 --- a/engine/src/core/com/jme3/input/event/MouseMotionEvent.java +++ b/engine/src/core/com/jme3/input/event/MouseMotionEvent.java @@ -32,8 +32,13 @@ package com.jme3.input.event; -import com.jme3.input.*; - +/** + * Mouse movement event. + *
+ * Movement events are only generated if the mouse is on-screen.
+ *
+ * @author Kirill Vainer
+ */
public class MouseMotionEvent extends InputEvent {
private int x, y, dx, dy, wheel, deltaWheel;
@@ -47,26 +52,52 @@ public class MouseMotionEvent extends InputEvent {
this.deltaWheel = deltaWheel;
}
+ /**
+ * The change in wheel rotation.
+ *
+ * @return change in wheel rotation.
+ */
public int getDeltaWheel() {
return deltaWheel;
}
+ /**
+ * The change in X coordinate
+ * @return change in X coordinate
+ */
public int getDX() {
return dx;
}
+ /**
+ * The change in Y coordinate
+ *
+ * @return change in Y coordinate
+ */
public int getDY() {
return dy;
}
+ /**
+ * Current mouse wheel value
+ * @return Current mouse wheel value
+ */
public int getWheel() {
return wheel;
}
+ /**
+ * Current X coordinate
+ * @return Current X coordinate
+ */
public int getX() {
return x;
}
+ /**
+ * Current Y coordinate
+ * @return Current Y coordinate
+ */
public int getY() {
return y;
}
diff --git a/engine/src/core/com/jme3/input/event/TouchEvent.java b/engine/src/core/com/jme3/input/event/TouchEvent.java
index 1df0efeeb..538064142 100644
--- a/engine/src/core/com/jme3/input/event/TouchEvent.java
+++ b/engine/src/core/com/jme3/input/event/TouchEvent.java
@@ -29,51 +29,43 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package com.jme3.input.event;
-import com.jme3.input.event.InputEvent;
import com.jme3.math.Vector2f;
/**
* TouchEvent
represents a single event from multi-touch input devices
* @author larynx
*/
-public class TouchEvent extends InputEvent
-{
- public static enum Type
- {
+public class TouchEvent extends InputEvent {
+
+ public enum Type {
+
/**
* Touch down event, fields: posX, posY, pressure
*/
DOWN,
-
/**
* Move/Drag event, fields: posX, posY, deltaX, deltaY, pressure
*/
MOVE,
-
/**
* Touch up event, fields: posX, posY, pressure
*/
UP,
-
/**
* Virtual keyboard or hardware key event down, fields: keyCode, characters
*/
KEY_DOWN,
-
/**
* Virtual keyboard or hardware key event up, fields: keyCode, characters
*/
KEY_UP,
-
// Single finger gestures
FLING,
TAP,
DOUBLETAP,
LONGPRESSED,
-
// Two finger scale events
/**
* Two finger scale event start, fields: posX/posY = getFocusX/Y, scaleFactor, scaleSpan
@@ -87,24 +79,19 @@ public class TouchEvent extends InputEvent
* Two finger scale event end, fields: posX/posY = getFocusX/Y, scaleFactor, scaleSpan
*/
SCALE_END,
-
/**
* Scroll event
*/
SCROLL,
-
/**
* The user has performed a down MotionEvent and not performed a move or up yet. This event is commonly used to provide visual feedback to the user to let them know that their action has been recognized i.e. highlight an element.
*/
SHOWPRESS,
-
// Others
OUTSIDE,
- IDLE}
-
+ IDLE
+ }
private Type type = Type.IDLE;
-
-
private int pointerId;
private float posX;
private float posY;
@@ -115,28 +102,23 @@ public class TouchEvent extends InputEvent
// Used only with KEY* events
private int keyCode;
private String characters;
-
// Used only with SCALE* events
private float scaleFactor;
private float scaleSpan;
-
- public TouchEvent()
- {
+ public TouchEvent() {
set(Type.IDLE, 0f, 0f, 0f, 0f);
}
- public TouchEvent(Type type, float x, float y, float deltax, float deltay)
- {
+
+ public TouchEvent(Type type, float x, float y, float deltax, float deltay) {
set(type, x, y, deltax, deltay);
}
-
- public void set(Type type)
- {
+
+ public void set(Type type) {
set(type, 0f, 0f, 0f, 0f);
}
-
- public void set(Type type, float x, float y, float deltax, float deltay)
- {
+
+ public void set(Type type, float x, float y, float deltax, float deltay) {
this.type = type;
this.posX = x;
this.posY = y;
@@ -145,29 +127,28 @@ public class TouchEvent extends InputEvent
consumed = false;
}
-
- public Type getType()
- {
+ /**
+ * Returns the type of touch event.
+ *
+ * @return the type of touch event.
+ */
+ public Type getType() {
return type;
}
- public float getX()
- {
+ public float getX() {
return posX;
}
- public float getY()
- {
+ public float getY() {
return posY;
}
- public float getDeltaX()
- {
+ public float getDeltaX() {
return deltaX;
}
- public float getDeltaY()
- {
+ public float getDeltaY() {
return deltaY;
}
@@ -186,48 +167,39 @@ public class TouchEvent extends InputEvent
return pointerId;
}
- public void setPointerId(int pointerId)
- {
+ public void setPointerId(int pointerId) {
this.pointerId = pointerId;
}
- public int getKeyCode()
- {
+ public int getKeyCode() {
return keyCode;
}
-
- public void setKeyCode(int keyCode)
- {
+
+ public void setKeyCode(int keyCode) {
this.keyCode = keyCode;
}
-
- public String getCharacters()
- {
+
+ public String getCharacters() {
return characters;
}
-
- public void setCharacters(String characters)
- {
+
+ public void setCharacters(String characters) {
this.characters = characters;
}
- public float getScaleFactor()
- {
+ public float getScaleFactor() {
return scaleFactor;
}
- public void setScaleFactor(float scaleFactor)
- {
+ public void setScaleFactor(float scaleFactor) {
this.scaleFactor = scaleFactor;
}
- public float getScaleSpan()
- {
+ public float getScaleSpan() {
return scaleSpan;
}
- public void setScaleSpan(float scaleSpan)
- {
+ public void setScaleSpan(float scaleSpan) {
this.scaleSpan = scaleSpan;
}
}
diff --git a/engine/src/core/com/jme3/input/package.html b/engine/src/core/com/jme3/input/package.html
new file mode 100644
index 000000000..998a22a4b
--- /dev/null
+++ b/engine/src/core/com/jme3/input/package.html
@@ -0,0 +1,38 @@
+
+
+
+
com.jme3.input
package is used for all input handling in
+jMonkeyEngine. User code should use the {@link com.jme3.input.InputManager} to register
+for and receive input events. The InputManager
can be
+retrieved for an application by using {@link com.jme3.app.Application#getInputManager()}.
+
+
+Using ActionListener:
+
+// Retrieve an input manager for the application "app"
+
+
+
+InputManager inputManager = app.getInputManager();
+
+// Adds a new mapping "PrintHello" that will be invoked when the Return/Enter key is pressed
+inputManager.addMapping("PrintHello", new KeyTrigger(KeyInput.KEY_RETURN));
+// Adds a new ActionListener to get an event when enter is pressed.
+inputManager.addListener(new ActionListener() {
+ public void onAction(String name, boolean isPressed, float tpf) {
+ // Only invoke the event when the mapping is "PrintHello"
+ // and isPressed is true, meaning it was a key press and not release.
+ if (name.equals("PrintHello") && isPressed){
+ System.out.println("Hello!");
+ }
+ }
+}, "PrintHello");
+