12#ifndef ARCANE_ITEMPAIRENUMERATOR_H
13#define ARCANE_ITEMPAIRENUMERATOR_H
17#include "arcane/Item.h"
18#include "arcane/ItemEnumerator.h"
37class ARCANE_CORE_EXPORT ItemPairEnumerator
46 ItemPairEnumerator() =
default;
50 inline void operator++()
54 inline bool hasNext()
const
56 return m_current < m_end;
58 inline Int32 itemLocalId()
const
60 return m_items_local_id[m_current];
62 inline Int32 index()
const
68 return { m_sub_items_shared_info, _ids() };
70 inline Item operator*()
const
72 return Item(m_items_local_id[m_current], m_items_shared_info);
74 inline Integer nbSubItem()
const
76 return static_cast<Int32>(m_indexes[m_current + 1] - m_indexes[m_current]);
89 ItemSharedInfo* m_items_shared_info = ItemSharedInfo::nullInstance();
90 ItemSharedInfo* m_sub_items_shared_info = ItemSharedInfo::nullInstance();
94 Item _currentItem()
const
96 return Item(m_items_local_id[m_current], m_items_shared_info);
98 ConstArrayView<Int32> _ids()
const
100 return ConstArrayView<Int32>(nbSubItem(), m_sub_items_local_id.
data() + m_indexes[m_current]);
110template <
typename ItemType>
111class ItemPairEnumeratorSubT
112:
public ItemPairEnumerator
117 : ItemPairEnumerator(array)
123 inline ItemType operator*()
const
125 return ItemType(this->_currentItem());
137template <
typename ItemType,
typename SubItemType>
138class ItemPairEnumeratorT
139:
public ItemPairEnumeratorSubT<ItemType>
141 using BaseClass = ItemPairEnumeratorSubT<ItemType>;
146 : ItemPairEnumeratorSubT<ItemType>(array)
152 return { this->m_sub_items_shared_info, this->_ids() };
Index d'une entité ItemType dans une variable.
Index d'un Item dans une variable.
Référence à un groupe d'un genre donné.
Tableau de listes d'entités.
Classe de base d'un élément de maillage.
constexpr __host__ __device__ pointer data() const noexcept
Pointeur sur le début de la vue.
Vue d'un tableau d'éléments de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
std::int32_t Int32
Type entier signé sur 32 bits.