#include <GLIBase.h>
Inheritance diagram for clGLIBase:
Public Member Functions | |
clGLIBase (clSimManager *p_oSimManager) | |
Constructor. | |
virtual | ~clGLIBase () |
Destructor. | |
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 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. |
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.
|
Constructor.
|
|
Adds one shading neighbor to the fisheye photo array for a GLI calculation.
|
|
Adds one shading neighbor to the fisheye photo array for a GLI calculation when the canopies of the two trees overlap. Called by AddTreeToGliFishEye().
|
|
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().
|
|
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. |
|
1/tan (m_fMinSunAngle). Child classes must set this. |
|
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). |
|
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. |