dynamics3d_engine.cpp File Reference
#include "dynamics3d_engine.h"
#include <argos3/core/simulator/simulator.h>
#include <argos3/core/simulator/space/space.h>
#include <argos3/core/simulator/entity/embodied_entity.h>
#include <argos3/plugins/simulator/physics_engines/dynamics3d/dynamics3d_model.h>
#include <argos3/plugins/simulator/physics_engines/dynamics3d/dynamics3d_plugin.h>
#include <algorithm>
Include dependency graph for dynamics3d_engine.cpp:

Go to the source code of this file.

Namespaces

 argos
 The namespace containing all the ARGoS related code.
 

Functions

 argos::REGISTER_PHYSICS_ENGINE (CDynamics3DEngine, "dynamics3d", "Michael Allwright [allsey87@gmail.com]", "1.0", "A 3D dynamics physics engine", "This physics engine is a 3D dynamics engine based on the Bullet Physics SDK\n" "(https://github.com/bulletphysics/bullet3).\n\n" "REQUIRED XML CONFIGURATION\n\n" " <physics_engines>\n" " ...\n" " <dynamics3d id=\"dyn3d\" />\n" " ...\n" " </physics_engines>\n\n" "The 'id' attribute is necessary and must be unique among the physics engines.\n\n" "Multiple physics engines of this type cannot be used, and defining '<boundaries>'\n" "as a child tag under the '<dynamics3d>' tree will result in an initialization error.\n\n" "OPTIONAL XML CONFIGURATION\n\n" "It is possible to change the default friction used in the simulation from\n" "its initial value of 1.0 using the default_friction attribute as shown\n" "below. For debugging purposes, it is also possible to provide a filename\n" "via the debug_file attribute which will cause the Bullet world to be\n" "serialized and written out to a file at the end of each step. This file can\n" "then be opened using the Bullet example browser and can provide useful\n" "insights into the stability of a simulation.\n\n" " <physics_engines>\n" " ...\n" " <dynamics3d id=\"dyn3d\"\n" " default_friction=\"1.0\"\n" " debug_file=\"dynamics3d.bullet\"/>\n" " ...\n" " </physics_engines>\n\n" "The physics engine supports a number of plugins that add features to the\n" "simulation. In the example below, a floor plane has been added which has a\n" "height of 1 cm and the dimensions of the floor as specified by the arena\n" "node. It is possible to change the coefficient of friction of the floor\n" "using the friction attribute. This will override the default friction used\n" "by the physics engine. By default, there will be no gravity in the\n" "simulation. This can be changed by adding a gravity node with a single\n" "attribute 'g' which is the downwards acceleration caused by gravity.\n" "Finally, there is a magnetism plugin. This plugin applies forces and\n" "torques to bodies in the simulation that contains magnetic dipoles. The\n" "'max_distance' attribute is an optional optimization that sets the maximum\n" "distance at which two magnetic dipoles will interact with each other. In\n" "the example below, this distance has been set to 4 cm.\n\n" " <physics_engines>\n" " ...\n" " <dynamics3d id=\"dyn3d\" default_friction=\"2.0\">\n" " <floor height=\"0.01\" friction=\"0.05\"/>\n" " <gravity g=\"10\" />\n" " <magnetism max_distance=\"0.04\" />\n" " </dynamics3d>\n" " ...\n" " </physics_engines>\n\n", "Usable (multiple engines not supported)")