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)
 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.
 
void setFluctuationModel (std::unique_ptr< RcsModel > in)
 Sets the RCS fluctuation model.
 
const RcsModelgetFluctuationModel () 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.
 
PlatformgetPlatform () 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.
 

Detailed Description

Isotropic radar target.

Definition at line 171 of file target.h.

Constructor & Destructor Documentation

◆ IsoTarget()

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

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 182 of file target.h.

182 :
183 Target(platform, std::move(name), seed), _rcs(rcs)
184 {
185 }
Target(Platform *platform, std::string name, const unsigned seed)
Constructs a radar target.
Definition target.h:126

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 199 of file target.h.

199{ 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 159 of file target.h.

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

References radar::Target::_model.

Referenced by radar::to_json().

+ Here is the caller graph for this function:

◆ getName()

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

Retrieves the name of the object.

Returns
A const reference to the string representing the object's name.

Definition at line 68 of file object.h.

68{ return _name; }

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:

◆ 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 61 of file object.h.

61{ return _platform; }

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

+ 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 46 of file object.h.

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

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 145 of file target.h.

145{ return _rng; }
std::mt19937 _rng
Per-object random number generator for statistical independence.
Definition target.h:163

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 54 of file object.h.

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

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:

◆ 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 153 of file target.h.

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

References radar::Target::_model.

Member Data Documentation

◆ _model

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

The RCS fluctuation model for the target.

Definition at line 162 of file target.h.

162{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 163 of file target.h.

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


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