Program listing for file mechanics/src/joints/JointFrictionR.hpp#
Return to documentation for this file
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