20#ifndef _FIXED_RELATIVE_FRAME_H__
21#define _FIXED_RELATIVE_FRAME_H__
23#include "mbsim/frames/frame.h"
34 FixedRelativeFrame(
const std::string &
name =
"dummy",
const fmatvec::Vec3 &r=fmatvec::Vec3(),
const fmatvec::SqrMat3 &A=fmatvec::SqrMat3(fmatvec::EYE),
Frame *refFrame=
nullptr) :
Frame(
name), R(refFrame), RrRP(r), ARP(A) {
37 void init(
InitStage stage,
const InitConfigSet &config)
override;
39 void setRelativePosition(
const fmatvec::Vec3 &r) { RrRP = r; }
40 void setRelativeOrientation(
const fmatvec::SqrMat3 &A) { ARP = A; }
41 void setFrameOfReference(
Frame *frame) { R = frame; }
42 void setFrameOfReference(
const std::string &frame) { saved_frameOfReference = frame; }
44 const fmatvec::Vec3& getRelativePosition()
const {
return RrRP; }
45 const fmatvec::SqrMat3& getRelativeOrientation()
const {
return ARP; }
46 const Frame* getFrameOfReference()
const {
return R; }
48 const fmatvec::Vec3& evalGlobalRelativePosition() {
if(updPos) updatePositions();
return WrRP; }
50 void updatePositions()
override;
51 void updateVelocities()
override;
52 void updateAccelerations()
override;
53 void updateJacobians(
int j=0)
override;
54 void updateGyroscopicAccelerations()
override;
56 void initializeUsingXML(xercesc::DOMElement *element)
override;
60 fmatvec::Vec3 RrRP, WrRP;
62 std::string saved_frameOfReference;
InitStage
The stages of the initialization.
Definition: element.h:62
std::string name
name of element
Definition: element.h:260
cartesian frame on rigid bodies
Definition: fixed_relative_frame.h:31
void init(InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: fixed_relative_frame.cc:30
cartesian frame on bodies used for application of e.g. links and loads
Definition: frame.h:39
Frame(const std::string &name="dummy")
constructor
Definition: frame.cc:48
namespace MBSim
Definition: bilateral_constraint.cc:30