28 #include "T6RestLengthController.h"
40 m_restLengthDiff(restLengthDiff),
41 m_controllerMuscleRatio(subject->muscleRatio())
43 if (restLengthDiff < 0.0)
45 throw std::invalid_argument(
"You tried to push a rope!");
67 const std::vector<tgBasicActuator*> activeMuscles = subject.
getActiveMuscles();
70 for (
size_t i = 0; i < passiveMuscles.size(); ++i)
73 assert(pMuscle != NULL);
77 pMuscle->setRestLengthSingleStep(desiredRestLength);
79 for (
size_t i = 0; i < activeMuscles.size(); ++i)
82 assert(pMuscle != NULL);
86 pMuscle->setRestLengthSingleStep(desiredRestLength);
93 const std::vector<tgBasicActuator*> muscles = subject.
getAllMuscles();
102 for(
size_t i=0; i<muscles.size(); i++)
104 std::cout << (muscles[i]->getStartLength())/10 <<
"\t";
virtual const double getStartLength() const
T6RestLengthController(T6Model *subject, const double restLengthDiff=4)
const std::vector< tgBasicActuator * > & getAllMuscles() const
const std::vector< tgBasicActuator * > & getPassiveMuscles() const
Contains the definition of class tgBasicActuator.
virtual void onSetup(T6Model &subject)
const std::vector< tgBasicActuator * > & getActiveMuscles() const
virtual void onStep(T6Model &subject, double dt)