Free Electron
Joint.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __ode_Joint_h__
8 #define __ode_Joint_h__
9 namespace fe
10 {
11 namespace ext
12 {
13 
14 class FE_DL_EXPORT Joint : public JointI
15 {
16  public:
17  Joint(dWorldID a_world_id, JointType a_type,
18  sp<BodyI> a_A, sp<BodyI> a_B);
19  Joint(dWorldID, sp<BodyI> a_A,
20  const SpatialVector &a_location,
21  const SpatialVector &a_normal,
22  Real a_depth,Real a_stiffness,
23  Real a_damping, Real a_timestep);
24 virtual ~Joint(void);
25 
26 virtual void setAnchor(const Vector3 &a_anchor);
27 virtual void setAxis(const Vector3 &a_axis);
28 virtual void limitRange(Real a_angleLo, Real a_angleHi);
29 virtual void setSpring(Real a_timestep, Real a_stiffness, Real a_damping);
30 virtual hp<MechanicsSimI> &sim(void) { return m_spSim; }
31 
32 
33 
34  private:
35  dJointID m_id;
36  JointType m_type;
37  hp<MechanicsSimI> m_spSim;
38 };
39 
40 class FE_DL_EXPORT DistanceJoint : public JointI
41 {
42 };
43 
44 } /* namespace ext */
45 } /* namespace fe */
46 
47 #endif /* __ode_Joint_h__ */
48 
kernel
Definition: namespace.dox:3