34class ARCANE_MESH_EXPORT NodeFamily
51 virtual ~NodeFamily();
55 void build()
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"));
79 ARCANE_UNUSED(type_id);
87 m_item_internal_list->nodes = _itemsInternal();
88 _allocateInfos(item, uid, m_node_type);
93 Item findOrAllocOne(
Int64 uid,
ItemTypeId type_id, MeshInfos& mesh_info,
bool& is_alloc)
override
95 ARCANE_ASSERT((type_id == IT_Vertex), (
"Creating node with a type not equal to IT_Vertex"));
96 ARCANE_UNUSED(type_id);
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);
152 Integer m_mesh_connectivity = 0;
153 bool m_no_face_connectivity =
false;
155 EdgeConnectivity* m_edge_connectivity =
nullptr;
156 FaceConnectivity* m_face_connectivity =
nullptr;
157 CellConnectivity* m_cell_connectivity =
nullptr;
158 HParentConnectivity* m_hparent_connectivity =
nullptr;
159 HChildConnectivity* m_hchild_connectivity =
nullptr;
168 inline void _removeNode(
Node node);