public class InputMapper
extends java.lang.Object
The design of InputMapper is setup to better handle the case where an application wants to allow the user to configure their own input mappings through a GUI... and specifically where the application may allow multiple separately configured inputs to trigger the same set of functions. For example, an application may map a joystick axis, the mouse wheel, and/or one or two keys to a specific function.
Also, any logical FunctionId can be treated as both an analog input or a trinary state input. Key inputs can trigger analog functions and analog axes can trigger Positive, Off, Negative state transitions. For example, the key 'A' can be mapped to a "move" function and 'S' can be mapped to the "move" function as being inverted. 'A' and 'S' will then trigger analog values of 1.0 and -1.0 respectively. The "move" function can then also be mapped to an analog joystick axis and the code remains the same. On the other end, if a StateFunctionListener is registered with to a logical FunctionId being fed by an analog Axis then it will see Positive, Negative, and Off as the axis transitions from greater than 0, less than 0, and 0, respectively. (A small neutrality threshold is effected to make extremely small analog values operate as 0.)
When registering inputs, a series of combinations can be included that must all be present to invoke the function. As an example, "mouse wheel" and "ctrl + mouse wheel" can be treated as two separate function triggers.
Entire groups of logical functions can be enabled and disabled by their groups. Multiple groups can be active at any given time and only active groups are elegible to receive input.
Modifier and Type | Class and Description |
---|---|
protected class |
InputMapper.FunctionListeners |
protected class |
InputMapper.InputObserver |
static interface |
InputMapper.Mapping
Represents a specific control mapping such that it can be reconfigured.
|
protected class |
InputMapper.StateGroup |
protected class |
InputMapper.StateGroupIndex |
Constructor and Description |
---|
InputMapper(com.jme3.input.InputManager inputManager) |
Modifier and Type | Method and Description |
---|---|
protected void |
activate(InputMapper.StateGroup g) |
void |
activateGroup(java.lang.String group) |
void |
addAnalogListener(AnalogFunctionListener l,
FunctionId... functions) |
void |
addDelegate(FunctionId func,
java.lang.Object target,
java.lang.String methodName) |
void |
addDelegate(FunctionId func,
java.lang.Object target,
java.lang.String methodName,
boolean passArgument) |
void |
addInputConfigListener(InputConfigListener l)
Adds a listener that will be notified when input mappings are
added, changed, or removed.
|
protected InputMapper.Mapping |
addMapping(FunctionId function,
double scale,
java.lang.Object primary,
java.lang.Object... modifiers) |
void |
addStateListener(StateFunctionListener l,
FunctionId... functions) |
protected void |
deactivate(InputMapper.StateGroup g) |
void |
deactivateGroup(java.lang.String group) |
protected InputMapper.StateGroup |
findMapping(FunctionId function,
java.lang.Object primary,
java.lang.Object... modifiers) |
protected void |
fireMappingAdded(InputMapper.Mapping m) |
protected void |
fireMappingChanged(InputMapper.Mapping m) |
protected void |
fireMappingRemoved(InputMapper.Mapping m) |
java.util.Set<FunctionId> |
getFunctionIds()
Returns a list of all FunctionIds that have listeners registered or
inputs mapped.
|
protected InputMapper.FunctionListeners |
getFunctionListeners(FunctionId f,
boolean create) |
protected InputMapper.StateGroupIndex |
getIndex(java.lang.Object state,
boolean create) |
InputMapper.Mapping |
getMapping(FunctionId function,
java.lang.Object primary,
java.lang.Object... modifiers) |
java.util.Set<InputMapper.Mapping> |
getMappings(FunctionId function)
Returns all of the different input mappings for a particular function ID.
|
boolean |
hasMappings(FunctionId function)
Returns true if the specified function has any input mappings.
|
InputMapper.Mapping |
map(FunctionId function,
Axis axis,
java.lang.Object... pressed) |
InputMapper.Mapping |
map(FunctionId function,
Button button,
java.lang.Object... pressed) |
InputMapper.Mapping |
map(FunctionId function,
InputState bias,
Axis axis,
java.lang.Object... pressed) |
InputMapper.Mapping |
map(FunctionId function,
InputState bias,
Button button,
java.lang.Object... pressed) |
InputMapper.Mapping |
map(FunctionId function,
InputState bias,
int mainKeyCode,
java.lang.Object... pressed) |
InputMapper.Mapping |
map(FunctionId function,
int mainKeyCode,
java.lang.Object... pressed) |
protected void |
mapGamepad(InputDevice device,
com.jme3.input.Joystick j) |
protected void |
mapJoystick(com.jme3.input.Joystick j) |
protected void |
notifyStateChanged(FunctionId function,
InputState value) |
protected void |
notifyValueActive(FunctionId function,
double value) |
void |
release() |
void |
removeAnalogListener(AnalogFunctionListener l,
FunctionId... functions) |
void |
removeDelegate(FunctionId func,
java.lang.Object target,
java.lang.String methodName) |
void |
removeInputConfigListener(InputConfigListener l)
Removes a previously registered input config listener.
|
void |
removeMapping(FunctionId function,
java.lang.Object primary,
java.lang.Object... modifiers) |
void |
removeMapping(InputMapper.Mapping mapping) |
void |
removeStateListener(StateFunctionListener l,
FunctionId... functions) |
void |
update() |
protected InputState |
valueToState(double val) |
public void activateGroup(java.lang.String group)
public void deactivateGroup(java.lang.String group)
public void release()
protected void mapJoystick(com.jme3.input.Joystick j)
protected void mapGamepad(InputDevice device, com.jme3.input.Joystick j)
protected InputMapper.StateGroupIndex getIndex(java.lang.Object state, boolean create)
protected InputMapper.FunctionListeners getFunctionListeners(FunctionId f, boolean create)
public InputMapper.Mapping map(FunctionId function, Axis axis, java.lang.Object... pressed)
public InputMapper.Mapping map(FunctionId function, InputState bias, Axis axis, java.lang.Object... pressed)
public InputMapper.Mapping map(FunctionId function, Button button, java.lang.Object... pressed)
public InputMapper.Mapping map(FunctionId function, InputState bias, Button button, java.lang.Object... pressed)
public InputMapper.Mapping map(FunctionId function, int mainKeyCode, java.lang.Object... pressed)
public InputMapper.Mapping map(FunctionId function, InputState bias, int mainKeyCode, java.lang.Object... pressed)
protected InputMapper.Mapping addMapping(FunctionId function, double scale, java.lang.Object primary, java.lang.Object... modifiers)
protected InputMapper.StateGroup findMapping(FunctionId function, java.lang.Object primary, java.lang.Object... modifiers)
public InputMapper.Mapping getMapping(FunctionId function, java.lang.Object primary, java.lang.Object... modifiers)
public void removeMapping(FunctionId function, java.lang.Object primary, java.lang.Object... modifiers)
public void removeMapping(InputMapper.Mapping mapping)
public boolean hasMappings(FunctionId function)
public java.util.Set<FunctionId> getFunctionIds()
public java.util.Set<InputMapper.Mapping> getMappings(FunctionId function)
public void addStateListener(StateFunctionListener l, FunctionId... functions)
public void removeStateListener(StateFunctionListener l, FunctionId... functions)
public void addAnalogListener(AnalogFunctionListener l, FunctionId... functions)
public void removeAnalogListener(AnalogFunctionListener l, FunctionId... functions)
public void addDelegate(FunctionId func, java.lang.Object target, java.lang.String methodName)
public void addDelegate(FunctionId func, java.lang.Object target, java.lang.String methodName, boolean passArgument)
public void removeDelegate(FunctionId func, java.lang.Object target, java.lang.String methodName)
protected void activate(InputMapper.StateGroup g)
protected void deactivate(InputMapper.StateGroup g)
public void update()
protected void notifyStateChanged(FunctionId function, InputState value)
protected void notifyValueActive(FunctionId function, double value)
protected InputState valueToState(double val)
public void addInputConfigListener(InputConfigListener l)
public void removeInputConfigListener(InputConfigListener l)
protected void fireMappingAdded(InputMapper.Mapping m)
protected void fireMappingRemoved(InputMapper.Mapping m)
protected void fireMappingChanged(InputMapper.Mapping m)