A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
wraparound-model.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 CTTC
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Gabriel Ferreira <gabrielcarvfer@gmail.com>
7 */
8
9#ifndef WRAPAROUNDMODEL_H
10#define WRAPAROUNDMODEL_H
11
12#include "ns3/mobility-model.h"
13
14namespace ns3
15{
16class WraparoundModel : public Object
17{
18 public:
19 /**
20 * @brief Default constructor
21 */
22 WraparoundModel() = default;
23
24 /**
25 * Register this type with the TypeId system.
26 * @return the object TypeId
27 */
28 static TypeId GetTypeId();
29
30 /**
31 * @brief Creates a disposable virtual mobility model for tx based on rx distance and
32 * a wraparound model
33 * @param tx Transmitter mobility model
34 * @param rx Receiver Mobility model
35 * @return virtual mobility model for transmitter
36 */
39 /**
40 * @brief Get virtual position of txPos with respect to rxPos. Each wraparound model
41 * should override this function with their own implementation
42 * @param tx Transmitter position
43 * @param rx Receiver position
44 * @return virtual position of transmitter in respect to receiver position
45 */
46 virtual Vector3D GetVirtualPosition(const Vector3D tx, const Vector3D rx) const;
47};
48} // namespace ns3
49
50#endif // WRAPAROUNDMODEL_H
Object()
Constructor.
Definition object.cc:96
Smart pointer class similar to boost::intrusive_ptr.
Definition ptr.h:67
a unique identifier for an interface.
Definition type-id.h:49
a 3d vector
Definition vector.h:35
WraparoundModel()=default
Default constructor.
static TypeId GetTypeId()
Register this type with the TypeId system.
Ptr< MobilityModel > GetVirtualMobilityModel(Ptr< const MobilityModel > tx, Ptr< const MobilityModel > rx) const
Creates a disposable virtual mobility model for tx based on rx distance and a wraparound model.
virtual Vector3D GetVirtualPosition(const Vector3D tx, const Vector3D rx) const
Get virtual position of txPos with respect to rxPos.
Every class exported by the ns3 library is enclosed in the ns3 namespace.