20 #include "ns3/simulator.h"
21 #include "ns3/rectangle.h"
23 #include "constant-velocity-helper.h"
27 ConstantVelocityHelper::ConstantVelocityHelper ()
31 ConstantVelocityHelper::ConstantVelocityHelper (
const Vector &position)
32 : m_position (position),
36 ConstantVelocityHelper::ConstantVelocityHelper (
const Vector &position,
38 : m_position (position),
44 ConstantVelocityHelper::SetPosition (
const Vector &position)
46 m_position = position;
47 m_velocity = Vector (0.0, 0.0, 0.0);
52 ConstantVelocityHelper::GetCurrentPosition (
void)
const
58 ConstantVelocityHelper::GetVelocity (
void)
const
60 return m_paused ? Vector (0.0, 0.0, 0.0) : m_velocity;
63 ConstantVelocityHelper::SetVelocity (
const Vector &vel)
70 ConstantVelocityHelper::Update (
void)
const
74 Time deltaTime = now - m_lastUpdate;
81 m_position.
x += m_velocity.
x * deltaS;
82 m_position.
y += m_velocity.
y * deltaS;
83 m_position.
z += m_velocity.
z * deltaS;
87 ConstantVelocityHelper::UpdateWithBounds (
const Rectangle &bounds)
const
90 m_position.
x = std::min (bounds.xMax, m_position.
x);
91 m_position.
x = std::max (bounds.xMin, m_position.
x);
92 m_position.
y = std::min (bounds.yMax, m_position.
y);
93 m_position.
y = std::max (bounds.yMin, m_position.
y);
97 ConstantVelocityHelper::UpdateWithBounds (
const Box &bounds)
const
100 m_position.
x = std::min (bounds.xMax, m_position.
x);
101 m_position.
x = std::max (bounds.xMin, m_position.
x);
102 m_position.
y = std::min (bounds.yMax, m_position.
y);
103 m_position.
y = std::max (bounds.yMin, m_position.
y);
104 m_position.
z = std::min (bounds.zMax, m_position.
z);
105 m_position.
z = std::max (bounds.zMin, m_position.
z);
109 ConstantVelocityHelper::Pause (
void)
115 ConstantVelocityHelper::Unpause (
void)
#define NS_ASSERT(condition)
double GetSeconds(void) const