Program Listing for File ComputedTorque.cc#
↰ Return to documentation for file (doxygen_docs/GeneralKModels/ComputedTorque.cc)
#include"Karana/GeneralKModels/ComputedTorque.h"
#include"Karana/KCore/Allocator.h"
#include"Karana/SOADyn/Algorithms.h"
#include"Karana/SOADyn/CoordData.h"
namespaceKarana::Models{
namespacekd=Karana::Dynamics;
ComputedTorque::ComputedTorque(std::string_viewname,
constkc::ks_ptr<kd::StatePropagator>&sp,
constkc::ks_ptr<kd::SubTree>&st,
constSetAccelFn&set_accels_fn)
:KModel<ComputedTorque>(name,sp)
,_st(st)
,_set_accels(set_accels_fn){
//TODO:Checkwhether_stisachildofSubTree
state_propagator->getSubTree();
};
kc::ks_ptr<ComputedTorque>ComputedTorque::create(std::string_viewname,
constkc::ks_ptr<kd::StatePropagator>&sp,
constkc::ks_ptr<kd::SubTree>&st,
constSetAccelFn&set_accels_fn){
kc::ks_ptr<ComputedTorque>ct=std::allocate_shared<ComputedTorque>(
kc::Allocator<ComputedTorque>{},name,sp,st,set_accels_fn);
sp->registerModel(ct);
returnct;
}
voidComputedTorque::preDeriv(constkm::Ktime&t,constkm::Vec&x){
_set_accels(t,x);
_st->subhingeCoordData()->setT(kd::Algorithms::evalComputedTorque(*_st));
}
//DestructorincludedforMacOSbuilds.Musthaveakey-functionout-of-linetoavoiddulpicate
//symbols.
ComputedTorque::~ComputedTorque(){};
}//namespaceKarana::Models