WSF
WsfSatelliteBreakupModel Class Referenceabstract

#include <WsfSatelliteBreakupModel.hpp>

Inheritance diagram for WsfSatelliteBreakupModel:

Classes

struct  Fragment
 The standard information produced by breakup models for each fragment. More...

Public Member Functions

 WsfSatelliteBreakupModel (WsfSimulation &aSimulation)
virtual ~WsfSatelliteBreakupModel ()=default
bool HasGenerated () const
virtual size_t GetFragmentCount () const =0
 Return the number of pieces of debris that were generated.
virtual Fragment GetFragment (size_t aIndex) const =0
 Get the indicated fragment's details.
bool ExplosiveBreakup (double aSimTime, const std::string &aPlatformName, const std::vector< double > &aParams)
bool CollisionalBreakup (double aSimTime, const std::string &aTargetPlatform, const std::vector< double > &aTargetParams, const std::string &aImpactorPlatform, const std::vector< double > &aImpactorParams)
const std::string & GetFragmentPlatformType () const
 Get the type of the platform for any fragments created by this object.
void SetFragmentPlatformType (const std::string &aPlatformType)
 Set the type of the platform for any fragments created by this object.

Protected Member Functions

virtual bool ModelExplosion (WsfPlatform &aPlatform, const std::vector< double > &aParams)=0
virtual bool ModelCollision (WsfPlatform &aTargetPlatform, const std::vector< double > &aTargetParams, WsfPlatform &aImpactorPlatform, const std::vector< double > &aImpactorParams)=0
WsfSimulationGetSimulation () const

Constructor & Destructor Documentation

◆ WsfSatelliteBreakupModel()

WsfSatelliteBreakupModel::WsfSatelliteBreakupModel ( WsfSimulation & aSimulation)
inlineexplicit

◆ ~WsfSatelliteBreakupModel()

virtual WsfSatelliteBreakupModel::~WsfSatelliteBreakupModel ( )
virtualdefault

Member Function Documentation

◆ CollisionalBreakup()

bool WsfSatelliteBreakupModel::CollisionalBreakup ( double aSimTime,
const std::string & aTargetPlatform,
const std::vector< double > & aTargetParams,
const std::string & aImpactorPlatform,
const std::vector< double > & aImpactorParams )

Perform a collisional breakup of the given platforms.

This will perform the breakup of the two platforms due to a collision. The arguments, aTargetPlatform and aImpactPlatform, specify the two platforms involved in the collision, though the labeling of one as the 'target' and the other as the 'Impactor' should not be taken to be a requirement on the role of the two platforms. The model parameters for the two platforms are given as aTargetParams and aImpactorParams. If either platform does not exist, or if they are not near to each other when this method is called, then this will do nothing and return false. If the platforms exist, and they are close enough to be in a collision, then this will produce a number of new platforms in the simulation associated with this object when it was constructed. This will also remove the given platforms. If this object has been previously used to model a breakup, then this method will do nothing, and return false.

Parameters
aSimTime- the simulation time of the
aTargetPlatform- the name of one platform involved in the collision.
aTargetParams- the model parameters for the target platform.
aImpactorPlatform- the name of the other platform involved in the collision.
aImpactorParams- the model parameters for the impactor platform.

References WsfSimulation::GetPlatformByName(), GetSimulation(), HasGenerated(), ModelCollision(), and WsfPlatform::Update().

◆ ExplosiveBreakup()

bool WsfSatelliteBreakupModel::ExplosiveBreakup ( double aSimTime,
const std::string & aPlatformName,
const std::vector< double > & aParams )

Perform an explosive breakup of the given platform.

This will perform the breakup of the platform with the given aPlatformName according to the model represented by this object. If there is no such platform at the time this is called, then this will have no effect. The aParams are any parameters of the platform that are needed by the model. This will generate a number of new platforms in the simulation that this object is associated with during construction. Further, this will remove the named platform from the simulation. If this object has previously been used to successfully model a breakup, then this method will do nothing, and return false.

Parameters
aSimTime- the simulation time at which this method is being called.
aPlatformName- the name of the platform experiencing the breakup.
aParams- the parameters associated with the platform needed by the model.
Returns
- true for a successful breakup; false otherwise.

References WsfSimulation::GetPlatformByName(), GetSimulation(), HasGenerated(), ModelExplosion(), and platformPtr.

Referenced by UT_DEFINE_SCRIPT_METHOD().

◆ GetFragment()

virtual Fragment WsfSatelliteBreakupModel::GetFragment ( size_t aIndex) const
pure virtual

Get the indicated fragment's details.

Implemented in WsfNASA_BreakupModel.

◆ GetFragmentCount()

virtual size_t WsfSatelliteBreakupModel::GetFragmentCount ( ) const
pure virtual

Return the number of pieces of debris that were generated.

Implemented in WsfNASA_BreakupModel.

◆ GetFragmentPlatformType()

const std::string & WsfSatelliteBreakupModel::GetFragmentPlatformType ( ) const
inline

Get the type of the platform for any fragments created by this object.

◆ GetSimulation()

WsfSimulation & WsfSatelliteBreakupModel::GetSimulation ( ) const
inlineprotected

◆ HasGenerated()

bool WsfSatelliteBreakupModel::HasGenerated ( ) const
inline

◆ ModelCollision()

virtual bool WsfSatelliteBreakupModel::ModelCollision ( WsfPlatform & aTargetPlatform,
const std::vector< double > & aTargetParams,
WsfPlatform & aImpactorPlatform,
const std::vector< double > & aImpactorParams )
protectedpure virtual

Compute the fragments produced by the collision model.

This method should be implemented by subclasses to actually perform the generation of fragment characteristics. This method is called before AddFragmentsToSimulation. If there is some issue generating the full set of fragments, then this will return false.

Parameters
aTargetPlatform- The first platform participating in the collisional breakup.
aTargetParams- The model parameters for the first platform.
aImpactorPlatform- The second platform participating in the collisional breakup.
aImpactorParams- The model parameters for the second platform.
Returns
- true if fragments are successfully generated; false otherwise.

Referenced by CollisionalBreakup().

◆ ModelExplosion()

virtual bool WsfSatelliteBreakupModel::ModelExplosion ( WsfPlatform & aPlatform,
const std::vector< double > & aParams )
protectedpure virtual

Compute the fragments produced by the explosion model.

This method should be implemented by subclasses to actually perform the generation of fragment characteristics. This method is called before AddFragmentsToSimulation. If there is some issue generating the full set of fragments, then this will return false.

Parameters
aPlatform- The platform for which to model an explosive breakup.
aParams- The model parameters for the indicated platform.
Returns
- true if fragments are successfully generated; false otherwise.

Referenced by ExplosiveBreakup().

◆ SetFragmentPlatformType()

void WsfSatelliteBreakupModel::SetFragmentPlatformType ( const std::string & aPlatformType)

Set the type of the platform for any fragments created by this object.


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved