Arcane  v3.14.10.0
Documentation développeur
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{
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/*---------------------------------------------------------------------------*/
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.
Informations de connectivité, pour une famille d'entité, permettant la transition entre les anciennes...
Structure interne partagée d'une entité de maillage.
Tableaux d'indirection sur les entités d'un maillage.
Liste des ItemSharedInfo associés à un maillage.
Implémentation d'un maillage.
Definition DynamicMesh.h:97
Vue constante d'un tableau de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-