Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ItemPairGroupBuilder.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/* ItemPairGroupBuilder.h (C) 2000-2025 */
9/* */
10/* Construction des listes des entités des ItemPairGroup. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ITEMPAIRGROUPBUILDER_H
13#define ARCANE_CORE_ITEMPAIRGROUPBUILDER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ItemPairGroup.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Construction des listes des entités des ItemPairGroup.
29 *
30 * Cette classe est utilisée lors du recalcul des entités d'un ItemPairGroup.
31 *
32 * Le code utilisateur doit appeler la méthode addNextItem() pour chaque entité
33 * de group().itemGroup() en spécifiant les localId() des entités ajoutées.
34 * Par exemple:
35 *
36 \code
37 * void functor(ItemPairGroupBuilder& builder)
38 * {
39 * Int32Array local_ids;
40 * ENUMERATE_ITEM(iitem.builder.group().itemGroup()){
41 * local_ids.clear();
42 * // Calcule les entité connectées à \a iitem et les ajoute à \a local_ids.
43 * ...
44 * builder.addNextItem(local_ids);
45 * }
46 * }
47 \endcode
48 *
49 * Pour un exemple plus complet d'utilisation, se référer à la documentation
50 * de ItemPairGroup.
51 */
52class ARCANE_CORE_EXPORT ItemPairGroupBuilder
53{
54 public:
55
56 //! \internal
57 explicit ItemPairGroupBuilder(const ItemPairGroup& group);
58 ~ItemPairGroupBuilder();
59
60 public:
61
62 //! groupe associé.
63 const ItemPairGroup& group() { return m_group; }
64 //! Ajoute les entités \a sub_items a
65 void addNextItem(Int32ConstArrayView sub_items);
66
67 private:
68
69 ItemPairGroup m_group;
70 Int64 m_index = 0;
71 Array<Int64>& m_unguarded_indexes;
72 Array<Int32>& m_unguarded_local_ids;
73};
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78} // End namespace Arcane
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83#endif
Classe de base des vecteurs 1D de données.
const ItemPairGroup & group()
groupe associé.
Tableau de listes d'entités.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569