FERS 1.0.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
radar::IsoTarget Class Referencefinal

Isotropic radar target. More...

#include "target.h"

+ Inheritance diagram for radar::IsoTarget:
+ Collaboration diagram for radar::IsoTarget:

Public Member Functions

 IsoTarget (Platform *platform, std::string name, const RealType rcs, const unsigned seed, const SimId id=0)
 Constructs an isotropic radar target.
 
RealType getRcs (math::SVec3 &, math::SVec3 &, RealType) const noexcept override
 Gets the constant RCS value.
 
RealType getConstRcs () const noexcept
 Gets the constant RCS value (without fluctuation model applied).
 
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

Isotropic radar target.

Definition at line 187 of file target.h.

Constructor & Destructor Documentation

◆ IsoTarget()

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

Constructs an isotropic radar target.

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

Definition at line 198 of file target.h.

198 :
199 Target(platform, std::move(name), seed, id), _rcs(rcs)
200 {
201 }
Target(Platform *platform, std::string name, const unsigned seed, const SimId id=0)
Constructs a radar target.
Definition target.h:127

Member Function Documentation

◆ getConstRcs()

RealType radar::IsoTarget::getConstRcs ( ) const
noexcept

Gets the constant RCS value (without fluctuation model applied).

Returns
The constant RCS value.

Definition at line 215 of file target.h.

215{ return _rcs; }

◆ getFluctuationModel()

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

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 radar::Target::_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
noexceptinherited

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()

RealType radar::IsoTarget::getRcs ( math::SVec3 ,
math::SVec3 ,
RealType   
) const
overridevirtualnoexcept

Gets the constant RCS value.

Returns
The constant RCS value, possibly modified by the fluctuation model.

Implements radar::Target.

Definition at line 54 of file target.cpp.

55 {
56 return _model ? _rcs * _model->sampleModel() : _rcs;
57 }

◆ getRngEngine()

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

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; }
std::mt19937 _rng
Per-object random number generator for statistical independence.
Definition target.h:178

References radar::Target::_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
noexceptinherited

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; }
unsigned _seed
The initial seed for the RNG.
Definition target.h:179

References radar::Target::_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)
inherited

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 radar::Target::_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}
protectedinherited

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 radar::Target::getFluctuationModel(), radar::FileTarget::getRcs(), and radar::Target::setFluctuationModel().

◆ _rng

std::mt19937 radar::Target::_rng
protectedinherited

Per-object random number generator for statistical independence.

Definition at line 178 of file target.h.

Referenced by radar::Target::getRngEngine().

◆ _seed

unsigned radar::Target::_seed
protectedinherited

The initial seed for the RNG.

Definition at line 179 of file target.h.

Referenced by radar::Target::getSeed().


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