FERS 1.0.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
radar::Target Class Referenceabstract

Base class for radar targets. More...

#include "target.h"

+ Inheritance diagram for radar::Target:
+ Collaboration diagram for radar::Target:

Public Member Functions

 Target (Platform *platform, std::string name, const unsigned seed, const SimId id=0)
 Constructs a radar target.
 
virtual RealType getRcs (math::SVec3 &inAngle, math::SVec3 &outAngle, RealType time) const =0
 Gets the RCS value for the target.
 
std::mt19937 & getRngEngine () noexcept
 Gets the target's internal random number generator engine.
 
SimId getId () const noexcept
 Gets the unique ID of the target.
 
void setFluctuationModel (std::unique_ptr< RcsModel > in)
 Sets the RCS fluctuation model.
 
const RcsModelgetFluctuationModel () const
 Gets the RCS fluctuation model.
 
unsigned getSeed () const noexcept
 Gets the initial seed used for the target's RNG.
 
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.
 
PlatformgetPlatform () const noexcept
 Retrieves the associated platform of the object.
 
const std::string & getName () const noexcept
 Retrieves the name of the object.
 
void setName (std::string name) noexcept
 Sets 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.
 
unsigned _seed
 The initial seed for the RNG.
 

Detailed Description

Base class for radar targets.

Definition at line 117 of file target.h.

Constructor & Destructor Documentation

◆ Target()

radar::Target::Target ( Platform platform,
std::string  name,
const unsigned  seed,
const SimId  id = 0 
)

Constructs a radar target.

Parameters
platformPointer to the platform associated with the target.
nameThe name of the target.
seedThe seed for the target's internal random number generator.

Definition at line 127 of file target.h.

127 :
128 Object(platform, std::move(name), ObjectType::Target, id), _rng(seed), _seed(seed)
129 {
130 }
Object(Platform *platform, std::string name, const ObjectType type, const SimId id=0) noexcept
Constructor for Object.
Definition object.h:33
std::mt19937 _rng
Per-object random number generator for statistical independence.
Definition target.h:178
unsigned _seed
The initial seed for the RNG.
Definition target.h:179

Member Function Documentation

◆ getFluctuationModel()

const RcsModel * radar::Target::getFluctuationModel ( ) const

Gets the RCS fluctuation model.

Returns
A const pointer to the RcsModel.

Definition at line 167 of file target.h.

167{ return _model.get(); }
std::unique_ptr< RcsModel > _model
The RCS fluctuation model for the target.
Definition target.h:177

References _model.

Referenced by serial::xml_serializer_utils::serializeTarget(), and radar::to_json().

+ Here is the caller graph for this function:

◆ getId()

SimId radar::Target::getId ( ) const
noexcept

Gets the unique ID of the target.

Returns
The target SimId.

Definition at line 153 of file target.h.

153{ return Object::getId(); }
SimId getId() const noexcept
Retrieves the unique ID of the object.
Definition object.h:72

References radar::Object::getId().

Referenced by core::World::replace(), radar::to_json(), and serial::update_target_from_json().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getName()

const std::string & radar::Object::getName ( ) const
noexceptinherited

◆ getPlatform()

Platform * radar::Object::getPlatform ( ) const
noexceptinherited

Retrieves the associated platform of the object.

Returns
A pointer to the Platform object associated with this object.

Definition at line 65 of file object.h.

65{ return _platform; }

Referenced by simulation::calculateDirectPathContribution(), simulation::calculateReflectedPathContribution(), simulation::calculateResponse(), and serial::update_target_from_json().

+ Here is the caller graph for this function:

◆ getPosition()

math::Vec3 radar::Object::getPosition ( const RealType  time) const
inherited

Retrieves the position of the object.

Parameters
timeThe time at which to get the position of the object.
Returns
A math::Vec3 representing the position of the object.

Definition at line 50 of file object.h.

50{ return _platform->getPosition(time); }
math::Vec3 getPosition(const RealType time) const
Gets the position of the platform at a specific time.
Definition platform.h:75

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:

◆ getRcs()

virtual RealType radar::Target::getRcs ( math::SVec3 inAngle,
math::SVec3 outAngle,
RealType  time 
) const
pure virtual

Gets the RCS value for the target.

Parameters
inAngleThe incoming angle of the radar wave.
outAngleThe outgoing angle of the reflected radar wave.
timeThe current simulation time (default is 0.0).
Returns
The RCS value.

Implemented in radar::IsoTarget, and radar::FileTarget.

Referenced by simulation::calculateReflectedPathContribution(), and simulation::solveRe().

+ Here is the caller graph for this function:

◆ getRngEngine()

std::mt19937 & radar::Target::getRngEngine ( )
noexcept

Gets the target's internal random number generator engine.

Returns
A mutable reference to the RNG engine.

Definition at line 146 of file target.h.

146{ return _rng; }

References _rng.

◆ getRotation()

math::SVec3 radar::Object::getRotation ( const RealType  time) const
inherited

Retrieves the rotation of the object.

Parameters
timeThe time at which to get the rotation of the object.
Returns
A math::SVec3 representing the rotation of the object.

Definition at line 58 of file object.h.

58{ return _platform->getRotation(time); }
math::SVec3 getRotation(const RealType time) const
Gets the rotation of the platform at a specific time.
Definition platform.h:83

References radar::Platform::getRotation().

Referenced by radar::FileTarget::getRcs(), and processing::runPulsedFinalizer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSeed()

unsigned radar::Target::getSeed ( ) const
noexcept

Gets the initial seed used for the target's RNG.

Returns
The initial seed value.

Definition at line 174 of file target.h.

174{ return _seed; }

References _seed.

Referenced by serial::update_target_from_json().

+ Here is the caller graph for this function:

◆ setFluctuationModel()

void radar::Target::setFluctuationModel ( std::unique_ptr< RcsModel in)

Sets the RCS fluctuation model.

Assigns a new RCS fluctuation model to the target.

Parameters
inUnique pointer to the new RCS fluctuation model.

Definition at line 161 of file target.h.

161{ _model = std::move(in); }

References _model.

◆ setName()

void radar::Object::setName ( std::string  name)
noexceptinherited

Sets the name of the object.

Parameters
nameThe new name for the object.

Definition at line 86 of file object.h.

86{ _name = std::move(name); }

Referenced by serial::update_monostatic_from_json(), serial::update_receiver_from_json(), and serial::update_transmitter_from_json().

+ Here is the caller graph for this function:

Member Data Documentation

◆ _model

std::unique_ptr<RcsModel> radar::Target::_model {nullptr}
protected

The RCS fluctuation model for the target.

Definition at line 177 of file target.h.

177{nullptr}; ///< The RCS fluctuation model for the target.

Referenced by getFluctuationModel(), radar::FileTarget::getRcs(), and setFluctuationModel().

◆ _rng

std::mt19937 radar::Target::_rng
protected

Per-object random number generator for statistical independence.

Definition at line 178 of file target.h.

Referenced by getRngEngine().

◆ _seed

unsigned radar::Target::_seed
protected

The initial seed for the RNG.

Definition at line 179 of file target.h.

Referenced by getSeed().


The documentation for this class was generated from the following file: