55 void build()
override;
56 void computeSynchronizeInfos()
override;
57 void _endAllocate()
override;
61 void preAllocate(Integer
nb_item);
78 ARCANE_ASSERT((
type_id == IT_Vertex),(
"Creating node with a type not equal to IT_Vertex"));
87 m_item_internal_list->nodes = _itemsInternal();
88 _allocateInfos(item,uid,m_node_type);
95 ARCANE_ASSERT((
type_id == IT_Vertex),(
"Creating node with a type not equal to IT_Vertex"));
97 auto node = findOrAllocOne(uid,
is_alloc);
103 ItemInternal* findOrAllocOne(
Int64 uid,
bool& is_alloc)
105 ItemInternal* item = _findOrAllocOne(uid,is_alloc);
107 m_item_internal_list->nodes = _itemsInternal();
108 _allocateInfos(item,uid,m_node_type);
114 IItemFamily* family()
override {
return this;}
116 void replaceEdge(ItemLocalId node,Integer index,ItemLocalId edge);
117 void replaceFace(ItemLocalId node,Integer index,ItemLocalId face);
118 void replaceCell(ItemLocalId node,Integer index,ItemLocalId cell);
120 void addCellToNode(Node node,Cell new_cell);
121 void addFaceToNode(Node node,Face new_face);
122 void addEdgeToNode(Node node,Edge new_edge);
123 void removeEdgeFromNode(ItemLocalId node,ItemLocalId edge_to_remove);
124 void removeFaceFromNode(ItemLocalId node,ItemLocalId face_to_remove);
125 void removeCellFromNode(Node node,ItemLocalId cell_to_remove_lid);
127 void removeNodeIfNotConnected(Node node);
131 ARCANE_ASSERT((m_nodes_coords),(
"NodeFamily::nodesCoordinates is available only on primary meshes"));
132 return *m_nodes_coords;
137 void setConnectivity(
const Integer c);
139 void sortInternalReferences();
141 void notifyItemsUniqueIdChanged()
override;
143 void _addChildNodeToNode(Node parent_node, Node child_node);
144 void _addParentNodeToNode(Node parent_node, Node child_node);
149 Integer m_edge_prealloc = 0;
150 Integer m_face_prealloc = 0;
151 Integer m_cell_prealloc = 0;
152 Integer m_mesh_connectivity = 0;
153 bool m_no_face_connectivity =
false;
163 bool m_is_sort_connected_faces_and_edges =
false;
167 inline void _removeNode(
Node node);