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);
121 IncrementalItemConnectivity* edgeConnectivity()
const;
122 IncrementalItemConnectivity* cellConnectivity()
const;
123 IncrementalItemConnectivity* faceConnectivity()
const;
126 void allocateItemsBulk(Int64ConstArrayView uids, Int32 owner, Int32ArrayView lids);
128 void addCellToNode(Node node, Cell new_cell);
129 void addFaceToNode(Node node, Face new_face);
130 void addEdgeToNode(Node node, Edge new_edge);
131 void removeEdgeFromNode(ItemLocalId node, ItemLocalId edge_to_remove);
132 void removeFaceFromNode(ItemLocalId node, ItemLocalId face_to_remove);
133 void removeCellFromNode(Node node, ItemLocalId cell_to_remove_lid);
135 void removeNodeIfNotConnected(Node node);
139 ARCANE_ASSERT((m_nodes_coords), (
"NodeFamily::nodesCoordinates is available only on primary meshes"));
140 return *m_nodes_coords;
145 void setConnectivity(
const Integer c);
147 void sortInternalReferences();
149 void notifyItemsUniqueIdChanged()
override;
151 void _addChildNodeToNode(Node parent_node, Node child_node);
152 void _addParentNodeToNode(Node parent_node, Node child_node);
160 Integer m_mesh_connectivity = 0;
161 bool m_no_face_connectivity =
false;
163 EdgeConnectivity* m_edge_connectivity =
nullptr;
164 FaceConnectivity* m_face_connectivity =
nullptr;
165 CellConnectivity* m_cell_connectivity =
nullptr;
166 HParentConnectivity* m_hparent_connectivity =
nullptr;
167 HChildConnectivity* m_hchild_connectivity =
nullptr;
176 inline void _removeNode(
Node node);