diff options
author | Tobias Klauser <tobias.klauser@uzh.ch> | 2013-02-14 14:01:29 +0100 |
---|---|---|
committer | Tobias Klauser <tobias.klauser@uzh.ch> | 2013-02-14 14:01:29 +0100 |
commit | f3731987cef7181a3de2a0b530f8e78e3174bdd7 (patch) | |
tree | f6cc6e599ab83aeb1967130735c4a4f883f13054 | |
parent | 5110cbf6ee01883b65c59a7ac133a2ccb9faa9d9 (diff) |
LocomotorPrimitivesController: Don't warn about combined missing muscles
-rw-r--r-- | LocomotorPrimitivesController.cpp | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/LocomotorPrimitivesController.cpp b/LocomotorPrimitivesController.cpp index ccf45e5..74ce21c 100644 --- a/LocomotorPrimitivesController.cpp +++ b/LocomotorPrimitivesController.cpp @@ -22,8 +22,42 @@ int LocomotorPrimitivesController::checkControls() * available in the loaded storage */ for (int i = 0; i < act_set_siz; i++) { const OpenSim::Muscle *muscle = dynamic_cast<const OpenSim::Muscle *>(&getActuatorSet().get(i)); - const OpenSim::Array<int> indices = _act.getColumnIndicesForIdentifier(muscle->getName()); + std::string muscle_name = muscle->getName(); + + /* If it is one of the 'special' combined muscles, check the + * combination instead. See comment in computeControls() for + * details. */ + if (muscle_name.compare("bifemlh_r") == 0) { + muscle_name = "hs_r"; + } else if (muscle_name.compare("bifemlh_l") == 0) { + muscle_name = "hs_l"; + } else if (muscle_name.compare("bifemsh_r") == 0) { + muscle_name = "hs_r"; + } else if (muscle_name.compare("bifemsh_l") == 0) { + muscle_name = "hs_l"; + } else if (muscle_name.compare("semimem_r") == 0) { + muscle_name = "hs_r"; + } else if (muscle_name.compare("semimem_l") == 0) { + muscle_name = "hs_l"; + } else if (muscle_name.compare("semiten_r") == 0) { + muscle_name = "hs_r"; + } else if (muscle_name.compare("semiten_l") == 0) { + muscle_name = "hs_l"; + } else if (muscle_name.compare("glut_max1_r") == 0) { + muscle_name = "gm_r"; + } else if (muscle_name.compare("glut_max1_l") == 0) { + muscle_name = "gm_l"; + } else if (muscle_name.compare("glut_max2_r") == 0) { + muscle_name = "gm_r"; + } else if (muscle_name.compare("glut_max2_l") == 0) { + muscle_name = "gm_l"; + } else if (muscle_name.compare("glut_max3_r") == 0) { + muscle_name = "gm_r"; + } else if (muscle_name.compare("glut_max3_l") == 0) { + muscle_name = "gm_l"; + } + const OpenSim::Array<int> indices = _act.getColumnIndicesForIdentifier(muscle_name); if (indices.getSize() == 0) { logger.err("no actuation data for muscle '%s' found\n", muscle->getName().c_str()); ret--; |