12#ifndef ARCANE_ANYITEM_ANYITEMGROUP_H
13#define ARCANE_ANYITEM_ANYITEMGROUP_H
22#include "arcane/ItemGroup.h"
23#include "arcane/ItemInfoListView.h"
24#include "arcane/anyitem/AnyItemGlobal.h"
25#include "arcane/anyitem/AnyItemPrivate.h"
30namespace Arcane::AnyItem
49 , m_is_partial(
false) {}
50 ItemGroup group()
const {
return m_group; }
51 bool isPartial()
const {
return m_is_partial; }
60class PartialGroupBuilder
64 PartialGroupBuilder(
ItemGroup g) : GroupBuilder(g) {
65 this->m_is_partial =
true;
81 return ItemCompatibility::_itemInternal(v);
92 class BlockItemEnumerator
100 , m_items(m_info.group->itemInfoListView()), m_local_ids(m_info.group->itemsLocalId().data())
101 , m_index(0), m_count(m_info.group->size()), m_is_partial(info.is_partial) { }
103 BlockItemEnumerator(
const BlockItemEnumerator& e)
105 , m_items(e.m_items), m_local_ids(e.m_local_ids)
106 , m_index(e.m_index), m_count(e.m_count), m_is_partial(e.m_is_partial) {}
116 inline bool hasNext() {
return m_index<m_count; }
121 inline Integer varIndex()
const {
return (m_is_partial)?m_index:m_local_ids[m_index]; }
136 const Int32* ARCANE_RESTRICT m_local_ids;
149 : m_current(std::begin(groups))
150 , m_end(std::end(groups)) {}
151 Enumerator(
const Enumerator& e)
152 : m_current(e.m_current)
154 inline bool hasNext()
const {
return m_current != m_end; }
155 inline void operator++() { m_current++; }
160 inline Integer groupIndex()
const {
return m_current->group_index; }
ArrayIterator< const_pointer > const_iterator
Type de l'itérateur constant sur un élément du tableau.
Enumérateur des blocs d'items.
BlockItemEnumerator enumerator()
Enumérateur d'un bloc d'items.
Group(const Private::GroupIndexMapping &groups)
Construction à partir d'une table Groupe - offset (issue de la famille)
Integer size() const
Nombre de groupes aggrégés.
Enumerator enumerator() const
Enumérateur du groupe.
const Private::GroupIndexMapping & m_groups
Table Groupe - offset.
Groupe d'entités de maillage.
Vue sur une liste pour obtenir des informations sur les entités.
Structure interne d'une entité de maillage.
Classe de base d'un élément de maillage.
Int32 Integer
Type représentant un entier.
std::int32_t Int32
Type entier signé sur 32 bits.