Program listing for file mechanics/src/collision/native/bodies/SphereLDSPlanR.hpp#
Return to documentation for this file
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