5#ifndef HEXAGONAL_GRID_SCENARIO_HELPER_H
6#define HEXAGONAL_GRID_SCENARIO_HELPER_H
8#include "node-distribution-scenario-interface.h"
10#include <ns3/random-variable-stream.h>
11#include <ns3/vector.h>
27 void SetResultsDir(std::string resultsDir);
32 void SetSimTag(std::string simTag);
113 void SetMaxUeDistanceToClosestSite(
double maxUeDistanceToClosestSite);
116 uint8_t m_numRings{0};
117 Vector m_centralPos{Vector(0, 0, 0)};
118 double m_hexagonalRadius{0.0};
119 double m_maxUeDistanceToClosestSite{
122 static std::vector<double> siteDistances;
123 static std::vector<double> siteAngles;
125 Ptr<UniformRandomVariable>
127 Ptr<UniformRandomVariable> m_theta;
129 std::string m_resultsDir;
130 std::string m_simTag;
The HexagonalGridScenarioHelper class.
Vector GetHexagonalCellCenter(const Vector &sitePos, uint16_t cellId) const
Returns the cell center coordinates.
int64_t AssignStreams(int64_t stream)
void CreateScenario() override
Create the scenario, with the configured parameter.
~HexagonalGridScenarioHelper() override
~HexagonalGridScenarioHelper
double GetHexagonalCellRadius() const
Gets the radius of the hexagonal cell.
void SetNumRings(uint8_t numRings)
Sets the number of outer rings of sites around the central site.
void CreateScenarioWithMobility(const Vector &speed, double percentage)
This function can be used to create a scenario with UEs with mobility and define a percentage of UEs,...
HexagonalGridScenarioHelper()
HexagonalGridScenarioHelper.
Represents a scenario with base stations and user terminals.