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;
167 inline void _removeNode(
Node node);