Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MeshItemInternalList.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* MeshItemInternalList.h (C) 2000-2024 */
9/* */
10/* Tableaux d'indirection sur les entités d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MESHITEMINTERNALLIST_H
13#define ARCANE_CORE_MESHITEMINTERNALLIST_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/ArrayView.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25class ItemSharedInfo;
26class ItemInternalConnectivityList;
27}
28
29namespace Arcane::mesh
30{
31class DynamicMesh;
32class PolyhedralMesh;
33}
34
35namespace Arcane::impl
36{
37/*!
38 * \internal
39 * \brief Liste des ItemSharedInfo associés à un maillage.
40 */
42{
44 friend ItemBase;
45
46 private:
47
48 MeshItemSharedInfoList() = default;
50 : m_node(v)
51 , m_edge(v)
52 , m_face(v)
53 , m_cell(v)
54 {}
55
56 private:
57
58 ItemSharedInfo* m_node = nullptr;
59 ItemSharedInfo* m_edge = nullptr;
60 ItemSharedInfo* m_face = nullptr;
61 ItemSharedInfo* m_cell = nullptr;
62};
63
64} // namespace Arcane::impl
65
66/*---------------------------------------------------------------------------*/
67/*---------------------------------------------------------------------------*/
68
69namespace Arcane
70{
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74/*!
75 * \internal
76 * \brief Tableaux d'indirection sur les entités d'un maillage.
77 */
78class ARCANE_CORE_EXPORT MeshItemInternalList
79{
80 // Les deux classes suivantes ont besoin d'accéder aux
81 // méthodes _internalSet*().
82 friend class mesh::DynamicMesh;
83 friend class mesh::PolyhedralMesh;
84
86 friend class ItemBase;
87
88 public:
89
94 IMesh* mesh = nullptr;
95
96 private:
97
98 void _internalSetNodeSharedInfo(ItemSharedInfo* s);
99 void _internalSetEdgeSharedInfo(ItemSharedInfo* s);
100 void _internalSetFaceSharedInfo(ItemSharedInfo* s);
101 void _internalSetCellSharedInfo(ItemSharedInfo* s);
102
103 private:
104
105 // Ne pas modifier directement ces champs.
106 // Utiliser les méthodes _internalSet*() correspondantes
107 ItemSharedInfo* m_node_shared_info = nullptr;
108 ItemSharedInfo* m_edge_shared_info = nullptr;
109 ItemSharedInfo* m_face_shared_info = nullptr;
110 ItemSharedInfo* m_cell_shared_info = nullptr;
111
112 private:
113
114 void _notifyUpdate();
115};
116
117/*---------------------------------------------------------------------------*/
118/*---------------------------------------------------------------------------*/
119
120} // End namespace Arcane
121
122/*---------------------------------------------------------------------------*/
123/*---------------------------------------------------------------------------*/
124
125#endif
126
Déclarations de types sur les entités.
Classe de base pour les entités du maillage.
Vue constante d'un tableau de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-