Template Class grid3D_view_entity

Inheritance Relationships

Base Types

Derived Type

  • public cosm::repr::base_grid_los< grid3D_view_entity< rds::grid3D< cds::cell3D >, rds::grid3D< cds::cell3D >::const_grid_view >, rmath::vector3d > (Template Class base_grid_los)

Class Documentation

template<typename TGridType, typename TGridViewType>
class grid3D_view_entity : public cosm::repr::entity3D, public cosm::repr::base_grid_view_entity<TGridType, TGridViewType>, public rer::client<grid3D_view_entity<TGridType, TGridViewType>>

Representation of an cads::arena_grid::view or cads::arena_grid::const_view object as an entity in the arena. This representation makes it much easier to pass abstract, mult-cell objects that are not entities per-se as entities for various operations such as block distribution in foraging.

It has the following characteristics:

  • Spans multiple cells in the arena.

  • Does not “exist” in the sense that it is not detectable by robots. It lives on the same level of abstraction as the arena grid (hence the class name).

  • Has no concept of movability/immovability (again, it is abstract).

Subclassed by cosm::repr::base_grid_los< grid3D_view_entity< rds::grid3D< cds::cell3D >, rds::grid3D< cds::cell3D >::const_grid_view >, rmath::vector3d >

Public Types

using cell_type = typename grid_type::value_type
using coord_type = typename grid_type::coord_type
using grid_type = TGridType
using grid_view_entity_type = base_grid_view_entity<TGridType, TGridViewType>
using grid_view_type = TGridViewType

Public Functions

inline grid3D_view_entity(const rtypes::type_uuid &id, const grid_view_type &the_view, const rtypes::discretize_ratio &res)
~grid3D_view_entity(void) override = default
inline virtual const cell_type &access(const coord_type &c) const override

Get the cell associated with a particular grid location within the view. Asserts that both coordinates are within the bounds of the grid underlying the view.

Parameters:

c – The RELATIVE coord within the view.

Returns:

A reference to the cell.

const cell_type &access(const coord_type &c) const = 0

Get the cell associated with a particular grid location within the view. Asserts that both coordinates are within the bounds of the grid underlying the view.

Parameters:

c – The RELATIVE coord within the view.

Returns:

A reference to the cell.

inline const cell_type &access(size_t i, size_t j, size_t k) const
inline virtual bool contains_abs(const coord_type &cell) const override

Determine if the specified ABSOLUTE coordinates lie within the view entity (i.e., the coordinates are specified relative to the origin of the parent grid this entity is built from.)

inline virtual bool contains_rel(const coord_type &cell) const override

Determine if the specified RELATIVE coordinates lie within the view entity (i.e., the coordinates are specified relative to the origin of the view entity, which is not necessarily the same as the origin of the parent grid).

inline const rtypes::discretize_ratio &resolution(void) const

Protected Functions

inline const grid_view_type &view(void) const