Program Listing for File base_grid_los.hpp
↰ Return to documentation for file (cosm/repr/base_grid_los.hpp
)
#pragma once
/*******************************************************************************
* Includes
******************************************************************************/
#include "rcppsw/er/client.hpp"
#include "rcppsw/math/vector2.hpp"
#include "rcppsw/types/discretize_ratio.hpp"
#include "rcppsw/types/type_uuid.hpp"
#include "cosm/repr/base_grid_view_entity.hpp"
/*******************************************************************************
* Namespaces/Decls
******************************************************************************/
namespace cosm::repr {
/*******************************************************************************
* Class Definitions
******************************************************************************/
template <typename TGridViewEntityType, typename TFieldCoordRType>
class base_grid_los
: public rer::client<base_grid_los<TGridViewEntityType, TFieldCoordRType>>,
public TGridViewEntityType {
public:
using field_coord_rtype = TFieldCoordRType;
using los_coord_type = rmath::vector2z;
using grid_view_entity_type = TGridViewEntityType;
using typename grid_view_entity_type::cell_type;
using typename grid_view_entity_type::grid_type;
using typename grid_view_entity_type::grid_view_type;
using field_coord_dtype = typename grid_view_entity_type::coord_type;
using grid_view_entity_type::access;
using grid_view_entity_type::xdsize;
using grid_view_entity_type::ydsize;
virtual field_coord_dtype abs_ll(void) const = 0;
virtual field_coord_dtype abs_ul(void) const = 0;
virtual field_coord_dtype abs_lr(void) const = 0;
virtual field_coord_dtype abs_ur(void) const = 0;
base_grid_los(const rtypes::type_uuid& c_id,
const grid_view_type& c_view,
const rtypes::discretize_ratio& c_resolution)
: ER_CLIENT_INIT("cosm.repr.base_grid_los"),
grid_view_entity_type(c_id, c_view, c_resolution) {}
};
} /* namespace cosm::repr */