Program Listing for File entity_vector.hpp

Return to documentation for file (cosm/ds/entity_vector.hpp)

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include <vector>

#include "cosm/cosm.hpp"

/*******************************************************************************
 * Namespaces
 ******************************************************************************/
namespace cosm::repr {
class unicell_entity2D;
class unicell_entity3D;
class base_entity;
class spatial_entity2D;
} // namespace cosm::repr

namespace cosm::ds {

using entity2D_vector_type = crepr::unicell_entity2D*;
using const_entity2D_vector_type = const crepr::unicell_entity2D*;

using entity3D_vector_type = crepr::unicell_entity3D*;
using const_entity3D_vector_type = const crepr::unicell_entity3D*;

using entity_vector_type = crepr::base_entity*;
using const_entity_vector_type = const crepr::base_entity*;

/*
 * We use spatial_entity2D rather than the base class, because all
 * spatial_entity3D derived classes are also spatial_entity2D instances.
 */
using spatial_entity_vector_type = crepr::spatial_entity2D*;
using const_spatial_entity_vector_type = const crepr::spatial_entity2D*;

/*******************************************************************************
 * Type Definitions
 ******************************************************************************/
using entity2D_vector = std::vector<entity2D_vector_type>;
using const_entity2D_vector = std::vector<const_entity2D_vector_type>;

using entity3D_vector = std::vector<entity3D_vector_type>;
using const_entity3D_vector = std::vector<const_entity3D_vector_type>;

using entity_vector = std::vector<entity_vector_type>;
using const_entity_vector = std::vector<const_entity_vector_type>;

using spatial_entity_vector = std::vector<spatial_entity_vector_type>;
using const_spatial_entity_vector = std::vector<const_spatial_entity_vector_type>;

} /* namespace cosm::ds */