ALMaSS Skylark ODDox  1.1
The skylark model description following ODdox protocol
skTTerritory Class Reference

#include <skylarks_all.h>

Public Member Functions

double GetVirtualDiameter ()
 
void SetVirtualDiameter (double dia)
 
int GetQuality (void)
 
void SetQuality (int a_qual)
 
 skTTerritory (int x, int y, int TheSize, int TheQuality, int a_x_div10, int a_y_div10, int a_range_div10)
 
void TestNestPossibility ()
 
void SetNestPossibility (bool valid, int nx, int ny)
 

Public Attributes

vector< int > m_polys
 
vector< int > m_sizes
 
vector< int > m_hr_polys
 
vector< int > m_hr_sizes
 
int m_x_div10
 
int m_y_div10
 
int m_range_div10
 
bool m_nest_valid
 
int m_nest_pos_validx
 
int m_nest_pos_validy
 
double m_competitionscaler
 
int Size
 
int m_Location_x
 
int m_Location_y
 
Skylark_MaleOwner
 
Skylark_FemaleF_Owner
 

Protected Attributes

double m_VirtualDiameter
 
double m_heterogeneity
 
int m_Quality
 

Constructor & Destructor Documentation

◆ skTTerritory()

skTTerritory::skTTerritory ( int  x,
int  y,
int  TheSize,
int  TheQuality,
int  a_x_div10,
int  a_y_div10,
int  a_range_div10 
)
1273  {
1274  m_x_div10 = a_x_div10;
1275  m_y_div10 = a_y_div10;
1276  m_range_div10 = a_range_div10;
1277  m_Location_x = x;
1278  m_Location_y = y;
1279  Size = TheSize;
1281  m_Quality = TheQuality;
1282  Owner = NULL;
1283  F_Owner = NULL;
1284  m_competitionscaler = 1.0;
1285  m_heterogeneity = 1.0;
1286  m_nest_valid=false;
1289 }

References F_Owner, m_competitionscaler, m_heterogeneity, m_Location_x, m_Location_y, m_nest_pos_validx, m_nest_pos_validy, m_nest_valid, m_Quality, m_range_div10, m_VirtualDiameter, m_x_div10, m_y_div10, Owner, and Size.

Member Function Documentation

◆ GetQuality()

int skTTerritory::GetQuality ( void  )
inline

◆ GetVirtualDiameter()

double skTTerritory::GetVirtualDiameter ( )
inline

◆ SetNestPossibility()

void skTTerritory::SetNestPossibility ( bool  valid,
int  nx,
int  ny 
)
inline
291  {
292  m_nest_valid=valid;
295  }

Referenced by SkTerritories::Split().

◆ SetQuality()

void skTTerritory::SetQuality ( int  a_qual)
inline
285 { m_Quality = a_qual; }

Referenced by SkTerritories::EvaluateHabitatN().

◆ SetVirtualDiameter()

void skTTerritory::SetVirtualDiameter ( double  dia)
inline
278 { m_VirtualDiameter = dia; }

Referenced by SkTerritories::Split().

◆ TestNestPossibility()

void skTTerritory::TestNestPossibility ( )
1292  {
1293  bool result=false;
1294  bool* terrsurface = new bool [m_range_div10*m_range_div10];
1295  for (int i=0; i<m_range_div10; i++) {
1296  for (int j=0; j<m_range_div10; j++) {
1297  terrsurface[i+j*m_range_div10]=true;
1298  }
1299  }
1300 
1301  int skAvoid = __SKTALLAVOIDENCE/10;
1302 
1303  for (int rx=-skAvoid; rx<m_range_div10+skAvoid; rx++) {
1304  int rrx=rx*10;
1305  for (int ry=-skAvoid; ry<m_range_div10+skAvoid; ry++) {
1306  int rry=ry*10;
1307  for (int sx=0; sx<10; sx++) {
1308  for (int sy=0; sy<10; sy++) {
1309  int x = m_Location_x+sx+rrx;
1310  int y = m_Location_y+sy+rry;
1311  if ((x<0) || (y<0) || (x>=g_land->SupplySimAreaWidth()) || (y>=g_land->SupplySimAreaHeight())) {
1312  ;
1313  }
1314  else {
1316  switch (ele) {
1317  case tole_Hedges:
1318  //case tole_HedgeBank: // ***CJT*** testing with and without this, h desigination to exe
1319  case tole_RiversideTrees: // 97
1320  case tole_DeciduousForest: // 40
1321  case tole_MixedForest: // 60
1322  case tole_ConiferousForest: // 50
1323  case tole_StoneWall: // 15
1324  case tole_Fence: //225
1325  case tole_Building: // 5
1326  case tole_Garden: // 10
1327  case tole_ActivePit: // 115
1328  case tole_IndividualTree:
1329  case tole_PlantNursery:
1330  case tole_WindTurbine:
1331  case tole_WoodyEnergyCrop:
1332  case tole_WoodlandMargin:
1333  case tole_Pylon:
1334  result = true;
1335  // No point in testing the rest of this square
1336  sx=11;
1337  sy=11;
1338  break;
1339  default:
1340  ;
1341  }
1342  }
1343  }
1344  }
1345  if (result) {
1346  // Get the location in our 10x10m grid
1347  int gx = rx;
1348  int gy = ry;
1349  // Invalidate the area around this point
1350  int tx1 = gx+skAvoid;
1351  int tx2 = gx-skAvoid;
1352  int ty1 = gy+skAvoid;
1353  int ty2 = gy-skAvoid;
1354  if (tx1>m_range_div10) tx1=m_range_div10;
1355  if (ty1>m_range_div10) ty1=m_range_div10;
1356  if (tx2<0) tx2=0;
1357  if (ty2<0) ty2=0;
1358  for (int xx=tx2; xx<tx1; xx++) {
1359  for (int yy=ty2; yy<ty1; yy++) {
1360  terrsurface[xx+yy*m_range_div10]=false;
1361  }
1362  }
1363  }
1364  result=false;
1365  }
1366  }
1367  m_nest_valid = false;
1368 
1369  for (int i=0; i<m_range_div10; i++) {
1370  for (int j=0; j<m_range_div10; j++) {
1371  if (terrsurface[i+j*m_range_div10]) {
1372  m_nest_valid=true;
1373  m_nest_pos_validx = m_Location_x + (10*i);
1374  m_nest_pos_validy = m_Location_y + (10*j);
1375  i=m_range_div10;
1376  break;
1377  }
1378  }
1379  }
1380  delete [] terrsurface;
1381  if (!m_nest_valid) m_Quality=0;
1382 }

References g_land, m_Location_x, m_Location_y, m_nest_pos_validx, m_nest_pos_validy, m_nest_valid, m_Quality, m_range_div10, Landscape::SupplyElementType(), Landscape::SupplySimAreaHeight(), Landscape::SupplySimAreaWidth(), tole_ActivePit, tole_Building, tole_ConiferousForest, tole_DeciduousForest, tole_Fence, tole_Garden, tole_Hedges, tole_IndividualTree, tole_MixedForest, tole_PlantNursery, tole_Pylon, tole_RiversideTrees, tole_StoneWall, tole_WindTurbine, tole_WoodlandMargin, and tole_WoodyEnergyCrop.

Referenced by SkTerritories::PreProcessLandscape2().

Member Data Documentation

◆ F_Owner

◆ m_competitionscaler

double skTTerritory::m_competitionscaler

◆ m_heterogeneity

double skTTerritory::m_heterogeneity
protected

Referenced by skTTerritory().

◆ m_hr_polys

vector< int > skTTerritory::m_hr_polys

◆ m_hr_sizes

vector< int > skTTerritory::m_hr_sizes

◆ m_Location_x

◆ m_Location_y

◆ m_nest_pos_validx

int skTTerritory::m_nest_pos_validx

◆ m_nest_pos_validy

int skTTerritory::m_nest_pos_validy

◆ m_nest_valid

bool skTTerritory::m_nest_valid

◆ m_polys

vector< int > skTTerritory::m_polys

◆ m_Quality

int skTTerritory::m_Quality
protected

◆ m_range_div10

int skTTerritory::m_range_div10

◆ m_sizes

vector< int > skTTerritory::m_sizes

◆ m_VirtualDiameter

double skTTerritory::m_VirtualDiameter
protected

Referenced by skTTerritory().

◆ m_x_div10

int skTTerritory::m_x_div10

◆ m_y_div10

int skTTerritory::m_y_div10

◆ Owner

◆ Size


The documentation for this class was generated from the following files:
skTTerritory::F_Owner
Skylark_Female * F_Owner
Definition: skylarks_all.h:287
tole_Building
Definition: tole_declaration.h:62
skTTerritory::m_nest_pos_validy
int m_nest_pos_validy
Definition: skylarks_all.h:275
Landscape::SupplyElementType
TTypesOfLandscapeElement SupplyElementType(int a_polyref)
Definition: Landscape.h:1110
tole_StoneWall
Definition: tole_declaration.h:56
skTTerritory::m_heterogeneity
double m_heterogeneity
Definition: skylarks_all.h:298
tole_Garden
Definition: tole_declaration.h:58
tole_MixedForest
Definition: tole_declaration.h:53
skTTerritory::m_competitionscaler
double m_competitionscaler
Definition: skylarks_all.h:276
skTTerritory::m_Quality
int m_Quality
Definition: skylarks_all.h:299
tole_Pylon
Definition: tole_declaration.h:96
tole_WoodlandMargin
Definition: tole_declaration.h:98
tole_WindTurbine
Definition: tole_declaration.h:97
tole_ActivePit
Definition: tole_declaration.h:63
tole_ConiferousForest
Definition: tole_declaration.h:54
skTTerritory::m_Location_x
int m_Location_x
Definition: skylarks_all.h:282
skTTerritory::m_Location_y
int m_Location_y
Definition: skylarks_all.h:283
Landscape::SupplySimAreaHeight
int SupplySimAreaHeight(void)
Definition: Landscape.h:1637
Landscape::SupplySimAreaWidth
int SupplySimAreaWidth(void)
Definition: Landscape.h:1632
skTTerritory::m_y_div10
int m_y_div10
Definition: skylarks_all.h:271
skTTerritory::m_nest_valid
bool m_nest_valid
Definition: skylarks_all.h:273
tole_WoodyEnergyCrop
Definition: tole_declaration.h:94
skTTerritory::Size
int Size
Definition: skylarks_all.h:281
tole_RiversideTrees
Definition: tole_declaration.h:51
skTTerritory::m_VirtualDiameter
double m_VirtualDiameter
Definition: skylarks_all.h:297
TTypesOfLandscapeElement
TTypesOfLandscapeElement
Definition: tole_declaration.h:36
tole_IndividualTree
Definition: tole_declaration.h:93
g_land
Landscape * g_land
Definition: skylarks_all.cpp:49
skTTerritory::m_x_div10
int m_x_div10
Definition: skylarks_all.h:270
tole_PlantNursery
Definition: tole_declaration.h:95
tole_DeciduousForest
Definition: tole_declaration.h:52
tole_Hedges
Definition: tole_declaration.h:37
skTTerritory::m_nest_pos_validx
int m_nest_pos_validx
Definition: skylarks_all.h:274
skTTerritory::Owner
Skylark_Male * Owner
Definition: skylarks_all.h:286
skTTerritory::m_range_div10
int m_range_div10
Definition: skylarks_all.h:272
tole_Fence
Definition: tole_declaration.h:57