Program Listing for File ComputedTorque.cc

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::ModelManager>&mm,
constkc::ks_ptr<kd::SubTree>&st,
constSetAccelFn&set_accels_fn)
:KModel<ComputedTorque>(name,mm)
,_st(st)
,_set_accels(set_accels_fn){
//TODO:Checkwhether_stisachildofSubTree
model_manager->getSubTree();
};

kc::ks_ptr<ComputedTorque>ComputedTorque::create(std::string_viewname,
constkc::ks_ptr<kd::ModelManager>&mm,
constkc::ks_ptr<kd::SubTree>&st,
constSetAccelFn&set_accels_fn){
kc::ks_ptr<ComputedTorque>ct=std::allocate_shared<ComputedTorque>(
kc::Allocator<ComputedTorque>{},name,mm,st,set_accels_fn);
mm->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