Address PR comments

This commit is contained in:
Malin E
2021-11-30 10:46:44 +01:00
parent 2753de1ab9
commit 8299e4db22
6 changed files with 67 additions and 62 deletions
+36 -37
View File
@@ -56,15 +56,14 @@ void JoystickCameraStates::updateStateFromInput(
continue;
}
JoystickCameraState* joystickCameraState =
getJoystickCameraState(joystickInputState.name);
JoystickCameraState* joystick = joystickCameraState(joystickInputState.name);
if (!joystickCameraState) {
if (!joystick) {
continue;
}
for (int i = 0; i < JoystickInputState::MaxAxes; ++i) {
AxisInformation t = joystickCameraState->axisMapping[i];
AxisInformation t = joystick->axisMapping[i];
if (t.type == AxisType::None) {
continue;
}
@@ -73,13 +72,13 @@ void JoystickCameraStates::updateStateFromInput(
float value = rawValue;
if (t.isSticky) {
value = rawValue - joystickCameraState->prevAxisValues[i];
joystickCameraState->prevAxisValues[i] = rawValue;
value = rawValue - joystick->prevAxisValues[i];
joystick->prevAxisValues[i] = rawValue;
}
if ((t.joystickType == JoystickType::JoystickLike &&
std::fabs(value) <= t.deadzone) ||
(t.joystickType == JoystickType::TriggerLike && value <= -1 + t.deadzone))
std::abs(value) <= t.deadzone) ||
(t.joystickType == JoystickType::TriggerLike && value <= -1.f + t.deadzone))
{
continue;
}
@@ -151,8 +150,8 @@ void JoystickCameraStates::updateStateFromInput(
localRotation.second.y += value;
break;
case AxisType::Property:
std::string script = "openspace.setPropertyValue(\"" +
t.propertyUri + "\", " + std::to_string(value) + ");";
std::string script = fmt::format("openspace.setPropertyValue('{}', {});",
t.propertyUri, value);
global::scriptEngine->queueScript(
script,
@@ -163,7 +162,7 @@ void JoystickCameraStates::updateStateFromInput(
}
for (int i = 0; i < JoystickInputState::MaxButtons; ++i) {
auto itRange = joystickCameraState->buttonMapping.equal_range(i);
auto itRange = joystick->buttonMapping.equal_range(i);
for (auto it = itRange.first; it != itRange.second; ++it) {
bool active = global::joystickInputStates->button(
joystickInputState.name,
@@ -217,7 +216,7 @@ void JoystickCameraStates::updateStateFromInput(
}
}
void JoystickCameraStates::setAxisMapping(const std::string& joystickName,
void JoystickCameraStates::setAxisMapping(std::string joystickName,
int axis, AxisType mapping,
AxisInvert shouldInvert,
JoystickType joystickType,
@@ -241,9 +240,9 @@ void JoystickCameraStates::setAxisMapping(const std::string& joystickName,
global::joystickInputStates->axis(joystickName, axis);
}
void JoystickCameraStates::setAxisMappingProperty(const std::string& joystickName,
void JoystickCameraStates::setAxisMappingProperty(std::string joystickName,
int axis,
const std::string& propertyUri,
std::string propertyUri,
float min, float max,
AxisInvert shouldInvert,
bool isRemote)
@@ -270,13 +269,13 @@ JoystickCameraStates::AxisInformation JoystickCameraStates::axisMapping(
const std::string& joystickName,
int axis) const
{
const JoystickCameraState* joystickCameraState = getJoystickCameraState(joystickName);
if (!joystickCameraState) {
const JoystickCameraState* joystick = joystickCameraState(joystickName);
if (!joystick) {
JoystickCameraStates::AxisInformation dummy;
return dummy;
}
return joystickCameraState->axisMapping[axis];
return joystick->axisMapping[axis];
}
void JoystickCameraStates::setDeadzone(const std::string& joystickName, int axis,
@@ -291,12 +290,12 @@ void JoystickCameraStates::setDeadzone(const std::string& joystickName, int axis
}
float JoystickCameraStates::deadzone(const std::string& joystickName, int axis) const {
const JoystickCameraState* joystickCameraState = getJoystickCameraState(joystickName);
if (!joystickCameraState) {
return 0.0f;
const JoystickCameraState* joystick = joystickCameraState(joystickName);
if (!joystick) {
return 0.f;
}
return joystickCameraState->axisMapping[axis].deadzone;
return joystick->axisMapping[axis].deadzone;
}
void JoystickCameraStates::bindButtonCommand(const std::string& joystickName,
@@ -319,18 +318,18 @@ void JoystickCameraStates::bindButtonCommand(const std::string& joystickName,
void JoystickCameraStates::clearButtonCommand(const std::string& joystickName,
int button)
{
JoystickCameraState* joystickCameraState = getJoystickCameraState(joystickName);
if (!joystickCameraState) {
JoystickCameraState* joystick = joystickCameraState(joystickName);
if (!joystick) {
return;
}
for (auto it = joystickCameraState->buttonMapping.begin();
it != joystickCameraState->buttonMapping.end(); )
for (auto it = joystick->buttonMapping.begin();
it != joystick->buttonMapping.end(); )
{
// If the current iterator is the button that we are looking for, delete it
// (std::multimap::erase will return the iterator to the next element for us)
if (it->first == button) {
it = joystickCameraState->buttonMapping.erase(it);
it = joystick->buttonMapping.erase(it);
}
else {
++it;
@@ -343,19 +342,19 @@ std::vector<std::string> JoystickCameraStates::buttonCommand(
int button) const
{
std::vector<std::string> result;
const JoystickCameraState* joystickCameraState = getJoystickCameraState(joystickName);
if (!joystickCameraState) {
const JoystickCameraState* joystick = joystickCameraState(joystickName);
if (!joystick) {
return result;
}
auto itRange = joystickCameraState->buttonMapping.equal_range(button);
auto itRange = joystick->buttonMapping.equal_range(button);
for (auto it = itRange.first; it != itRange.second; ++it) {
result.push_back(it->second.command);
}
return result;
}
JoystickCameraStates::JoystickCameraState* JoystickCameraStates::getJoystickCameraState(
JoystickCameraStates::JoystickCameraState* JoystickCameraStates::joystickCameraState(
const std::string& joystickName)
{
for (JoystickCameraState& joystickCameraState : _joystickCameraStates) {
@@ -368,7 +367,7 @@ JoystickCameraStates::JoystickCameraState* JoystickCameraStates::getJoystickCame
}
const JoystickCameraStates::JoystickCameraState*
JoystickCameraStates::getJoystickCameraState(const std::string& joystickName) const
JoystickCameraStates::joystickCameraState(const std::string& joystickName) const
{
for (const JoystickCameraState& joystickCameraState : _joystickCameraStates) {
if (joystickCameraState.joystickName == joystickName) {
@@ -381,14 +380,14 @@ const JoystickCameraStates::JoystickCameraState*
}
JoystickCameraStates::JoystickCameraState*
JoystickCameraStates::findOrAddJoystickCameraState(const std::string& joystickName)
JoystickCameraStates::findOrAddJoystickCameraState(const std::string& joystickName)
{
JoystickCameraState* joystickCameraState = getJoystickCameraState(joystickName);
if (!joystickCameraState) {
JoystickCameraState* joystick = joystickCameraState(joystickName);
if (!joystick) {
if (_joystickCameraStates.size() < JoystickInputStates::MaxNumJoysticks) {
_joystickCameraStates.push_back(JoystickCameraState());
joystickCameraState = &_joystickCameraStates.back();
joystickCameraState->joystickName = joystickName;
joystick = &_joystickCameraStates.back();
joystick->joystickName = joystickName;
}
else {
LWARNING(fmt::format("Cannot add more joysticks, only {} joysticks are "
@@ -396,7 +395,7 @@ JoystickCameraStates::JoystickCameraState*
return nullptr;
}
}
return joystickCameraState;
return joystick;
}
+3 -3
View File
@@ -36,7 +36,7 @@ namespace openspace::interaction {
float JoystickInputStates::axis(const std::string& joystickName, int axis) const {
ghoul_precondition(axis >= 0, "axis must be 0 or positive");
if(joystickName.empty()) {
if (joystickName.empty()) {
float res = std::accumulate(
begin(),
end(),
@@ -63,7 +63,7 @@ float JoystickInputStates::axis(const std::string& joystickName, int axis) const
}
if (!state) {
return 0.0f;
return 0.f;
}
return state->axes[axis];
@@ -72,7 +72,7 @@ float JoystickInputStates::axis(const std::string& joystickName, int axis) const
bool JoystickInputStates::button(const std::string& joystickName, int button, JoystickAction action) const {
ghoul_precondition(button >= 0, "button must be 0 or positive");
if(joystickName.empty()) {
if (joystickName.empty()) {
bool res = std::any_of(
begin(),
end(),
+6 -6
View File
@@ -498,7 +498,7 @@ void NavigationHandler::loadNavigationState(const std::string& filepath) {
}
}
void NavigationHandler::setJoystickAxisMapping(const std::string& joystickName, int axis,
void NavigationHandler::setJoystickAxisMapping(std::string joystickName, int axis,
JoystickCameraStates::AxisType mapping,
JoystickCameraStates::AxisInvert shouldInvert,
JoystickCameraStates::JoystickType joystickType,
@@ -506,7 +506,7 @@ void NavigationHandler::setJoystickAxisMapping(const std::string& joystickName,
double sensitivity)
{
_orbitalNavigator.joystickStates().setAxisMapping(
joystickName,
std::move(joystickName),
axis,
mapping,
shouldInvert,
@@ -516,17 +516,17 @@ void NavigationHandler::setJoystickAxisMapping(const std::string& joystickName,
);
}
void NavigationHandler::setJoystickAxisMappingProperty(const std::string& joystickName,
void NavigationHandler::setJoystickAxisMappingProperty(std::string joystickName,
int axis,
const std::string& propertyUri,
std::string propertyUri,
float min, float max,
JoystickCameraStates::AxisInvert shouldInvert,
bool isRemote)
{
_orbitalNavigator.joystickStates().setAxisMappingProperty(
joystickName,
std::move(joystickName),
axis,
propertyUri,
std::move(propertyUri),
min,
max,
shouldInvert,
+3 -3
View File
@@ -164,7 +164,7 @@ int bindJoystickAxis(lua_State* L) {
joystickType = joystickType.value_or("JoystickLike");
global::navigationHandler->setJoystickAxisMapping(
joystickName,
std::move(joystickName),
axis,
ghoul::from_string<interaction::JoystickCameraStates::AxisType>(axisType),
interaction::JoystickCameraStates::AxisInvert(*shouldInvert),
@@ -188,9 +188,9 @@ int bindJoystickAxisProperty(lua_State* L) {
isRemote = isRemote.value_or(true);
global::navigationHandler->setJoystickAxisMappingProperty(
joystickName,
std::move(joystickName),
axis,
propertyUri,
std::move(propertyUri),
*min,
*max,
interaction::JoystickCameraStates::AxisInvert(*shouldInvert),