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.
For argos::CTCPSocket::EEvent to be used in std::unordered_set<> and std::unordered_map<>,...
virtual void RegisterModel(CDynamics3DModel &c_model)
virtual void UnregisterModel(CDynamics3DModel &c_model)
CDynamics3DMagnetismPlugin()
virtual void Init(TConfigurationNode &t_tree)
~CDynamics3DMagnetismPlugin()