INET Framework for OMNeT++/OMNEST
inet::MobilityBase::DirectiveResolver Class Reference

#include <MobilityBase.h>

Inheritance diagram for inet::MobilityBase::DirectiveResolver:
inet::StringFormat::IDirectiveResolver

Public Member Functions

 DirectiveResolver (IMobility *mobility)
 
virtual const char * resolveDirective (char directive) const override
 

Protected Attributes

IMobilitymobility = nullptr
 

Constructor & Destructor Documentation

◆ DirectiveResolver()

inet::MobilityBase::DirectiveResolver::DirectiveResolver ( IMobility mobility)
inline
45 : mobility(mobility) {}

Member Function Documentation

◆ resolveDirective()

const char * inet::MobilityBase::DirectiveResolver::resolveDirective ( char  directive) const
overridevirtual

Implements inet::StringFormat::IDirectiveResolver.

49 {
50  static std::string result;
51  switch (directive) {
52  case 'p':
53  result = mobility->getCurrentPosition().str();
54  break;
55  case 'v':
56  result = mobility->getCurrentVelocity().str();
57  break;
58  case 's':
59  result = std::to_string(mobility->getCurrentVelocity().length());
60  break;
61  case 'a':
62  result = mobility->getCurrentAcceleration().str();
63  break;
64  case 'P':
66  break;
67  case 'V':
69  break;
70  case 'S': {
71  auto angularVelocity = mobility->getCurrentAngularVelocity();
72  Coord axis;
73  double angle;
74  angularVelocity.getRotationAxisAndAngle(axis, angle);
75  result = std::to_string(angle);
76  break;
77  }
78  case 'A':
80  break;
81  default:
82  throw cRuntimeError("Unknown directive: %c", directive);
83  }
84  return result.c_str();
85 }

Member Data Documentation

◆ mobility

IMobility* inet::MobilityBase::DirectiveResolver::mobility = nullptr
protected

Referenced by resolveDirective().


The documentation for this class was generated from the following files:
inet::MobilityBase::DirectiveResolver::mobility
IMobility * mobility
Definition: MobilityBase.h:42
inet::Coord::str
std::string str() const
Returns a string with the value of the coordinate.
Definition: Coord.h:356
inet::IMobility::getCurrentAngularVelocity
virtual const Quaternion & getCurrentAngularVelocity()=0
Returns the angular velocity at the current simulation time.
inet::IMobility::getCurrentAcceleration
virtual const Coord & getCurrentAcceleration()=0
Returns the acceleration at the current simulation time.
inet::IMobility::getCurrentAngularAcceleration
virtual const Quaternion & getCurrentAngularAcceleration()=0
Returns the angular acceleration at the current simulation time.
inet::Quaternion::getRotationAxisAndAngle
void getRotationAxisAndAngle(Coord &axis, double &angle) const
Definition: Quaternion.cc:111
inet::Quaternion::str
std::string str() const
Definition: Quaternion.h:133
inet::IMobility::getCurrentVelocity
virtual const Coord & getCurrentVelocity()=0
Returns the velocity at the current simulation time.
inet::IMobility::getCurrentAngularPosition
virtual const Quaternion & getCurrentAngularPosition()=0
Returns the angular position at the current simulation time.
inet::Coord::length
double length() const
Returns the length of this Coords position vector.
Definition: Coord.h:275
inet::IMobility::getCurrentPosition
virtual const Coord & getCurrentPosition()=0
Returns the position at the current simulation time.