9 #ifndef DYNAMICS3D_MAGNETISM_PLUGIN_H
10 #define DYNAMICS3D_MAGNETISM_PLUGIN_H
12 #include <argos3/plugins/simulator/physics_engines/dynamics3d/dynamics3d_plugin.h>
13 #include <argos3/plugins/simulator/physics_engines/dynamics3d/dynamics3d_model.h>
14 #include <argos3/plugins/simulator/entities/magnet_equipped_entity.h>
15 #include <argos3/core/utility/datatypes/datatypes.h>
28 m_fForceConstant(7.0500949e-13),
29 m_fMaxDistance(std::numeric_limits<
Real>::infinity()) {}
47 btScalar m_fForceConstant;
48 btScalar m_fMaxDistance;
50 struct SMagneticDipole {
52 SMagneticDipole(std::shared_ptr<CDynamics3DModel::CAbstractBody>& ptr_body,
53 const std::function<btVector3()>& fn_get_field,
54 const btTransform& c_offset) :
56 GetField(fn_get_field),
59 std::shared_ptr<CDynamics3DModel::CAbstractBody> Body;
60 std::function<btVector3()> GetField;
64 std::vector<SMagneticDipole> m_vecDipoles;
float Real
Collects all ARGoS code.
The namespace containing all the ARGoS related code.
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
virtual void RegisterModel(CDynamics3DModel &c_model)
virtual void UnregisterModel(CDynamics3DModel &c_model)
CDynamics3DMagnetismPlugin()
virtual void Init(TConfigurationNode &t_tree)
~CDynamics3DMagnetismPlugin()