42class ARCANE_CORE_EXPORT ItemConnectivityContainerView
46 friend ItemInternalConnectivityList;
47 friend IndexedItemConnectivityViewBase;
48 friend IndexedItemConnectivityViewBase2;
49 friend mesh::IncrementalItemConnectivityBase;
50 template <
typename ItemType1,
typename ItemType2>
51 friend class IndexedItemConnectivityGenericViewT;
55 ItemConnectivityContainerView() =
default;
59 : m_list_data(_list.
data())
60 , m_indexes(_indexes.
data())
61 , m_nb_connected_items(_nb_connected_item.
data())
62 , m_list_data_size(_list.
size())
63 , m_nb_item(_nb_connected_item.
size())
66 _checkSize(_indexes.
size(), _nb_connected_item.
size());
77 void checkSame(ItemConnectivityContainerView rhs)
const;
82 template <
typename ItemType>
constexpr ARCCORE_HOST_DEVICE
86 ARCANE_CHECK_AT(lid.localId(), m_nb_item);
87 Int32 x = m_indexes[lid];
88 ARCANE_CHECK_AT(x, m_list_data_size);
89 auto* p = &m_list_data[x];
91 return { p, m_nb_connected_items[lid], 0 };
95 template <
typename ItemLocalIdType>
constexpr ARCCORE_HOST_DEVICE
99 ARCANE_CHECK_AT(lid.localId(), m_nb_item);
100 Int32 x = m_indexes[lid] + index;
101 ARCANE_CHECK_AT(x, m_list_data_size);
102 return ItemLocalIdType(m_list_data[x]);
107 indexes()
const {
return { m_indexes, m_nb_item }; }
111 nbConnectedItems()
const {
return { m_nb_connected_items, m_nb_item }; }
114 constexpr ARCCORE_HOST_DEVICE
Int32 nbItem()
const {
return m_nb_item; }
118 Int32* m_list_data =
nullptr;
119 const Int32* m_indexes =
nullptr;
120 const Int32* m_nb_connected_items =
nullptr;
121 Int32 m_list_data_size = 0;
126 void _checkSize(
Int32 indexes_size,
Int32 nb_connected_item_size);
130 friend class MutableIndexedParticleCellConnectivityView;
132 ARCCORE_HOST_DEVICE
void _setParticleCellId(
ItemLocalId particle_lid, CellLocalId cell_lid)
const
134 ARCANE_CHECK_AT(particle_lid.localId(), m_nb_item);
135 m_list_data[m_indexes[particle_lid]] = cell_lid;