12#ifndef ARCANE_CORE_ITEMLOCALID_H
13#define ARCANE_CORE_ITEMLOCALID_H
17#include "arcane/utils/ArrayView.h"
40class ARCANE_CORE_EXPORT ItemLocalId
44 ItemLocalId() =
default;
45 constexpr ARCCORE_HOST_DEVICE
explicit ItemLocalId(
Int32 id)
53 inline ItemLocalId(
Item item);
54 constexpr ARCCORE_HOST_DEVICE
operator Int32()
const {
return m_local_id; }
55 constexpr ARCCORE_HOST_DEVICE
Int32 asInt32()
const {
return m_local_id; }
56 constexpr ARCCORE_HOST_DEVICE
Int32 asInteger()
const {
return m_local_id; }
60 constexpr ARCCORE_HOST_DEVICE
Int32 localId()
const {
return m_local_id; }
61 constexpr ARCCORE_HOST_DEVICE
bool isNull()
const {
return m_local_id == NULL_ITEM_LOCAL_ID; }
67 auto* ptr =
reinterpret_cast<const ItemLocalId*
>(v.
data());
68 return { ptr, v.
size() };
72 auto* ptr =
reinterpret_cast<const Int32*
>(v.
data());
73 return { ptr, v.
size() };
78 Int32 m_local_id = NULL_ITEM_LOCAL_ID;
87template <
typename ItemType_>
93 using ItemType = ItemType_;
94 using ThatClass = ItemLocalIdT<ItemType>;
98 ItemLocalIdT() =
default;
99 constexpr ARCCORE_HOST_DEVICE
explicit ItemLocalIdT(
Int32 id)
104 inline ItemLocalIdT(ItemType item);
110 auto* ptr =
reinterpret_cast<const ThatClass*
>(v.
data());
111 return { ptr, v.
size() };
116 auto* ptr =
reinterpret_cast<const Int32*
>(v.
data());
117 return { ptr, v.
size() };
122 ARCANE_DEPRECATED_REASON(
"Y2022: Use strongly typed 'ItemEnumeratorT<ItemType>' or 'ItemType'")
134class ARCANE_CORE_EXPORT ItemLocalIdToItemConverter
136 template <
typename ItemType_>
friend class ItemLocalIdToItemConverterT;
140 explicit ItemLocalIdToItemConverter(
IItemFamily* family);
162template <
typename ItemType_>
class ItemLocalIdToItemConverterT
163:
public ItemLocalIdToItemConverter
167 using ItemType = ItemType_;
172 using ItemLocalIdToItemConverter::ItemLocalIdToItemConverter;
177 inline constexpr ARCCORE_HOST_DEVICE ItemType
operator[](ItemLocalIdType local_id)
const;
179 inline constexpr ARCCORE_HOST_DEVICE ItemType
operator[](
Int32 local_id)
const;
Déclarations de types sur les entités.
Classe pour convertir un CellLocalId vers une maille.
Classe pour convertir un DoFLocalId vers un degré de liberté.
Classe pour convertir un EdgeLocalId vers une arête.
Classe pour convertir un FaceLocalId vers une face.
Interface d'une famille d'entités.
Enumérateur sur une liste typée d'entités connectées de type ItemType.
Enumérateur sur une liste d'entités connectées à une autre.
Index d'une entité ItemType dans une variable.
Classe pour convertir un ItemLocalId vers une entité (Item).
constexpr __host__ __device__ ItemType operator[](ItemLocalIdType local_id) const
Entité de numéro local local_id.
constexpr __host__ __device__ Item operator[](ItemLocalId local_id) const
Entité de numéro local local_id.
Index d'un Item dans une variable.
Classe de base d'un élément de maillage.
Classe pour convertir un NodeLocalId vers une arête.
Classe pour convertir un ParticleLocalId vers une particule.
Vue d'un tableau d'éléments de type T.
constexpr __host__ __device__ SizeType size() const noexcept
Retourne la taille du tableau.
constexpr __host__ __device__ pointer data() const noexcept
Pointeur sur le début de la vue.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int32_t Int32
Type entier signé sur 32 bits.