The AHA Model  Revision: 12809
Reference implementation 04 (HEDG02_04)
the_environment::environment Type Reference

Definition of the overall environment. Environment is a general container for all habitats, patches and other similar objects where the whole life of the agents takes place. Environment just provides the limits for all these objects. More...

Inheritance diagram for the_environment::environment:
Collaboration diagram for the_environment::environment:

Public Member Functions

procedure, public build_vector => environment_whole_build_vector
 Create the highest level container environment. Vector-based. See the_environment::environment_whole_build_vector() More...
 
procedure, public build_object => environment_whole_build_object
 Create the highest level container environment. Object-based. See the_environment::environment_whole_build_object() More...
 
procedure, public build_unlimited => environment_build_unlimited
 Build an unlimited environment, with the spatial coordinates limited by the maximum machine supported values based on the intrinsic huge function. See the_environment::environment_build_unlimited() More...
 
generic, public build => build_vector, build_object, build_unlimited
 Create the highest level container environment. Generic interface. See the_environment::environment_whole_build_vector(), the_environment::environment_whole_build_object() and the_environment::environment_build_unlimited() More...
 
procedure, public shrink2d => environment_shrink_xy_fixed
 Return an environment object that is shrunk by a fixed value in the 2D XxY plane. See the_environment::environment_shrink_xy_fixed(). More...
 
procedure, public lim_min => environment_get_minimum_obj
 Function to get the minimum spatial limits (coordinates) of the environment. See the_environment::environment_get_minimum_obj() More...
 
procedure, public lim_max => environment_get_maximum_obj
 Function to get the maximum spatial limits (coordinates) of the environment. See the_environment::environment_get_maximum_obj() More...
 
procedure, public depth_min => environment_get_minimum_depth
 Get the minimum depth in this environment. See the_environment::environment_get_minimum_depth(). More...
 
procedure, public depth_max => environment_get_maximum_depth
 Get the maximum depth in this environment. See the_environment::environment_get_maximum_depth(). More...
 
procedure, public is_within => environment_check_located_within_3d
 Check if a spatial object is actually within this environment. See the_environment::environment_check_located_within_3d() More...
 
procedure, public corners2d => environment_get_corners_2dxy
 Get the corners of the environment in the 2D X Y plane. See the_environment::environment_get_corners_2dxy(). More...
 
procedure, public nearest_target => environment_get_nearest_point_in_outside_obj
 Get the spatial point position within this environment that is nearest to an arbitrary spatial object located outside of the this environment. If the spatial object is actually located in this environment,return its own spatial position. See the_environment::environment_get_nearest_point_in_outside_obj(). More...
 
procedure, public centre => environment_centre_coordinates_3d
 Determine the centroid of the environment. See the_environment::environment_centre_coordinates_3d() More...
 
procedure, public uniform_s => environment_random_uniform_spatial_3d
 Generate a random spatial object with the uniform distribution within (i.e. bound to) this environment. See the_environment::environment_random_uniform_spatial_3d() More...
 
procedure, public uniform2_s => environment_random_uniform_spatial_2d
 Generate a random spatial object with the uniform distribution within (i.e. bound to) this environment, the third depth coordinate is fixed. See the_environment::environment_random_uniform_spatial_2d() More...
 
procedure, public uniform_v =>environment_random_uniform_spatial_vec_3d
 Generate a vector of random spatial objects with the uniform distribution within (i.e. bound to) this environment. Full 3D procedure. See the_environment::environment_random_uniform_spatial_vec_3d() More...
 
procedure, public uniform2_v =>environment_random_uniform_spatial_vec_2d
 Generate a vector of random spatial objects with the uniform distribution within (i.e. bound to) this environment. The third, depth coordinate is non-stochastic, and provided as an array parameter. See the_environment::environment_random_uniform_spatial_vec_2d() More...
 
generic, public uniform => uniform_s, uniform2_s, uniform_v, uniform2_v
 Generate a vector of random spatial objects with the uniform distribution within (i.e. bound to) this environment. Generic interface. More...
 
procedure, public gaussian3d => environment_random_gaussian_spatial_3d
 Generates a vector of random spatial object with Gaussian coordinates within (i.e. bound to) this environment. Full 3D procedure. See the_environment::environment_random_gaussian_spatial_3d() More...
 
procedure, public gaussian2d => environment_random_gaussian_spatial_2d
 Generates a vector of random spatial object with Gaussian coordinates within (i.e. bound to) this environment. The depth coordinate is set separately and can be non-random (fixed for the whole output array) or Gaussian with separate variance. See the_environment::environment_random_gaussian_spatial_2d() More...
 

Public Attributes

type(spatialcoord_min
 Set shape and limits of the whole environment, by default a rectangle with Cartesian coordinates based on ENVIRONMENT_WHOLE_SIZE. The minimum and maximum coordinates are set through the SPATIAL object. More...
 
type(spatialcoord_max
 

Detailed Description

Definition of the overall environment. Environment is a general container for all habitats, patches and other similar objects where the whole life of the agents takes place. Environment just provides the limits for all these objects.

Warning
In this version, the environment objects are the most simplistic form: 3D "boxes". An arbitrary convex polyhedron-based environment can be implemented but this requires a more complex computational geometry backend.
Note
Coordinate system should always use the SPATIAL type objects, we don't define _v-type procedures (it is also unclear are _v procedures really necessary).

Definition at line 277 of file m_env.f90.

Member Function/Subroutine Documentation

◆ build_vector()

procedure, public the_environment::environment::build_vector

Create the highest level container environment. Vector-based. See the_environment::environment_whole_build_vector()

Definition at line 286 of file m_env.f90.

◆ build_object()

procedure, public the_environment::environment::build_object

Create the highest level container environment. Object-based. See the_environment::environment_whole_build_object()

Definition at line 289 of file m_env.f90.

◆ build_unlimited()

procedure, public the_environment::environment::build_unlimited

Build an unlimited environment, with the spatial coordinates limited by the maximum machine supported values based on the intrinsic huge function. See the_environment::environment_build_unlimited()

Definition at line 294 of file m_env.f90.

◆ build()

generic, public the_environment::environment::build

Create the highest level container environment. Generic interface. See the_environment::environment_whole_build_vector(), the_environment::environment_whole_build_object() and the_environment::environment_build_unlimited()

Definition at line 299 of file m_env.f90.

◆ shrink2d()

procedure, public the_environment::environment::shrink2d

Return an environment object that is shrunk by a fixed value in the 2D XxY plane. See the_environment::environment_shrink_xy_fixed().

Definition at line 303 of file m_env.f90.

◆ lim_min()

procedure, public the_environment::environment::lim_min

Function to get the minimum spatial limits (coordinates) of the environment. See the_environment::environment_get_minimum_obj()

Definition at line 307 of file m_env.f90.

◆ lim_max()

procedure, public the_environment::environment::lim_max

Function to get the maximum spatial limits (coordinates) of the environment. See the_environment::environment_get_maximum_obj()

Definition at line 311 of file m_env.f90.

◆ depth_min()

procedure, public the_environment::environment::depth_min

Get the minimum depth in this environment. See the_environment::environment_get_minimum_depth().

Definition at line 314 of file m_env.f90.

◆ depth_max()

procedure, public the_environment::environment::depth_max

Get the maximum depth in this environment. See the_environment::environment_get_maximum_depth().

Definition at line 317 of file m_env.f90.

◆ is_within()

procedure, public the_environment::environment::is_within

Check if a spatial object is actually within this environment. See the_environment::environment_check_located_within_3d()

Definition at line 320 of file m_env.f90.

◆ corners2d()

procedure, public the_environment::environment::corners2d

Get the corners of the environment in the 2D X Y plane. See the_environment::environment_get_corners_2dxy().

Definition at line 323 of file m_env.f90.

◆ nearest_target()

procedure, public the_environment::environment::nearest_target

Get the spatial point position within this environment that is nearest to an arbitrary spatial object located outside of the this environment. If the spatial object is actually located in this environment,return its own spatial position. See the_environment::environment_get_nearest_point_in_outside_obj().

Definition at line 329 of file m_env.f90.

◆ centre()

procedure, public the_environment::environment::centre

Determine the centroid of the environment. See the_environment::environment_centre_coordinates_3d()

Definition at line 333 of file m_env.f90.

◆ uniform_s()

procedure, public the_environment::environment::uniform_s

Generate a random spatial object with the uniform distribution within (i.e. bound to) this environment. See the_environment::environment_random_uniform_spatial_3d()

Definition at line 337 of file m_env.f90.

◆ uniform2_s()

procedure, public the_environment::environment::uniform2_s

Generate a random spatial object with the uniform distribution within (i.e. bound to) this environment, the third depth coordinate is fixed. See the_environment::environment_random_uniform_spatial_2d()

Definition at line 342 of file m_env.f90.

◆ uniform_v()

procedure, public the_environment::environment::uniform_v

Generate a vector of random spatial objects with the uniform distribution within (i.e. bound to) this environment. Full 3D procedure. See the_environment::environment_random_uniform_spatial_vec_3d()

Definition at line 346 of file m_env.f90.

◆ uniform2_v()

procedure, public the_environment::environment::uniform2_v

Generate a vector of random spatial objects with the uniform distribution within (i.e. bound to) this environment. The third, depth coordinate is non-stochastic, and provided as an array parameter. See the_environment::environment_random_uniform_spatial_vec_2d()

Definition at line 351 of file m_env.f90.

◆ uniform()

generic, public the_environment::environment::uniform

Generate a vector of random spatial objects with the uniform distribution within (i.e. bound to) this environment. Generic interface.

Definition at line 355 of file m_env.f90.

◆ gaussian3d()

procedure, public the_environment::environment::gaussian3d

Generates a vector of random spatial object with Gaussian coordinates within (i.e. bound to) this environment. Full 3D procedure. See the_environment::environment_random_gaussian_spatial_3d()

Definition at line 359 of file m_env.f90.

◆ gaussian2d()

procedure, public the_environment::environment::gaussian2d

Generates a vector of random spatial object with Gaussian coordinates within (i.e. bound to) this environment. The depth coordinate is set separately and can be non-random (fixed for the whole output array) or Gaussian with separate variance. See the_environment::environment_random_gaussian_spatial_2d()

Definition at line 365 of file m_env.f90.

Member Data Documentation

◆ coord_min

type(spatial) the_environment::environment::coord_min

Set shape and limits of the whole environment, by default a rectangle with Cartesian coordinates based on ENVIRONMENT_WHOLE_SIZE. The minimum and maximum coordinates are set through the SPATIAL object.

Definition at line 282 of file m_env.f90.

◆ coord_max

type(spatial) the_environment::environment::coord_max

Definition at line 282 of file m_env.f90.


The documentation for this type was generated from the following file: