SORTIE Core C++ Documentation
|
BehaviorBase - Version 2.0 This class acts as a virtual parent for all behavior classes. More...
#include <BehaviorBase.h>
Public Member Functions | |
virtual float | GetBehaviorVersion () |
Gets the behavior version number. More... | |
clBehaviorBase (clSimManager *p_oSimManager) | |
Constructor. More... | |
virtual | ~clBehaviorBase () |
Destructor. More... | |
virtual void | Action () |
This is the function which is called each timestep and performs the actual work of the behavior. More... | |
virtual short int | ValidateVersionNumber (float fTestVersion) |
Makes sure that the version number of a file passed is between the minimum and current version numbers. More... | |
virtual void | RegisterTreeDataMembers () |
Registers tree data members. More... | |
virtual void | SetSpeciesTypeCombos (short int iNumCombos, stcSpeciesTypeCombo *p_whatCombos) |
Sets the species/type combos for a behavior. More... | |
virtual void | SetNameData (std::string sNameString) |
Sets the string for the parameter file behavior. More... | |
virtual short int | GetNewTreeInts () |
Gets the number of new tree integer data members this behavior wants to register. More... | |
virtual short int | GetNewTreeFloats () |
Gets the number of new tree float data members this behavior wants to register. More... | |
virtual short int | GetNewTreeChars () |
Gets the number of new tree character data members this behavior wants to register. More... | |
virtual short int | GetNewTreeBools () |
Gets the number of new tree bool data members this behavior wants to register. More... | |
virtual short int | GetNumSpeciesTypeCombos () |
Gets the number of species/type combos to which this behavior applies. More... | |
virtual short int | GetNumBehaviorSpecies () |
Gets the number of unique tree species to which this behavior applies. More... | |
struct stcSpeciesTypeCombo | GetSpeciesTypeCombo (short int iIndex) |
Gets one of this behavior's type/species combos. More... | |
virtual short int | GetBehaviorSpecies (short int iIndex) |
Gets one of the behavior's species. More... | |
short int | GetBehaviorListNumber () |
Gets the behavior list number for this behavior, which differentiates between multiple copies of the behavior in the behavior list. More... | |
void | SetBehaviorListNumber (short int iNumber) |
Sets the behavior list number for this behavior, which differentiates between multiple copies of the behavior in the behavior list. More... | |
std::string | FormatSpeciesTypeQueryString () |
Formats the string for species/types query. More... | |
virtual DOMElement * | GetParentParametersElement (xercesc::DOMDocument *p_oDoc) |
This will get the correct set of parameters for this behavior based on the behavior list position number. More... | |
Public Member Functions inherited from clWorkerBase | |
clWorkerBase (clSimManager *p_oSimManager) | |
Constructor. More... | |
virtual | ~clWorkerBase () |
Destructor. More... | |
std::string | GetName () |
Gets the object's namestring. More... | |
clSimManager * | GetSimManager () |
void | DoObjectSetup (xercesc::DOMDocument *p_oDoc, fileType iFileType) |
Triggers the setup process. More... | |
virtual void | TimestepCleanup () |
Performs any necessary cleanup operations at the end of a timestep. More... | |
virtual void | EndOfRunCleanup () |
Performs any necessary cleanup operations at the end of a run. More... | |
Protected Attributes | |
short int | m_iNumSpeciesTypeCombos |
How many type/species combos a behavior will act on. More... | |
short int | m_iNumBehaviorSpecies |
How many distinct species are in the combo list - important for filling species-specific values from parameter file. More... | |
short int * | mp_iWhatSpecies |
List of distinct species - for filling species-specific values from parameter file. More... | |
stcSpeciesTypeCombo * | mp_whatSpeciesTypeCombos |
Array of species/type combos that the behavior will act on. More... | |
short int | m_iNewTreeInts |
The number of new tree integer data members this behavior wants to add. More... | |
short int | m_iNewTreeFloats |
The number of new tree float data members this behavior wants to add. More... | |
short int | m_iNewTreeChars |
The number of new tree character data members this behavior wants to add. More... | |
short int | m_iNewTreeBools |
The number of new tree boolean data members this behavior wants to add. More... | |
short int | m_iBehaviorListNumber |
The number of this behavior in the behavior list, to differentiate between possible multiple copies of this behavior. More... | |
float | m_fVersionNumber |
Version number - this will be rounded to 2 digits after the decimal place. More... | |
std::string | m_sXMLRoot |
XML root that encloses the parameters for this behavior. More... | |
float | m_fMinimumVersionNumber |
Minimum version number - this behavior will run parameter data for a file marked between this number and the current version number, inclusive. More... | |
Protected Attributes inherited from clWorkerBase | |
std::string | m_sNameString |
If a behavior has registered a command line command with the sim manager, this allows it to be called. More... | |
clSimManager * | mp_oSimManager |
Pointer to the simulation manager object. More... | |
int * | mp_iAllowedFileTypes |
List of the input file types this object can handle. More... | |
int | m_iNumAllowedTypes |
Number of input file types this object can handle. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from clWorkerBase | |
virtual void | GetData (xercesc::DOMDocument *p_oDoc)=0 |
Performs an object's setup. More... | |
void | AssembleFileCode (int iFileType, int iFileVersion, char *cCode) |
Creates the proper identifying filecode for an XML file. More... | |
BehaviorBase - Version 2.0 This class acts as a virtual parent for all behavior classes.
This allows the Simulation Manager to work with behavior objects without knowing anything about them.
There should not be any objects instantiated from this class.
Because I am continually surprised at the basic functions I want to mess with in my derived classes, every function here is virtual. Most administrative dealings with behaviors have them cast to the clBehaviorBase class, so function-hiding won't work. Override to your heart's content.
Copyright 2011 Charles D. Canham.
Edit history:
--------------—
October 20, 2011 - Wiped the slate clean for SORTIE 7.0; created version 2.0 (LEM)
May 18, 2015 - Changed GetParentParametersElement so it wasn't an error if element was not found (LEM)
clBehaviorBase::clBehaviorBase | ( | clSimManager * | p_oSimManager | ) |
Constructor.
Initializes variables.
p_oSimManager | Sim Manager object. |
|
virtual |
Destructor.
Destroys variables initialized in the constructor.
|
virtual |
This is the function which is called each timestep and performs the actual work of the behavior.
This function is overridden in the child behavior classes.
Reimplemented in clMerchValueCalculator, clWindstorm, clStorm, clBoleVolumeCalculator, clDensDepInfestation, clFuncResponseSeedPredation, clDetailedSubstrate, clLightDepSeedSurvival, clHarvestInterface, clCompetitionHarvest, clVolumeCalculator, clStormDamageApplier, clQualityVigorClassifier, clGeneralizedHarvestRegime, clGrowthBase, clMicroEstablishment, clInsectInfestation, clSubstrate, clStormKiller, clSubstrateDepSeedSurvival, clStormLight, clEpiphyticEstablishment, clSeasonalWaterDeficit, clDisturbance, clLightFilter, clDensitySeedSurvival, clNeighborhoodSeedPredation, clDimensionAnalysis, clSnagDecomp, clQuadratGLILight, clSelectionHarvest, clConditOmegaCalculator, clGLIMap, clLightBase, clPlant, clEstablishment, clGLIPoints, clStormDirectKiller, clOutput, clStochasticGapGrowth, clMortalityBase, clClimateChange, clClimateImporter, clRipleysKCalculator, clStormKilledPartitionedBiomass, clPartitionedBiomass, clGermination, clCarbonValueCalculator, clShortOutput, clFoliarChemistry, clTreeAgeCalculator, clTreeRemover, clRandomBrowse, clDisperseBase, clCrownRadiusReporter, clStateReporter, and clRandomSeedLogger.
std::string clBehaviorBase::FormatSpeciesTypeQueryString | ( | ) |
Formats the string for species/types query.
This value can be used to pass to clTreePopulation::Find() in order to get the trees to act on.
|
inline |
Gets the behavior list number for this behavior, which differentiates between multiple copies of the behavior in the behavior list.
|
virtual |
Gets one of the behavior's species.
To get all species, loop through based on GetNumBehaviorSpecies and hit this function numerous times. I did it this way as the most secure way I could think of to access the members of an array.
iIndex | of the species. |
BAD_DATA | error if the argument is not a valid array index. |
|
inlinevirtual |
Gets the behavior version number.
|
inlinevirtual |
Gets the number of new tree bool data members this behavior wants to register.
|
inlinevirtual |
Gets the number of new tree character data members this behavior wants to register.
|
inlinevirtual |
Gets the number of new tree float data members this behavior wants to register.
|
inlinevirtual |
Gets the number of new tree integer data members this behavior wants to register.
Reimplemented in clMortalityBase.
|
inlinevirtual |
Gets the number of unique tree species to which this behavior applies.
|
inlinevirtual |
Gets the number of species/type combos to which this behavior applies.
|
virtual |
This will get the correct set of parameters for this behavior based on the behavior list position number.
p_oDoc | Parsed XML doc. |
struct stcSpeciesTypeCombo clBehaviorBase::GetSpeciesTypeCombo | ( | short int | iIndex | ) |
Gets one of this behavior's type/species combos.
To get all species or types, loop through based on GetNumCombos and hit this function numerous times. I did it this way as the most secure way I could think of to access the members of an array.
iIndex | of the species/type combo. |
BAD_DATA | error if the argument is not a valid array index. |
|
virtual |
Registers tree data members.
If a behavior has any tree data members to add, it should register them by overriding this function. It cannot be assumed at this point that any data will have been read from the parameter file for the behavior itself, although it can be assumed that the tree population has read its data.
Reimplemented in clMerchValueCalculator, clGrowthBase, clLaggedPostHarvestGrowth, clHarvestInterface, clBoleVolumeCalculator, clVolumeCalculator, clDensDepInfestation, clLightDepSeedSurvival, clGeneralizedHarvestRegime, clQualityVigorClassifier, clCompetitionHarvest, clSnagDecomp, clDimensionAnalysis, clInsectInfestation, clEpiphyticEstablishment, clAbsoluteGrowth, clStormDamageApplier, clMortalityBase, clMichMenNegGrowth, clLightBase, clCarbonValueCalculator, clTreeAgeCalculator, clCrownRadiusReporter, and clRandomBrowse.
|
inline |
Sets the behavior list number for this behavior, which differentiates between multiple copies of the behavior in the behavior list.
iNumber | Behavior list number. |
|
inlinevirtual |
Sets the string for the parameter file behavior.
The string passed in the parameter file is, by default, ignored; but since it could be used by a behavior to pass information, a behavior class can override this function to capture this.
sNameString | The behavior name string from the parameter file. |
Reimplemented in clLaggedPostHarvestGrowth, clHarvestInterface, clDisturbance, clFuncResponseSeedPredation, clLightDepSeedSurvival, clSubstrateDepSeedSurvival, clNCIMasterGrowth, clAllometricGrowthIncrementer, clSizeDepLogisticGrowth, clNCIMasterQuadratGrowth, clShadedLinearGrowth, clLognormalGrowth, clRelativeGrowth, clNeighborhoodSeedPredation, clDoubleMMRelGrowth, clLogisticGrowth, clSimpleLinearGrowth, clLinearBiLevelGrowth, clDensitySeedSurvival, clStormKilledPartitionedBiomass, clPartitionedBiomass, clAbsoluteGrowth, clBrowsedRelativeGrowth, clClimateChange, clStochasticBiLevelMortality, clSpatialDispersal, clConstantRadialGrowth, and clConstantBAGrowth.
|
virtual |
Sets the species/type combos for a behavior.
This function is only allowed to be called once, because messing with it would be very awful. These don't check for duplicate values in the list passed. The unique species list is assembled and placed in mp_iWhatSpecies.
iNumCombos | Number of species/type combos being passed. |
p_whatCombos | Array of species/type combo objects. |
ModelErr | If this function was called previously. |
|
virtual |
Makes sure that the version number of a file passed is between the minimum and current version numbers.
fTestVersion | Test version number to validate. |
|
protected |
Minimum version number - this behavior will run parameter data for a file marked between this number and the current version number, inclusive.
|
protected |
Version number - this will be rounded to 2 digits after the decimal place.
|
protected |
The number of this behavior in the behavior list, to differentiate between possible multiple copies of this behavior.
|
protected |
The number of new tree boolean data members this behavior wants to add.
|
protected |
The number of new tree character data members this behavior wants to add.
|
protected |
The number of new tree float data members this behavior wants to add.
|
protected |
The number of new tree integer data members this behavior wants to add.
|
protected |
How many distinct species are in the combo list - important for filling species-specific values from parameter file.
|
protected |
How many type/species combos a behavior will act on.
|
protected |
XML root that encloses the parameters for this behavior.
|
protected |
List of distinct species - for filling species-specific values from parameter file.
|
protected |
Array of species/type combos that the behavior will act on.