Program listing for file mechanics/src/joints/FixedJointR.hpp

Program listing for file mechanics/src/joints/FixedJointR.hpp#

 1#ifndef FixedJointRELATION_H
 2#define FixedJointRELATION_H
 3
 4#include <MechanicsFwd.hpp>
 5#include <SiconosFwd.hpp>
 6#include <NewtonEulerJointR.hpp>
 7
 8
 9class FixedJointR : public NewtonEulerJointR
10{
11protected:
12
13  ACCEPT_SERIALIZATION(FixedJointR);
14
15
16  double _G10G20d1x, _G10G20d1y, _G10G20d1z;
17  double _cq2q101, _cq2q102, _cq2q103, _cq2q104;
18
19public:
20
21  FixedJointR() : NewtonEulerJointR() {};
22
23
24  FixedJointR(SP::NewtonEulerDS d1, SP::NewtonEulerDS d2 = SP::NewtonEulerDS());
25
26
27  virtual ~FixedJointR() {};
28
29
30  virtual void setBasePositions(SP::SiconosVector q1,
31                                SP::SiconosVector q2 = SP::SiconosVector());
32
33
34  virtual unsigned int numberOfConstraints() { return 6; }
35
36  virtual void computeJachq(double time, Interaction& inter, SP::BlockVector q0);
37
38
39  virtual void computeh(double time, const BlockVector& q0, SiconosVector& y);
40
41  virtual unsigned int numberOfDoF() { return 0; }
42
43  virtual DoF_Type typeOfDoF(unsigned int axis) { return DOF_TYPE_INVALID; }
44
45protected:
46
47  virtual void Jd1d2(double X1, double Y1, double Z1,
48                     double q10, double q11, double q12, double q13,
49                     double X2, double Y2, double Z2,
50                     double q20, double q21, double q22, double q23);
51
52  virtual void Jd1(double X1, double Y1, double Z1,
53                   double q10, double q11, double q12, double q13);
54};
55
56#endif