41 : m_default_value(DataType())
46 template <
class AbstractFamily>
47 void resize(AbstractFamily* item_family,
const DataType default_value)
49 m_data.
resize(item_family->maxLocalId(), default_value);
50 m_default_value = default_value;
55 template <
class AbstractItem>
56 DataType& operator[](
const AbstractItem item) {
return m_data[item.localId()]; }
58 template <
class AbstractItem>
59 DataType operator[](
const AbstractItem item)
const {
return m_data[item.localId()]; }
63 std::cout <<
"== CONNECTIVITY ITEM PROPERTY CONTAINS " << std::endl;
65 std::cout <<
"\"" << m_data[i] <<
"\"" << std::endl;
67 std::cout << std::endl;
70 ConstArrayView<DataType> view() {
return m_data.constView(); }
74 if (new_to_old_ids.size() == 0)
76 UniqueArray<DataType> old_data(m_data);
77 Integer new_size = new_to_old_ids.size();
78 m_data.resize(new_size);
81 Integer max_size = *(std::max_element(new_to_old_ids.begin(), new_to_old_ids.end())) + 1;
82 if (max_size > old_data.size())
83 old_data.resize(max_size, m_default_value);
84 for (
Integer i = 0; i < new_size; ++i) {
85 m_data[i] = old_data[new_to_old_ids[i]];
91 m_data.copy(item_property_from.m_data);
92 m_default_value = item_property_from.m_default_value;
98 SharedArray<DataType> m_data;
99 DataType m_default_value;
115 template <
class AbstractFamily>
116 void resize(AbstractFamily* item_family,
const Integer nb_element_per_item,
const DataType default_value)
118 Integer dim1_old_size = m_data.dim1Size();
119 Integer dim2_old_size = m_data.dim2Size();
120 Integer dim1_new_size = item_family->maxLocalId();
121 Integer dim2_new_size = nb_element_per_item;
122 m_data.
resize(dim1_new_size, dim2_new_size);
125 for (
Integer i = dim1_old_size; i < dim1_new_size; ++i) {
126 for (
Integer j = 0; j < dim2_new_size; ++j)
127 m_data[i][j] = default_value;
130 if (dim2_new_size > dim2_old_size) {
132 for (
Integer j = dim2_old_size; j < dim2_new_size; ++j)
133 m_data[i][j] = default_value;
138 Integer dim1Size()
const {
return m_data.dim1Size(); }
139 Integer dim2Size()
const {
return m_data.dim2Size(); }
141 template <
class AbstractItem>
142 ArrayView<DataType> operator[](AbstractItem item) {
return m_data[item.localId()]; }
144 template <
class AbstractItem>
145 ConstArrayView<DataType> operator[](AbstractItem item)
const {
return m_data[item.localId()]; }
149 if (new_to_old_ids.size() == 0)
151 UniqueArray2<DataType> old_data(m_data);
152 Integer new_dim1_size = new_to_old_ids.size();
153 Integer dim2_size = m_data.dim2Size();
154 m_data.resize(new_dim1_size);
157 auto max_dim1_size = *(std::max_element(new_to_old_ids.begin(), new_to_old_ids.end())) + 1;
158 old_data.resize(max_dim1_size);
159 for (
Integer i = 0; i < new_dim1_size; ++i) {
160 for (
Integer j = 0; j < dim2_size; ++j)
161 m_data[i][j] = old_data[new_to_old_ids[i]][j];
167 m_data.copy(item_property_from.m_data);
172 UniqueArray2<DataType> m_data;
191 template <
class AbstractFamily>
192 void resize([[maybe_unused]] AbstractFamily* item_family,
194 const DataType default_value)
196 ARCANE_ASSERT((nb_element_per_item.
size() == item_family->maxLocalId()),
197 (
"In item property resize : nb_element_per_item must have size IItemFamilyy::maxLocalId"))
198 Integer dim1_old_size = m_data.dim1Size();
199 Integer dim1_new_size = nb_element_per_item.size();
202 m_data.resize(nb_element_per_item);
205 for (
Arcane::
Integer i = dim1_old_size; i < dim1_new_size; ++i) {
207 m_data[i][j] = default_value;
212 for (
Arcane::Integer j = dim2_old_sizes[i]; j < dim2_new_sizes[i]; ++j) {
213 m_data[i][j] = default_value;
218 Integer dim1Size()
const {
return m_data.dim1Size(); }
221 template <
class AbstractItem>
222 ArrayView<DataType> operator[](
const AbstractItem item) {
return m_data[item.localId()]; }
224 template <
class AbstractItem>
225 ConstArrayView<DataType> operator[](
const AbstractItem item)
const {
return m_data[item.localId()]; }
229 if (new_to_old_ids.size() == 0)
231 UniqueMultiArray2<DataType> old_data(m_data);
232 Integer new_dim1_size = new_to_old_ids.size();
235 Integer max_dim1_size = *(std::max_element(new_to_old_ids.begin(), new_to_old_ids.end())) + 1;
237 dim2_sizes.resize(max_dim1_size, 1);
238 old_data.resize(dim2_sizes);
241 for (
Integer i = 0; i < new_dim1_size; ++i) {
242 new_dim2_sizes[i] = dim2_sizes[new_to_old_ids[i]];
244 m_data.resize(new_dim2_sizes);
245 for (
Integer i = 0; i < new_dim1_size; ++i) {
246 for (
Integer j = 0; j < new_dim2_sizes[i]; ++j)
247 m_data[i][j] = old_data[new_to_old_ids[i]][j];
253 m_data = item_property_from.m_data.constView();
259 SharedMultiArray2<DataType> m_data;