1#ifndef TORQUEMUSCLEFUNCTIONFACTORY_H_
2#define TORQUEMUSCLEFUNCTIONFACTORY_H_
34#include "../geometry/SmoothSegmentedFunction.h"
35#include "../geometry/SegmentedQuinticBezierToolkit.h"
88 const std::string& curveName,
90 smoothSegmentedFunctionToUpdate);
151 double minEccentricMultiplier,
152 double maxEccentricMultiplier,
153 const std::string& curveName,
155 smoothSegmentedFunctionToUpdate);
223 const std::string& curveName,
225 smoothSegmentedFunctionToUpdate);
272 double tvAtEccentricOmegaMax,
273 double tvAtHalfConcentricOmegaMax,
274 const std::string& curveName,
276 smoothSegmentedFunctionToUpdate );
349 double tvAtEccentricOmegaMax,
350 double tvAtHalfConcentricOmegaMax,
351 double slopeAtConcentricOmegaMax,
352 double slopeNearEccentricOmegaMax,
353 double slopeAtEccentricOmegaMax,
354 double eccentricCurviness,
355 const std::string& curveName,
357 smoothSegmentedFunctionToUpdate );
398 double angleAtZeroTorque,
399 double angleAtOneNormTorque,
400 const std::string& curveName,
402 smoothSegmentedFunctionToUpdate );
474 double angleAtZeroTorque,
475 double angleAtOneNormTorque,
476 double stiffnessAtLowTorque,
477 double stiffnessAtOneNormTorque,
479 const std::string& curveName,
481 smoothSegmentedFunctionToUpdate );
513 double angleAtOneNormTorque,
514 double angularStandardDeviation,
515 const std::string& curveName,
517 smoothSegmentedFunctionToUpdate
569 double angleAtOneNormTorque,
570 double angularStandardDeviation,
571 double minSlopeAtShoulders,
572 double minValueAtShoulders,
574 const std::string& curveName,
576 smoothSegmentedFunctionToUpdate
608 double angularStretchAtOneNormTorque,
609 const std::string& curveName,
611 smoothSegmentedFunctionToUpdate
658 double angularStretchAtOneNormTorque,
659 double stiffnessAtOneNormTorque,
660 double normTorqueAtToeEnd,
662 const std::string& curveName,
664 smoothSegmentedFunctionToUpdate
694 double normAngularVelocityAtMaximumDamping,
695 const std::string& curveName,
697 smoothSegmentedFunctionToUpdate
static void createTendonTorqueAngleCurve(double angularStretchAtOneNormTorque, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createGaussianShapedActiveTorqueAngleCurve(double angleAtOneNormTorque, double angularStandardDeviation, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createTendonTorqueAngleCurve(double angularStretchAtOneNormTorque, double stiffnessAtOneNormTorque, double normTorqueAtToeEnd, double curviness, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createTorqueVelocityCurve(double tvAtEccentricOmegaMax, double tvAtHalfConcentricOmegaMax, double slopeAtConcentricOmegaMax, double slopeNearEccentricOmegaMax, double slopeAtEccentricOmegaMax, double eccentricCurviness, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createPassiveTorqueAngleCurve(double angleAtZeroTorque, double angleAtOneNormTorque, double stiffnessAtLowTorque, double stiffnessAtOneNormTorque, double curviness, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createDampingBlendingCurve(double normAngularVelocityAtMaximumDamping, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createAnderson2007ActiveTorqueAngleCurve(double c2, double c3, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createAnderson2007PassiveTorqueAngleCurve(double scale, double c1, double b1, double k1, double b2, double k2, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createAnderson2007ActiveTorqueVelocityCurve(double c4, double c5, double c6, double minEccentricMultiplier, double maxEccentricMultiplier, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createGaussianShapedActiveTorqueAngleCurve(double angleAtOneNormTorque, double angularStandardDeviation, double minSlopeAtShoulders, double minValueAtShoulders, double curviness, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createTorqueVelocityCurve(double tvAtEccentricOmegaMax, double tvAtHalfConcentricOmegaMax, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)
static void createPassiveTorqueAngleCurve(double angleAtZeroTorque, double angleAtOneNormTorque, const std::string &curveName, RigidBodyDynamics::Addons::Geometry::SmoothSegmentedFunction &smoothSegmentedFunctionToUpdate)