|
SORTIE Core C++ Documentation
|
GLI base - Version 1.0. More...
#include <GLIBase.h>
Public Member Functions | |
| clGLIBase (clSimManager *p_oSimManager) | |
| Constructor. | |
| virtual | ~clGLIBase () |
| Destructor. | |
Public Member Functions inherited from clLightBase | |
| clLightBase (clSimManager *p_oSimManager) | |
| Constructor. | |
| virtual | ~clLightBase () |
| Destructor. | |
| void | Action () |
| Performs all light calculations. | |
| void | RegisterTreeDataMembers () |
| Performs data member registrations for "Light". | |
| virtual float | CalcLightValue (clTree *p_oTree, clTreePopulation *p_oPop)=0 |
| Calculates the light value for a particular tree. | |
| clLightOrg * | GetLightOrg () |
| Gets the light org object. | |
Public Member Functions inherited from clBehaviorBase | |
| virtual float | GetBehaviorVersion () |
| Gets the behavior version number. | |
| clBehaviorBase (clSimManager *p_oSimManager) | |
| Constructor. | |
| virtual | ~clBehaviorBase () |
| Destructor. | |
| virtual short int | ValidateVersionNumber (float fTestVersion) |
| Makes sure that the version number of a file passed is between the minimum and current version numbers. | |
| virtual void | SetSpeciesTypeCombos (short int iNumCombos, stcSpeciesTypeCombo *p_whatCombos) |
| Sets the species/type combos for a behavior. | |
| virtual void | SetNameData (char *cNameString) |
| Sets the string for the parameter file behavior. | |
| virtual short int | GetNewTreeInts () |
| Gets the number of new tree integer data members this behavior wants to register. | |
| virtual short int | GetNewTreeFloats () |
| Gets the number of new tree float data members this behavior wants to register. | |
| virtual short int | GetNewTreeChars () |
| Gets the number of new tree character data members this behavior wants to register. | |
| virtual short int | GetNewTreeBools () |
| Gets the number of new tree bool data members this behavior wants to register. | |
| virtual short int | GetNumSpeciesTypeCombos () |
| Gets the number of species/type combos to which this behavior applies. | |
| virtual short int | GetNumBehaviorSpecies () |
| Gets the number of unique tree species to which this behavior applies. | |
| struct stcSpeciesTypeCombo | GetSpeciesTypeCombo (short int iIndex) |
| Gets one of this behavior's type/species combos. | |
| virtual short int | GetBehaviorSpecies (short int iIndex) |
| Gets one of the behavior's species. | |
| short int | GetBehaviorListNumber () |
| Gets the behavior list number for this behavior, which differentiates between multiple copies of the behavior in the behavior list. | |
| 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. | |
| virtual DOMElement * | GetParentParametersElement (xercesc::DOMDocument *p_oDoc) |
| Formats the string for species/types query. | |
Public Member Functions inherited from clWorkerBase | |
| clWorkerBase (clSimManager *p_oSimManager) | |
| Constructor. | |
| virtual | ~clWorkerBase () |
| Destructor. | |
| char * | GetName () |
| Gets the object's namestring. | |
| void | DoObjectSetup (xercesc::DOMDocument *p_oDoc, fileType iFileType) |
| Triggers the setup process. | |
| virtual void | TimestepCleanup () |
| Performs any necessary cleanup operations at the end of a timestep. | |
| virtual void | EndOfRunCleanup () |
| Performs any necessary cleanup operations at the end of a run. | |
| virtual void | DoCommand (char *cCommand, char *cArguments) |
| If a behavior has registered a command line command with the sim manager, this allows it to be called. | |
Protected Member Functions | |
| void | AddTreeToGliFishEye (const float &fTargetX, const float &fTargetY, const float &fTargetHeight, clTree *p_oNeighbor, clPlot *p_oPlot, clTreePopulation *p_oPop, clAllometry *p_oAllom) |
| Adds one shading neighbor to the fisheye photo array for a GLI calculation. | |
| void | GLIFisheyeNoCanopyIntersect (const float &fTargetX, const float &fTargetY, const float &fNeighX, const float &fNeighY, const float &fNeighCanrad, const float &fNeighHeight, const short int &iNeighSpecies, const float &fTargetHeight, const float &fDistToNearEdge, clTree *p_oNeighbor, clPlot *p_oPlot, clAllometry *p_oAllom) |
| Adds one shading neighbor to the fisheye photo array for a GLI calculation when the canopies of the two trees do not overlap. | |
| void | GLIFisheyeCanopyIntersect (const float &fTargetX, const float &fTargetY, const float &fNeighX, const float &fNeighY, const float &fNeighCanrad, const float &fNeighHeight, const short int &iNeighSpecies, const float &fTargetHeight, clTree *p_oNeighbor, clPlot *p_oPlot, clAllometry *p_oAllom) |
| Adds one shading neighbor to the fisheye photo array for a GLI calculation when the canopies of the two trees overlap. | |
Protected Member Functions inherited from clLightBase | |
| void | GetData (xercesc::DOMDocument *p_oDoc) |
| Triggers all light setup. | |
| virtual void | DoShellSetup (xercesc::DOMDocument *p_oDoc) |
| If a descendent class has specific setup needs, it can overload this function. | |
| void | PopulateGLIBrightnessArray () |
| Populates the GLI brightness array. | |
| void | PopulateSailLightBrightnessArray () |
| Populates the sail brightness array. | |
| float | GetDayAngle (int iJulianDay) |
| Computes day angle. | |
| float | GetDeclination (float &fDayAngle) |
| Computes solar declination. | |
| float | GetEccentricity (float &fDayAngle) |
| Computes solar eccentricity. | |
| float | GetSunrise (float &fLatInRadians, float &fDeclination) |
| Computes sunrise. | |
| float | GetCosineOfZenithAngle (float &fDeclination, float &fLatInRadians, float &fTimeNow) |
| Computes cosine of the zenith angle of the sun at a given time. | |
| float | GetAltitudeAngle (float &fCosZenAng) |
| Computes altitude angle of the sun at a given time in radians. | |
| float | GetAzimuthAngle (float &fDeclination, float &fLatInRadians, float &fAltInRad, float &fTimeNow) |
| Computes azimuth angle of the sun at a given time in radians in SORTIE azimuth coordinates. | |
| float | GetAirmassEffect (float &fAltInDeg, float &fCosZenAng) |
| Computes the airmass effect for a given altitude angle. | |
| float | GetBeamRadiation (float &fClearSkyTransCoeff, float &fAirmass, float &fEccentricity, float &fCosZenAng) |
| Computes beam radiation strength. | |
| virtual float | GetLightExtinctionCoefficient (clTree *p_oTree) |
| Gets the light extinction coefficent. | |
Protected Attributes | |
| float | m_fSinMinSunAng |
| Sin of the min sun angle. | |
| float | m_fAziChunkConverter |
| Reciprocal of the size of a single azimuth sky grid division, in degrees. | |
| float | m_fRcpTanMinAng |
| 1/tan (m_fMinSunAngle). | |
| float * | mp_fAziSlope |
| For each azimuth chunk of sky, this holds the slope of the line to the middle of the chunk. | |
Protected Attributes inherited from clLightBase | |
| bool | m_bHooked |
| Whether or not this shell object is hooked to clLightOrg. | |
| bool | m_bNeedsCommonParameters |
| Whether or not this shell object requires the common light parameters held in clLightOrg such as clLightOrg::m_iLastJulDay. | |
| float ** | mp_fBrightness |
| Sky brightness array. | |
| float ** | mp_fPhoto |
| Simulated fisheye photo array. | |
| float | m_fMinSunAngle |
| The altitude angle below which the sky is assumed to be dark. | |
| int | m_iNumAziAng |
| Number of azimuth angles into which the sky hemisphere is divided. | |
| int | m_iNumAltAng |
| Number of altitude angles into which the sky hemisphere is divided. | |
| int | m_iMinAngRow |
| Row in the brightness array corresponding to the minimum solar angle. | |
Protected Attributes inherited from clBehaviorBase | |
| short int | m_iNumSpeciesTypeCombos |
| How many type/species combos a behavior will act on. | |
| short int | m_iNumBehaviorSpecies |
| How many distinct species are in the combo list - important for filling species-specific values from parameter file. | |
| short int * | mp_iWhatSpecies |
| List of distinct species - for filling species-specific values from parameter file. | |
| stcSpeciesTypeCombo * | mp_whatSpeciesTypeCombos |
| Array of species/type combos that the behavior will act on. | |
| short int | m_iNewTreeInts |
| The number of new tree integer data members this behavior wants to add. | |
| short int | m_iNewTreeFloats |
| The number of new tree float data members this behavior wants to add. | |
| short int | m_iNewTreeChars |
| The number of new tree character data members this behavior wants to add. | |
| short int | m_iNewTreeBools |
| The number of new tree boolean data members this behavior wants to add. | |
| short int | m_iBehaviorListNumber |
| The number of this behavior in the behavior list, to differentiate between possible multiple copies of this behavior. | |
| float | m_fVersionNumber |
| Version number - this will be rounded to 2 digits after the decimal place. | |
| std::string | m_sXMLRoot |
| XML root that encloses the parameters for this behavior. | |
| 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. | |
Protected Attributes inherited from clWorkerBase | |
| char | m_cNameString [MAX_NAMESTRING_SIZE] |
| Object's identifying namestring. | |
| int * | mp_iAllowedFileTypes |
| List of the input file types this object can handle. | |
| int | m_iNumAllowedTypes |
| Number of input file types this object can handle. | |
Additional Inherited Members | |
Static Protected Attributes inherited from clLightBase | |
| static clLightOrg * | mp_oLightOrg |
| clLightOrg object - this pointer is held in common by all shells | |
GLI base - Version 1.0.
This groups the common GLI light functions and data members. Child classes can use the functions here, but there are a set of requirements they must fill. They must:
I could have done a common base class setup function to do this, but those are starting to nest pretty deep between clBehaviorBase and clLightBase. So I left it to the child classes. Each child has to do this separately since each might have different sky setup equations.
Copyright 2003 Charles D. Canham.
Edit history:
--------------—
April 28, 2004 - Submitted as beta (LEM)
| clGLIBase::clGLIBase | ( | clSimManager * | p_oSimManager | ) |
Constructor.
| p_oSimManager | Pointer to the Sim Manager. |
|
virtual |
Destructor.
|
protected |
Adds one shading neighbor to the fisheye photo array for a GLI calculation.
| fTargetX | X coordinate of target tree |
| fTargetY | Y coordinate of target tree |
| fTargetHeight | Height of target tree, in meters |
| p_oNeighbor | The neighbor to be added |
| p_oPlot | Pointer to the plot object |
| p_oPop | Pointer to the tree population object |
| p_oAllom | Pointer to an allometry object |
|
protected |
Adds one shading neighbor to the fisheye photo array for a GLI calculation when the canopies of the two trees overlap.
Called by AddTreeToGliFishEye().
| fTargetX | X coordinate of target tree |
| fTargetY | Y coordinate of target tree |
| fNeighX | X coordinate of shading neighbor |
| fNeighY | Y coordinate of shading neighbor |
| fNeighCanrad | Shading neighbor canopy radius, in meters |
| fNeighHeight | Shading neighbor height, in meters |
| iNeighSpecies | Neighbor species |
| fTargetHeight | Height of target tree, in meters |
| p_oNeighbor | The neighbor to be added |
| p_oPlot | Pointer to plot object |
| p_oAllom | Pointer to an allometry object |
|
protected |
Adds one shading neighbor to the fisheye photo array for a GLI calculation when the canopies of the two trees do not overlap.
Called by AddTreeToGliFishEye().
| fTargetX | X coordinate of target tree |
| fTargetY | Y coordinate of target tree |
| fNeighX | X coordinate of shading neighbor |
| fNeighY | Y coordinate of shading neighbor |
| fNeighCanrad | Shading neighbor canopy radius, in meters |
| fNeighHeight | Shading neighbor height, in meters |
| iNeighSpecies | Neighbor species |
| fTargetHeight | Height of target tree, in meters |
| fDistToNearEdge | Distance to nearest edge of shading neighbor canopy, in m. |
| p_oNeighbor | The neighbor to be added |
| p_oPlot | Pointer to plot object |
| p_oAllom | Pointer to an allometry object |
|
protected |
Reciprocal of the size of a single azimuth sky grid division, in degrees.
For converting to azimuth rows in brightness array - just multiply by an azimuth heading in degrees. This saves tons of calculations when pre-calculated. Since the size of azimuth sky grid divisions may differ, child classes must set this; it's m_iNumAziAng/360.0.
|
protected |
1/tan (m_fMinSunAngle).
Child classes must set this.
|
protected |
Sin of the min sun angle.
Saves tons of calculations to pre-calculate this. Child classes must set this; it's just sin(m_fMinSunAngle).
|
protected |
For each azimuth chunk of sky, this holds the slope of the line to the middle of the chunk.
Array size = m_iNumAziAng. Each value is 1/(tan(fAngChunk*(i + 0.5))), where i = array index, and fAngChunk is the size of each azimuth chunk in radians. Child classes must set this.
1.8.2