23 #include "mbsim/link_mechanics.h"
24 #include "mbsim/frame.h"
26 #ifdef HAVE_OPENMBVCPPINTERFACE
27 #include "mbsim/utils/boost_parameters.h"
28 #include "mbsim/utils/openmbv_utils.h"
31 namespace MBSimControl {
49 Actuator(
const std::string &name=
"");
57 virtual void updateh(
double t,
int j=0);
58 virtual void updateg(
double t) {}
59 virtual void updategd(
double t) {};
63 virtual void init(InitStage stage);
67 virtual void calclaSize(
int);
68 virtual bool isActive()
const {
return true; }
69 virtual bool gActiveChanged() {
return false; }
70 virtual bool isSingleValued ()
const {
return true; }
75 void setSignal(Signal *signal_) {
signal = signal_; }
84 #ifdef HAVE_OPENMBVCPPINTERFACE
86 BOOST_PARAMETER_MEMBER_FUNCTION( (
void), enableOpenMBVForce, MBSim::tag, (optional (scaleLength,(
double),1)(scaleSize,(
double),1)(referencePoint,(OpenMBV::Arrow::ReferencePoint),OpenMBV::Arrow::toPoint)(diffuseColor,(
const fmatvec::Vec3&),
"[-1;1;1]")(transparency,(
double),0))) {
87 MBSim::OpenMBVArrow ombv(diffuseColor,transparency,OpenMBV::Arrow::toHead,referencePoint,scaleLength,scaleSize);
88 std::vector<bool> which; which.resize(2,
false);
90 LinkMechanics::setOpenMBVForceArrow(ombv.createOpenMBV(), which);
94 BOOST_PARAMETER_MEMBER_FUNCTION( (
void), enableOpenMBVMoment, MBSim::tag, (optional (scaleLength,(
double),1)(scaleSize,(
double),1)(referencePoint,(OpenMBV::Arrow::ReferencePoint),OpenMBV::Arrow::toPoint)(diffuseColor,(
const fmatvec::Vec3&),
"[-1;1;1]")(transparency,(
double),0))) {
95 MBSim::OpenMBVArrow ombv(diffuseColor,transparency,OpenMBV::Arrow::toDoubleHead,referencePoint,scaleLength,scaleSize);
96 std::vector<bool> which; which.resize(2,
false);
98 LinkMechanics::setOpenMBVMomentArrow(ombv.createOpenMBV(), which);
112 void initializeUsingXML(xercesc::DOMElement *element);
146 std::string saved_inputSignal, saved_ref1, saved_ref2;
fmatvec::Mat3xV forceDir
local force and moment direction
Definition: actuator.h:123
void setMomentDirection(const fmatvec::Mat &md)
Definition: actuator.cc:107
fmatvec::Index IT
indices of forces and moments
Definition: actuator.h:118
Signal.
Definition: signal_.h:37
predefines load between two frames with additional possibility of rotation
Definition: actuator.h:43
MBSim::Frame * refFrame
frame of reference the force is defined in
Definition: actuator.h:138
void connect(MBSim::Frame *frame1, MBSim::Frame *frame2)
Definition: actuator.cc:93
Signal * signal
force / moment norm function
Definition: actuator.h:128
void setForceDirection(const fmatvec::Mat &fd)
Definition: actuator.cc:98
int KOSYID
frame index for rotating forces
Definition: actuator.h:133
MBSim::Frame C
own frame located in second partner with same orientation as first partner
Definition: actuator.h:143
virtual ~Actuator()
destructor
Definition: actuator.h:54
Actuator(const std::string &name="")
constructor
Definition: actuator.cc:35