8#ifndef LEO_CIRCULAR_ORBIT_MOBILITY_MODEL_H
9#define LEO_CIRCULAR_ORBIT_MOBILITY_MODEL_H
14#include "ns3/nstime.h"
15#include "ns3/object.h"
16#include "ns3/vector.h"
An identifier for simulation events.
GeocentricConstantPositionMobilityModel()=default
Create a position located at coordinates (0,0,0).
Vector3D RotatePlane(double theta, const Vector3D &v, Time t) const
Rotates a position vector by angle 'a' around the orbital plane normal, using the Rodrigues rotation ...
~LeoCircularOrbitMobilityModel() override
destructor
double GetInclination() const
Gets the inclination.
double m_longitude
Longitudinal offset in rad.
double GetAltitudeKm() const
Gets the altitude in km (not the usual meters used in ns-3).
double m_orbitalSpeed
Orbital speed in m/s; negative means compute from gravity.
Vector CalcPosition(Time t) const
Calculate the position at time t.
double m_orbitHeight
Orbit height in km.
double GetAltitude() const
Gets the altitude in m.
double GetSpeed() const
Gets the speed of the node.
void SetAltitudeKm(double h)
Sets the altitude in km (not the usual meters used in ns-3).
void SetInclination(double incl)
Sets the inclination.
double m_argumentOfLatitude
Argument of latitude in rad.
Vector3D PlaneNorm(Time t) const
Get the normal vector of the orbital plane.
LeoCircularOrbitMobilityModel()
constructor
Time m_resolutionTimeStep
Time interval between CourseChange notifications; zero disables periodic notifications.
void SetAltitude(double h)
Sets the altitude in m.
double m_inclination
Inclination in rad.
void DoDispose() override
Destructor implementation.
static TypeId GetTypeId()
Get the type ID.
Vector DoGetVelocity() const override
Returns the current velocity of the node.
void NotifyCourseChangeAndReschedule()
Fire NotifyCourseChange and reschedule at m_resolutionTimeStep.
Ptr< MobilityModel > Copy() const override
Copy function allows one to copy the underlying MobilityModel from a MobilityModel pointer,...
double CalcLongitude(Time t) const
Calculate the ECEF longitude of the ascending node at simulation time t.
void DoInitialize() override
Initialize() implementation.
Vector DoGetGeocentricPosition() const override
Returns the Geocentric Position of the Node in ECEF (cartesian).
EventId m_courseChangeEvent
Event for course change notification.
void DoSetPosition(const Vector &position) override
Sets the node position via argument.
Vector DoGetPosition() const override
Returns the node current position.
double GetAngularVelocity() const
Get the orbital angular velocity.
Smart pointer class similar to boost::intrusive_ptr.
Simulation virtual time values and global simulation resolution.
a unique identifier for an interface.
Class GeocentricConstantPositionMobilityModel declaration.
Ptr< T > CreateObject(Args &&... args)
Create an object by type, with varying number of constructor parameters.
Every class exported by the ns3 library is enclosed in the ns3 namespace.