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

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

 1#ifndef JointFrictionRELATION_H
 2#define JointFrictionRELATION_H
 3
 4#include <MechanicsFwd.hpp>
 5#include <SiconosFwd.hpp>
 6#include <NewtonEulerR.hpp>
 7#include <NewtonEulerJointR.hpp>
 8#include <Tools.hpp>
 9
10
11class JointFrictionR : public NewtonEulerR
12{
13protected:
14
15  ACCEPT_SERIALIZATION(JointFrictionR);
16  JointFrictionR() : NewtonEulerR() {}
17
18  SP::NewtonEulerJointR _joint;
19
20  SP::UnsignedIntVector _axis;
21
22  unsigned int _axisMin, _axisMax;
23  SP::SimpleMatrix _jachqTmp;
24
25public:
26
27
28  JointFrictionR(SP::NewtonEulerJointR joint, unsigned int axis);
29
30
31  JointFrictionR(SP::NewtonEulerJointR joint,
32                 SP::UnsignedIntVector axes=SP::UnsignedIntVector());
33
34
35  virtual void computeh(double time, const BlockVector& q0, SiconosVector& y);
36
37  virtual void computeJachq(double time, Interaction& inter, SP::BlockVector q0);
38
39  virtual unsigned int numberOfConstraints();
40
41
42  unsigned int axis(unsigned int _index) { return _axis->at(_index); }
43
44
45  SP::NewtonEulerJointR joint() { return _joint; }
46
47
48  unsigned int numberOfAxes() { return _axis->size(); }
49
50  virtual ~JointFrictionR() {};
51};
52#endif