ARGoS 3
A parallel, multi-engine simulator for swarm robotics
pointmass3d_model.h
Go to the documentation of this file.
1
7#ifndef POINTMASS3D_MODEL_H
8#define POINTMASS3D_MODEL_H
9
10namespace argos {
11 class CPointMass3DEngine;
12}
13
14#include <argos3/core/simulator/physics_engine/physics_model.h>
15#include <argos3/plugins/simulator/physics_engines/pointmass3d/pointmass3d_engine.h>
16#include <argos3/core/utility/math/vector3.h>
17#include <argos3/core/utility/math/quaternion.h>
18
19namespace argos {
20
22
23 public:
24
25 typedef std::map<std::string, CPointMass3DModel*> TMap;
26
27 public:
28
30 CEmbodiedEntity& c_entity);
31
32 virtual ~CPointMass3DModel() {}
33
34 virtual void MoveTo(const CVector3& c_position,
35 const CQuaternion& c_orientation);
36
37 virtual void Reset();
38
39 virtual void Step() = 0;
40 virtual void UpdateFromEntityStatus() = 0;
41
42 virtual bool IsCollidingWithSomething() const;
43
44 virtual bool CheckIntersectionWithRay(Real& f_t_on_ray,
45 const CRay3& c_ray) const = 0;
46
50 virtual void UpdateOriginAnchor(SAnchor& s_anchor);
51
59
65 return m_cPM3DEngine;
66 }
67
68 protected:
69
72
75
78
81
82 };
83
84}
85
86#endif
float Real
Collects all ARGoS code.
Definition datatypes.h:39
The namespace containing all the ARGoS related code.
Definition ci_actuator.h:12
This entity is a link to a body in the physics engine.
An anchor related to the body of an entity.
A 3D vector class.
Definition vector3.h:31
CPointMass3DModel(CPointMass3DEngine &c_engine, CEmbodiedEntity &c_entity)
CVector3 m_cVelocity
The linear velocity of this model in the engine.
virtual void MoveTo(const CVector3 &c_position, const CQuaternion &c_orientation)
const CPointMass3DEngine & GetPM3DEngine() const
Returns a const reference to the physics engine controlling this model.
virtual void Step()=0
virtual bool IsCollidingWithSomething() const
Returns true if this model is colliding with another model.
virtual void UpdateOriginAnchor(SAnchor &s_anchor)
Updates the origin anchor associated to the embodied entity.
virtual void UpdateFromEntityStatus()=0
Updates the state of this model from the status of the associated entity.
virtual bool CheckIntersectionWithRay(Real &f_t_on_ray, const CRay3 &c_ray) const =0
CPointMass3DEngine & m_cPM3DEngine
Reference to the physics engine.
CVector3 m_cAcceleration
The acceleration of this model in the engine.
CVector3 m_cPosition
The position of the model in this engine.
std::map< std::string, CPointMass3DModel * > TMap
CPointMass3DEngine & GetPM3DEngine()
Returns a reference to the physics engine controlling this model.