Loading [MathJax]/extensions/ams.js
ALMaSS  1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
OsmiaForageMask Class Reference

#include <Osmia.h>

Public Member Functions

 OsmiaForageMask ()
 

Public Attributes

int m_mask [20][8][2]
 Holds 20 distances and 8 directions with offsets to x,y. More...
 
int m_step
 
int m_step2
 

Constructor & Destructor Documentation

◆ OsmiaForageMask()

OsmiaForageMask::OsmiaForageMask ( )

This is a simple distance mask which can be used to search outwards in even steps of cfg_OsmiaForageMaskStep It represents 8 directions in 20 even steps of 1/19 the max homing distance. When used it will add another 1/19 to a randsom search start point from the next location. It is really a data class, and everything is publically accessible.

1714 {
1721  m_step2 = m_step * 2;
1722  for (int i = 0; i < cfg_OsmiaForageSteps.value(); i++)
1723  {
1724  int distance = (i+1) * m_step;
1725  m_mask[i][0][0] = distance;
1726  m_mask[i][0][1] = distance;
1727  m_mask[i][1][0] = distance;
1728  m_mask[i][1][1] = 0;
1729  m_mask[i][2][0] = distance;
1730  m_mask[i][2][1] = distance * -1;
1731 
1732  m_mask[i][3][0] = distance * -1;
1733  m_mask[i][3][1] = distance;
1734  m_mask[i][4][0] = distance * -1;
1735  m_mask[i][4][1] = 0;
1736  m_mask[i][5][0] = distance * -1;
1737  m_mask[i][5][1] = distance * -1;
1738 
1739  m_mask[i][6][0] = 0;
1740  m_mask[i][6][1] = distance;
1741  m_mask[i][7][0] = 0;
1742  m_mask[i][7][1] = distance * -1;
1743  }
1744 }

References cfg_OsmiaForageMaskStepSZ, cfg_OsmiaForageSteps, m_mask, m_step, m_step2, and CfgInt::value().

Member Data Documentation

◆ m_mask

int OsmiaForageMask::m_mask[20][8][2]

Holds 20 distances and 8 directions with offsets to x,y.

This is a way to speed up searches from a centre point. The predefined mask can be iterated through without having to calculate offsets. It could also be modified to alter distances between locations if needed by altering the step size.

Referenced by OsmiaForageMask().

◆ m_step

int OsmiaForageMask::m_step

Referenced by OsmiaForageMask().

◆ m_step2

int OsmiaForageMask::m_step2

Referenced by OsmiaForageMask().


The documentation for this class was generated from the following files:
OsmiaForageMask::m_step2
int m_step2
Definition: Osmia.h:101
cfg_OsmiaForageSteps
CfgInt cfg_OsmiaForageSteps("OSMIA_FORAGESTEPS", CFG_CUSTOM, 20)
CfgInt::value
int value() const
Definition: Configurator.h:116
OsmiaForageMask::m_mask
int m_mask[20][8][2]
Holds 20 distances and 8 directions with offsets to x,y.
Definition: Osmia.h:99
cfg_OsmiaForageMaskStepSZ
static CfgInt cfg_OsmiaForageMaskStepSZ("OSMIA_FORAGEMASKSTEPSZ", CFG_CUSTOM, cfg_OsmiaTypicalHomingDistance.value()/(cfg_OsmiaForageSteps.value() - 1))
OsmiaForageMask::m_step
int m_step
Definition: Osmia.h:100