18#include <unordered_map>
200 [[nodiscard]]
const std::vector<std::unique_ptr<radar::Target>>&
getTargets() const noexcept
210 [[nodiscard]]
const std::vector<std::unique_ptr<radar::Receiver>>&
getReceivers() const noexcept
220 [[nodiscard]]
const std::vector<std::unique_ptr<radar::Transmitter>>&
getTransmitters() const noexcept
222 return _transmitters;
229 [[nodiscard]]
const std::unordered_map<SimId, std::unique_ptr<fers_signal::RadarSignal>>&
239 [[nodiscard]]
const std::unordered_map<SimId, std::unique_ptr<antenna::Antenna>>&
getAntennas() const noexcept
248 [[nodiscard]]
const std::unordered_map<SimId, std::unique_ptr<timing::PrototypeTiming>>&
257 void clear() noexcept;
287 std::vector<std::unique_ptr<radar::Platform>> _platforms;
289 std::vector<std::unique_ptr<radar::Transmitter>> _transmitters;
291 std::vector<std::unique_ptr<radar::Receiver>> _receivers;
293 std::vector<std::unique_ptr<radar::Target>> _targets;
295 std::unordered_map<SimId, std::unique_ptr<fers_signal::RadarSignal>> _waveforms;
297 std::unordered_map<SimId, std::unique_ptr<antenna::Antenna>> _antennas;
299 std::unordered_map<SimId, std::unique_ptr<timing::PrototypeTiming>> _timings;
301 std::priority_queue<Event, std::vector<Event>,
EventComparator> _event_queue;
Header file defining various types of antennas and their gain patterns.
The World class manages the simulator environment.
void scheduleInitialEvents()
Populates the event queue with the initial events for the simulation.
void add(std::unique_ptr< radar::Platform > plat) noexcept
Adds a radar platform to the simulation world.
void replace(std::unique_ptr< radar::Target > target)
Replaces an existing target, updating internal pointers.
fers_signal::RadarSignal * findWaveform(const SimId id)
Finds a radar signal by ID.
~World() noexcept=default
const std::vector< std::unique_ptr< radar::Target > > & getTargets() const noexcept
Retrieves the list of radar targets.
radar::Target * findTarget(const SimId id)
Finds a target by ID.
const std::unordered_map< SimId, std::unique_ptr< antenna::Antenna > > & getAntennas() const noexcept
Retrieves the map of antennas.
radar::Receiver * findReceiver(const SimId id)
Finds a receiver by ID.
radar::Transmitter * findTransmitter(const SimId id)
Finds a transmitter by ID.
void clear() noexcept
Clears all objects and assets from the simulation world.
const std::unordered_map< SimId, std::unique_ptr< fers_signal::RadarSignal > > & getWaveforms() const noexcept
Retrieves the map of radar signals (waveforms).
timing::PrototypeTiming * findTiming(const SimId id)
Finds a timing source by ID.
SimulationState & getSimulationState() noexcept
Gets a mutable reference to the global simulation state.
antenna::Antenna * findAntenna(const SimId id)
Finds an antenna by ID.
const std::unordered_map< SimId, std::unique_ptr< timing::PrototypeTiming > > & getTimings() const noexcept
Retrieves the map of timing prototypes.
const std::vector< std::unique_ptr< radar::Platform > > & getPlatforms() const noexcept
Retrieves the list of platforms.
std::string dumpEventQueue() const
Dumps the current state of the event queue to a string for debugging.
radar::Platform * findPlatform(const SimId id)
Finds a platform by ID.
std::priority_queue< Event, std::vector< Event >, EventComparator > & getEventQueue() noexcept
Gets a mutable reference to the global event queue.
const std::vector< std::unique_ptr< radar::Transmitter > > & getTransmitters() const noexcept
Retrieves the list of radar transmitters.
const std::vector< std::unique_ptr< radar::Receiver > > & getReceivers() const noexcept
Retrieves the list of radar receivers.
Header file for the PrototypeTiming class.
Classes for handling radar waveforms and signals.
Radar Receiver class for managing signal reception and response handling.
Defines the core structures for the event-driven simulation engine.
uint64_t SimId
64-bit Unique Simulation ID.
Defines the global state for the event-driven simulation engine.
A custom comparator for the event priority queue.
Represents a single event in the simulation's time-ordered queue.
Holds the dynamic global state of the simulation.
Defines classes for radar targets and their Radar Cross-Section (RCS) models.
Header file for the Transmitter class in the radar namespace.