Program listing for file mechanics/src/collision/native/bodies/SphereLDSPlanR.hpp#

 1#ifndef SphereLDSPlanR_h
 2#define SphereLDSPlanR_h
 3
 4#include "MechanicsFwd.hpp"
 5#include "CircularR.hpp"
 6
 7class SphereLDSPlanR : public LagrangianScleronomousR, public std::enable_shared_from_this<SphereLDSPlanR>
 8{
 9private:
10  ACCEPT_SERIALIZATION(SphereLDSPlanR);
11
12
13
14  double r, A, B, C, D, nN, nU;
15
16  double u1, u2, u3, v1, v2, v3, n1, n2, n3, ru1, ru2, ru3, rv1, rv2, rv3;
17
18public:
19
20
21  SphereLDSPlanR(double r, double A, double B, double C, double D);
22
23  ~SphereLDSPlanR() noexcept = default;
24
25  double distance(double, double, double, double);
26
27  using LagrangianScleronomousR::computeh;
28
29
30
31  void computeh(const BlockVector& q, BlockVector& z, SiconosVector& y);
32
33
34  void computeJachq(const BlockVector& q, BlockVector& z);
35
36  bool equal(double _A, double _B, double _C, double _D, double _r) const
37  {
38    return (A == _A && B == _B && C == _C && D == _D && r == _r) ;
39  }
40
41  ACCEPT_VISITORS();
42
43};
44#endif