Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IItemConnectivity.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* IItemConnectivity.h (C) 2000-2025 */
9/* */
10/* Interface de connectivité des entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IITEMCONNECTIVITY_H
13#define ARCANE_CORE_IITEMCONNECTIVITY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/ArrayView.h"
18#include "arcane/utils/String.h"
19
21#include "arcane/core/IItemConnectivityAccessor.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31/*!
32 * \brief Interface pour gérer une connectivité.
33 *
34 * Une connectivité relie deux familles, une source (sourceFamily()) et
35 * une cible (targetFamily()).
36 *
37 * Pour récupérer les entités cibles connectées à une entité source, il faut
38 * utiliser la classe ConnectivityItemVector. Par exemple:
39 *
40 * \code
41 * IItemConnectivity* c = ...;
42 * Item my_item;
43 * ConnectivityItemVector civ(c);
44 * ENUMERATE_ITEM(icitem,civ.connectedItems(my_item)){
45 * // Itère sur les entités connectées à \a my_item via \a c.
46 * }
47 * \endcode
48 */
49class ARCANE_CORE_EXPORT IItemConnectivity
51{
52 public:
53
54 friend class ConnectivityItemVector;
55
56 public:
57
58 //! Nom de la connectivité
59 virtual const String& name() const = 0;
60
61 //! Liste des familles (sourceFamily() + targetFamily())
63
64 //! Famille source
65 virtual IItemFamily* sourceFamily() const = 0;
66
67 //! Famille cible
68 virtual IItemFamily* targetFamily() const = 0;
69
70 //! Notifie la connectivité que la famille source est compactée.
71 virtual void notifySourceFamilyLocalIdChanged(Int32ConstArrayView new_to_old_ids) = 0;
72
73 //! Notifie la connectivité que la famille cible est compactée.
74 virtual void notifyTargetFamilyLocalIdChanged(Int32ConstArrayView old_to_new_ids) = 0;
75
76 /*!
77 * \brief Mise à jour de la connectivité.
78 *
79 * Les deux tableaux \a from_items et \a to_items sont de mêmes tailles.
80 * Les items peuvent donc éventuellement être répétés s'ils apparaissent dans
81 * plusieurs connexions. Ex si on a les connexions suivantes (en lid) 1-3 ; 2-4 ; 1-5 on entre
82 * from_items [ 1 2 1 ] et to_items [ 3 4 5 ].
83 */
84 virtual void updateConnectivity(Int32ConstArrayView from_items, Int32ConstArrayView to_items) = 0;
85};
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
89
90} // namespace Arcane
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
94
95#endif
Déclarations de types sur les entités.
Vue constante d'un tableau de type T.
Interface pour gérer l'accès à une connectivité.
Interface pour gérer une connectivité.
virtual void notifyTargetFamilyLocalIdChanged(Int32ConstArrayView old_to_new_ids)=0
Notifie la connectivité que la famille cible est compactée.
virtual ConstArrayView< IItemFamily * > families() const =0
Liste des familles (sourceFamily() + targetFamily())
virtual IItemFamily * targetFamily() const =0
Famille cible.
virtual void updateConnectivity(Int32ConstArrayView from_items, Int32ConstArrayView to_items)=0
Mise à jour de la connectivité.
virtual void notifySourceFamilyLocalIdChanged(Int32ConstArrayView new_to_old_ids)=0
Notifie la connectivité que la famille source est compactée.
virtual IItemFamily * sourceFamily() const =0
Famille source.
virtual const String & name() const =0
Nom de la connectivité
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569