21 #ifndef SATELLITE_MOBILITY_MODEL_H
22 #define SATELLITE_MOBILITY_MODEL_H
26 #include <ns3/mobility-model.h>
GeoCoordinate class is used to store and operate with geodetic coordinates.
Keep track of the current position and velocity of an object in satellite network.
void(* CourseChangeCallback)(const Ptr< const SatMobilityModel > model)
Callback signature for SatCourseChange trace source.
virtual ~SatMobilityModel()=0
Destructor for SatMobilityModel.
bool m_GetAsGeoCoordinates
TypeId GetInstanceTypeId(void) const
virtual GeoCoordinate DoGetGeoPosition(void) const =0
Vector m_cartesianPosition
bool m_cartesianPositionOutdated
static TypeId GetTypeId(void)
Get the type ID.
virtual void DoSetGeoPosition(const GeoCoordinate &position)=0
void DoSetCartesianPosition(const Vector &position) const
This method is used to force update of cartesian position.
double GetDistanceFrom(Ptr< const SatMobilityModel > position) const
virtual Vector DoGetPosition(void) const
SatMobilityModel()
Default constructor.
GeoCoordinate GetGeoPosition(void) const
virtual void DoSetPosition(const Vector &position)
ns3::TracedCallback< Ptr< const SatMobilityModel > > m_satCourseChangeTrace
Used to alert subscribers that a change in direction, velocity, or position has occurred.
void SetGeoPosition(const GeoCoordinate &position)
void NotifyGeoCourseChange(void) const
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.