20#ifndef _TRANSLATION_ALONG_FIXED_AXIS_H_
21#define _TRANSLATION_ALONG_FIXED_AXIS_H_
23#include "mbsim/functions/function.h"
24#include "mbsim/utils/utils.h"
30 using B = fmatvec::Function<fmatvec::Vec3(Arg)>;
32 fmatvec::Vec3 a, zero;
36 void setAxisOfTranslation(
const fmatvec::Vec3 &a_) { a <<= a_; }
37 int getArgSize()
const override {
return 1; }
38 fmatvec::Vec3 operator()(
const Arg &arg)
override {
return a*arg; }
39 typename B::DRetDArg parDer(
const Arg &arg)
override {
return a; }
40 typename B::DRetDArg parDerDirDer(
const Arg &arg1Dir,
const Arg &arg1)
override {
return zero; }
41 bool constParDer()
const override {
return true; }
42 void initializeUsingXML(xercesc::DOMElement *element)
override {
43 xercesc::DOMElement *e=MBXMLUtils::E(element)->getFirstElementChildNamed(MBSIM%
"axisOfTranslation");
44 setAxisOfTranslation(MBXMLUtils::E(e)->getText<fmatvec::Vec3>());
Definition: function.h:53
Definition: translation_along_fixed_axis.h:29
namespace MBSim
Definition: bilateral_constraint.cc:30