Arcane  v3.14.10.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-2022 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-2016 */
9/* */
10/* Interface de connectivité des entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IITEMCONNECTIVITY_H
13#define ARCANE_IITEMCONNECTIVITY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/ArrayView.h"
18#include "arcane/utils/String.h"
19
20#include "arcane/ItemTypes.h"
21
22#include "arcane/IItemConnectivityAccessor.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27ARCANE_BEGIN_NAMESPACE
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32class IItemFamily;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36/*!
37 * \brief Interface pour gérer une connectivité.
38 *
39 * Une connectivité relie deux familles, une source (sourceFamily()) et
40 * une cible (targetFamily()).
41 *
42 * Pour récupérer les entités cibles connectées à une entité source, il faut
43 * utiliser la classe ConnectivityItemVector. Par exemple:
44 *
45 \code
46 * IItemConnectivity* c = ...;
47 * Item my_item;
48 * ConnectivityItemVector civ(c);
49 * ENUMERATE_ITEM(icitem,civ.connectedItems(my_item)){
50 * // Itère sur les entités connectées à \a my_item via \a c.
51 * }
52 \endcode
53
54 */
55class ARCANE_CORE_EXPORT IItemConnectivity
57{
58 public:
59
60 friend class ConnectivityItemVector;
61
62 public:
63
64 virtual ~IItemConnectivity(){}
65
66 public:
67
68 //! Nom de la connectivité
69 virtual const String& name() const = 0;
70
71 //! Liste des familles (sourceFamily() + targetFamily())
73
74 //! Famille source
75 virtual IItemFamily* sourceFamily() const = 0;
76
77 //! Famille cible
78 virtual IItemFamily* targetFamily() const = 0;
79
80 //! Notifie la connectivité que la famille source est compactée.
82
83 //! Notifie la connectivité que la famille cible est compactée.
85
86 /*!
87 * \brief Mise à jour de la connectivité.
88 *
89 * Les deux tableaux \a from_items et \a to_items sont de mêmes tailles.
90 * Les items peuvent donc éventuellement être répétés s'ils apparaissent dans
91 * plusieurs connexions. Ex si on a les connexions suivantes (en lid) 1-3 ; 2-4 ; 1-5 on entre
92 * from_items [ 1 2 1 ] et to_items [ 3 4 5 ].
93 */
94 virtual void updateConnectivity(Int32ConstArrayView from_items, Int32ConstArrayView to_items) = 0;
95};
96
97/*---------------------------------------------------------------------------*/
98/*---------------------------------------------------------------------------*/
99
100ARCANE_END_NAMESPACE
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
104
105#endif
Gère la récupération des informations de connectivité.
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.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.