12#ifndef ARCANE_CORE_ITEMINTERNALVECTORVIEW_H
13#define ARCANE_CORE_ITEMINTERNALVECTORVIEW_H
17#include "arcane/utils/ArrayView.h"
19#include "arcane/core/ItemSharedInfo.h"
20#include "arcane/core/ItemIndexedListView.h"
47 Integer index,Int32 local_id_offset)
48 : m_items(items), m_local_ids(
local_ids), m_index(index), m_local_id_offset(local_id_offset){}
55 typedef std::random_access_iterator_tag iterator_category;
67 value_type operator*()
const {
return m_items[ m_local_id_offset + m_local_ids[m_index] ]; }
68 value_type operator->()
const {
return m_items[ m_local_id_offset + m_local_ids[m_index] ]; }
69 ThatClass& operator++() { ++m_index;
return (*
this); }
70 ThatClass& operator--() { --m_index;
return (*
this); }
73 friend Integer operator-(
const ThatClass& a,
const ThatClass& b)
75 return a.m_index - b.m_index;
80 return ThatClass(a.m_items,a.m_local_ids,index,a.m_local_id_offset);
85 return ThatClass(a.m_items,a.m_local_ids,index,a.m_local_id_offset);
87 friend bool operator<(
const ThatClass& lhs,
const ThatClass& rhs)
89 return lhs.m_index<=rhs.m_index;
91 friend bool operator==(
const ThatClass& lhs,
const ThatClass& rhs)
96 return lhs.m_items==rhs.m_items && lhs.m_local_ids==rhs.m_local_ids && lhs.m_index==rhs.m_index;
98 friend bool operator!=(
const ThatClass& lhs,
const ThatClass& rhs)
105 const ItemInternalPtr* m_items;
106 const Int32* ARCANE_RESTRICT m_local_ids;
108 Int32 m_local_id_offset = 0;
147 , m_local_id_offset(local_id_offset)
149 ARCANE_ASSERT(_isValid(), (
"Bad ItemInternalVectorView"));
156 , m_local_id_offset(local_id_offset)
158 ARCANE_ASSERT(_isValid(), (
"Bad ItemInternalVectorView"));
163 : m_local_ids(
local_ids._idsWithoutOffset())
165 , m_local_id_offset(
local_ids.m_local_id_offset)
167 ARCANE_ASSERT(_isValid(), (
"Bad ItemInternalVectorView"));
172 , m_shared_info(view.m_shared_info)
173 , m_local_id_offset(view.m_local_id_offset)
179 Integer
size()
const {
return m_local_ids.size(); }
193 ARCANE_DEPRECATED_REASON(
"Y2022: Use ItemVectorView::operator[] instead")
197 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this method")
200 ARCANE_DEPRECATED_REASON(
"Y2022: Use ItemVectorView to iterate")
201 const_iterator begin()
const
203 return const_iterator(_items().data(), m_local_ids.data(), 0, m_local_id_offset);
206 ARCANE_DEPRECATED_REASON(
"Y2022: Use ItemVectorView to iterate")
207 const_iterator end()
const
209 return const_iterator(_items().data(), m_local_ids.data(), this->size(), m_local_id_offset);
214 Int32 localIdOffset()
const {
return m_local_id_offset; }
219 ItemSharedInfo* m_shared_info = ItemSharedInfo::nullInstance();
220 Int32 m_local_id_offset = 0;
225 ItemInternalArrayView _items()
const {
return m_shared_info->m_items_internal; }
Déclarations de types sur les entités.
Classe de base pour les entités du maillage.
Vue sur une liste d'entités connectées à une autre entité.
Informations de connectivité, pour une famille d'entité, permettant la transition entre les anciennes...
Enumérateur sur une liste d'entités.
Iterateur d'un ItemInternalVectorView.
const ItemInternalPtr * pointer
Type indexant le tableau.
ItemInternalPtr value_type
Type indexant le tableau.
Integer difference_type
Type d'une distance entre itérateur éléments du tableau.
const ItemInternalPtr & reference
Type indexant le tableau.
Integer size_type
Type indexant le tableau.
Vue interne sur un tableau d'entités.
Int32ConstArrayView localIds() const
Tableau des numéros locaux des entités.
Integer size() const
Nombre d'éléments du vecteur.
Structure interne d'une entité de maillage.
Structure interne partagée d'une entité de maillage.
Vue sur un vecteur d'entités.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Vue interne sur un tableau d'entités.
ConstArrayView< Int32 > constLocalIds() const
Tableau des numéros locaux des entités.
Vue sur le conteneur d'une liste de ItemLocalId.
Vue constante d'un tableau de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Int32 Integer
Type représentant un entier.