54class ARCANE_MESH_EXPORT ItemConnectivitySelector
61 virtual ~ItemConnectivitySelector()
68 ARCCORE_DEPRECATED_2021(
"This method always return 'nullptr'")
71 ARCCORE_DEPRECATED_2021(
"This method doesn't do anything")
73 virtual void checkValidConnectivityList()
const = 0;
74 virtual void compactConnectivities() = 0;
78 void setPreAllocatedSize(
Integer size);
79 Integer preAllocatedSize()
const {
return m_pre_allocated_size; }
80 Int32 itemConnectivityIndex()
const {
return m_item_connectivity_index; }
84 virtual void _createCustomConnectivity(
const String& name) = 0;
85 virtual void _buildCustomConnectivity() = 0;
91 String m_connectivity_name;
94 Int32 m_item_connectivity_index;
105class ARCANE_MESH_EXPORT ItemConnectivitySelectorT
106:
public ItemConnectivitySelector
111 const String& connectivity_name)
112 : ItemConnectivitySelector(source_family, target_family, connectivity_name, ConnectivityIndexType::connectivityIndex())
113 , m_custom_connectivity(
nullptr)
116 ~ItemConnectivitySelectorT()
125 return trueCustomConnectivity();
128 void checkValidConnectivityList()
const override
130 if (m_item_connectivity_index < 0)
132 auto x = m_item_connectivity_list;
134 x->containerView(m_item_connectivity_index).
checkSame(ref_con_view);
137 void compactConnectivities()
override
139 if (m_custom_connectivity)
140 m_custom_connectivity->compactConnectivityList();
147 if (m_custom_connectivity)
148 m_custom_connectivity->addConnectedItem(item_lid, sub_item_lid);
153 if (m_custom_connectivity)
154 m_custom_connectivity->removeConnectedItem(item_lid, sub_item_lid);
159 if (m_custom_connectivity)
160 m_custom_connectivity->removeConnectedItems(item_lid);
165 if (m_custom_connectivity)
166 m_custom_connectivity->replaceConnectedItems(item_lid, sub_item_lids);
171 if (m_custom_connectivity)
172 m_custom_connectivity->replaceConnectedItem(item_lid, index, sub_item_lid);
177 if (m_custom_connectivity)
178 return m_custom_connectivity->hasConnectedItem(source_item, target_local_id);
183 CustomType* trueCustomConnectivity()
const {
return m_custom_connectivity; }
187 void _createCustomConnectivity(
const String& name)
override
189 m_custom_connectivity =
new CustomType(m_source_family, m_target_family, name);
194 template <
class SourceFamily,
class TargetFamily>
195 void _createCustomConnectivity(
const String& name)
197 m_custom_connectivity =
new typename CustomConnectivity<SourceFamily, TargetFamily>::type(m_source_family, m_target_family, name);
200 void _buildCustomConnectivity()
override
204 if (m_custom_connectivity)
205 m_custom_connectivity->setItemConnectivityList(m_item_connectivity_list,
206 m_item_connectivity_index);
212 template <
class SourceFamily,
class TargetFamily>
218 _createCustomConnectivity<SourceFamily, TargetFamily>(m_connectivity_name);
219 info() <<
"Family: " << m_source_family->fullName()
220 <<
" create new connectivity: " << m_connectivity_name;
222 _buildCustomConnectivity();
228 CustomType* m_custom_connectivity;