|
FERS 1.0.0
The Flexible Extensible Radar Simulator
|
File-based radar target. More...
#include "target.h"
Inheritance diagram for radar::FileTarget:
Collaboration diagram for radar::FileTarget:Public Member Functions | |
| FileTarget (Platform *platform, std::string name, const std::string &filename, unsigned seed) | |
| Constructs a file-based radar target. | |
| RealType | getRcs (math::SVec3 &inAngle, math::SVec3 &outAngle, RealType time) const override |
| Gets the RCS value from file-based data for a specific bistatic geometry and time. | |
| const std::string & | getFilename () const noexcept |
| Gets the filename associated with this target's RCS data. | |
| std::mt19937 & | getRngEngine () noexcept |
| Gets the target's internal random number generator engine. | |
| void | setFluctuationModel (std::unique_ptr< RcsModel > in) |
| Sets the RCS fluctuation model. | |
| const RcsModel * | getFluctuationModel () const |
| Gets the RCS fluctuation model. | |
| math::Vec3 | getPosition (const RealType time) const |
| Retrieves the position of the object. | |
| math::SVec3 | getRotation (const RealType time) const |
| Retrieves the rotation of the object. | |
| Platform * | getPlatform () const noexcept |
| Retrieves the associated platform of the object. | |
| const std::string & | getName () const noexcept |
| Retrieves the name of the object. | |
Protected Attributes | |
| std::unique_ptr< RcsModel > | _model {nullptr} |
| The RCS fluctuation model for the target. | |
| std::mt19937 | _rng |
| Per-object random number generator for statistical independence. | |
| radar::FileTarget::FileTarget | ( | Platform * | platform, |
| std::string | name, | ||
| const std::string & | filename, | ||
| unsigned | seed | ||
| ) |
Constructs a file-based radar target.
| platform | Pointer to the platform associated with the target. |
| name | The name of the target. |
| filename | The name of the file containing RCS data. |
| seed | The seed for the target's internal random number generator. |
| std::runtime_error | If the file cannot be loaded or parsed. |
Definition at line 59 of file target.cpp.
References XmlElement::childElement(), XmlDocument::getRootElement(), and XmlDocument::loadFile().
Here is the call graph for this function:
|
noexcept |
|
inherited |
Gets the RCS fluctuation model.
Definition at line 159 of file target.h.
References radar::Target::_model.
Referenced by radar::to_json().
Here is the caller graph for this function:
|
noexceptinherited |
Retrieves the name of the object.
Definition at line 68 of file object.h.
Referenced by simulation::calculatePreviewLinks(), simulation::calculateResponse(), processing::finalizeCwReceiver(), serial::Response::getTransmitterName(), processing::runPulsedFinalizer(), radar::Receiver::setNoiseTemperature(), radar::to_json(), radar::to_json(), and radar::to_json().
Here is the caller graph for this function:
|
noexceptinherited |
Retrieves the associated platform of the object.
Definition at line 61 of file object.h.
Referenced by simulation::calculateDirectPathContribution(), simulation::calculateReflectedPathContribution(), and simulation::calculateResponse().
Here is the caller graph for this function:
|
inherited |
Retrieves the position of the object.
| time | The time at which to get the position of the object. |
Definition at line 46 of file object.h.
References radar::Platform::getPosition().
Referenced by simulation::calculatePreviewLinks(), simulation::solveRe(), and simulation::solveReDirect().
Here is the call graph for this function:
Here is the caller graph for this function:
|
overridevirtual |
Gets the RCS value from file-based data for a specific bistatic geometry and time.
| inAngle | The incoming angle of the radar wave in the global frame. |
| outAngle | The outgoing angle of the reflected radar wave in the global frame. |
| time | The simulation time at which the interaction occurs. |
| std::runtime_error | If RCS data cannot be retrieved. |
This function calculates the target's aspect-dependent RCS. The key steps are:
NOTE: This function returns the raw RCS value (σ), which is linearly proportional to scattered power. The calling physics engine is responsible for converting this to a signal amplitude by taking the square root.
Implements radar::Target.
Definition at line 75 of file target.cpp.
References radar::Target::_model, math::SVec3::azimuth, math::SVec3::elevation, logging::FATAL, radar::Object::getRotation(), and LOG.
Here is the call graph for this function:
|
noexceptinherited |
Gets the target's internal random number generator engine.
Definition at line 145 of file target.h.
References radar::Target::_rng.
|
inherited |
Retrieves the rotation of the object.
| time | The time at which to get the rotation of the object. |
Definition at line 54 of file object.h.
References radar::Platform::getRotation().
Referenced by getRcs(), and processing::runPulsedFinalizer().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inherited |
Sets the RCS fluctuation model.
Assigns a new RCS fluctuation model to the target.
| in | Unique pointer to the new RCS fluctuation model. |
Definition at line 153 of file target.h.
References radar::Target::_model.
|
protectedinherited |
The RCS fluctuation model for the target.
Definition at line 162 of file target.h.
Referenced by radar::Target::getFluctuationModel(), getRcs(), and radar::Target::setFluctuationModel().
|
protectedinherited |
Per-object random number generator for statistical independence.
Definition at line 163 of file target.h.
Referenced by radar::Target::getRngEngine().