#include <pointmass3d_model.h>
Public Types | |
typedef std::map< std::string, CPointMass3DModel * > | TMap |
Public Types inherited from argos::CPhysicsModel | |
typedef std::map< std::string, CPhysicsModel * > | TMap |
typedef std::vector< CPhysicsModel * > | TVector |
Public Member Functions | |
CPointMass3DModel (CPointMass3DEngine &c_engine, CEmbodiedEntity &c_entity) | |
virtual | ~CPointMass3DModel () |
virtual void | MoveTo (const CVector3 &c_position, const CQuaternion &c_orientation) |
virtual void | Reset () |
virtual void | Step ()=0 |
virtual void | UpdateFromEntityStatus ()=0 |
Updates the state of this model from the status of the associated entity. More... | |
virtual bool | IsCollidingWithSomething () const |
Returns true if this model is colliding with another model. More... | |
virtual bool | CheckIntersectionWithRay (Real &f_t_on_ray, const CRay3 &c_ray) const =0 |
virtual void | UpdateOriginAnchor (SAnchor &s_anchor) |
Updates the origin anchor associated to the embodied entity. More... | |
CPointMass3DEngine & | GetPM3DEngine () |
Returns a reference to the physics engine controlling this model. More... | |
const CPointMass3DEngine & | GetPM3DEngine () const |
Returns a const reference to the physics engine controlling this model. More... | |
Public Member Functions inherited from argos::CPhysicsModel | |
CPhysicsModel (CPhysicsEngine &c_engine, CEmbodiedEntity &c_entity) | |
virtual | ~CPhysicsModel () |
CPhysicsEngine & | GetEngine () |
Returns the physics engine associated to this physics model. More... | |
CEmbodiedEntity & | GetEmbodiedEntity () |
Returns the embodied entity associated to this physics model. More... | |
const CEmbodiedEntity & | GetEmbodiedEntity () const |
Returns the embodied entity associated to this physics model. More... | |
virtual void | UpdateEntityStatus () |
Updates the status of the associated entity. More... | |
virtual void | UpdatePhysics () |
Performs extra work just before the physics update takes place. More... | |
const SBoundingBox & | GetBoundingBox () const |
Returns an axis-aligned box that contains the physics model. More... | |
virtual void | CalculateBoundingBox ()=0 |
Calculates the axis-aligned box that contains the entire physics model. More... | |
virtual void | CalculateAnchors () |
Calculates the anchors associated to this model. More... | |
SBoundingBox & | GetBoundingBox () |
Returns an axis-aligned box that contains the physics model. More... | |
template<typename MODEL > | |
void | RegisterAnchorMethod (const SAnchor &s_anchor, void(MODEL::*pt_method)(SAnchor &)) |
Registers an anchor method. More... | |
Protected Attributes | |
CPointMass3DEngine & | m_cPM3DEngine |
Reference to the physics engine. More... | |
CVector3 | m_cPosition |
The position of the model in this engine. More... | |
CVector3 | m_cVelocity |
The linear velocity of this model in the engine. More... | |
CVector3 | m_cAcceleration |
The acceleration of this model in the engine. More... | |
Definition at line 21 of file pointmass3d_model.h.
typedef std::map<std::string, CPointMass3DModel*> argos::CPointMass3DModel::TMap |
Definition at line 25 of file pointmass3d_model.h.
argos::CPointMass3DModel::CPointMass3DModel | ( | CPointMass3DEngine & | c_engine, |
CEmbodiedEntity & | c_entity | ||
) |
Definition at line 9 of file pointmass3d_model.cpp.
|
inlinevirtual |
Definition at line 32 of file pointmass3d_model.h.
|
inline |
Returns a reference to the physics engine controlling this model.
Definition at line 56 of file pointmass3d_model.h.
|
inline |
Returns a const reference to the physics engine controlling this model.
Definition at line 64 of file pointmass3d_model.h.
|
virtual |
Returns true
if this model is colliding with another model.
true
if this model is colliding with another model. Implements argos::CPhysicsModel.
Definition at line 42 of file pointmass3d_model.cpp.
|
virtual |
Moves the entity to the wanted position and orientation within this engine. When you create a new model, you must implement this method. Don't forget to call UpdateEntityStatus() after you've changed the position.
This method should never be called directly from user code. It is called internally by CEmbodiedEntity::MoveTo(), which is meant to be called from user code.
CEmbodiedEntity::MoveTo() never calls this method if the embodied entity is static. This is because static entities cannot be moved around. Thus, there's no need in your code to check whether the associated entity is static.
c_position | The wanted position. |
c_orientation | The wanted orientation. |
Implements argos::CPhysicsModel.
Definition at line 33 of file pointmass3d_model.cpp.
|
virtual |
Reimplemented in argos::CPointMass3DQuadRotorModel, and argos::CPointMass3DFootBotModel.
Definition at line 23 of file pointmass3d_model.cpp.
|
pure virtual |
|
pure virtual |
Updates the state of this model from the status of the associated entity.
This method takes the current state of the associated entity (e.g., desired wheel speed, turret rotationss, etc.) and updates the state of this model. Typically, in this method you apply forces and set speeds.
Implements argos::CPhysicsModel.
Implemented in argos::CPointMass3DQuadRotorModel, argos::CPointMass3DCylinderModel, argos::CPointMass3DBoxModel, and argos::CPointMass3DFootBotModel.
|
virtual |
Updates the origin anchor associated to the embodied entity.
Reimplemented in argos::CPointMass3DQuadRotorModel, and argos::CPointMass3DFootBotModel.
Definition at line 56 of file pointmass3d_model.cpp.
|
protected |
The acceleration of this model in the engine.
Definition at line 80 of file pointmass3d_model.h.
|
protected |
Reference to the physics engine.
Definition at line 71 of file pointmass3d_model.h.
|
protected |
The position of the model in this engine.
Definition at line 74 of file pointmass3d_model.h.
|
protected |
The linear velocity of this model in the engine.
Definition at line 77 of file pointmass3d_model.h.