Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IItemFamilyModifier.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/* IItemFamilyModifier.h (C) 2000-2022 */
9/* */
10/* Interface de modification d'une famille */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IITEMFAMILYMODIFIER_H_
13#define ARCANE_IITEMFAMILYMODIFIER_H_
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18#include "arcane/ItemTypes.h"
19
20#include "arcane/mesh/MeshInfos.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31class ItemTypeInfo;
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35/*!
36 * \ingroup Mesh
37 * \brief Interface de modification d'une famille.
38 *
39 * Cette classe permet de modifier génériquement les items d'une famille. Elle
40 * est utilisée dans le workflow de modification des familles à partir du graphe
41 * des dépendances (IItemFamilyNetwork).
42 * Elle n'est implémentée que dans les familles d'items du maillage (ie tout sauf
43 * ParticleFamily et DoFFamily, où elle n'est pas nécessaire)
44 */
45class ARCANE_CORE_EXPORT IItemFamilyModifier
46{
47 public:
48
49 /** Destructeur de la classe */
51
52 public:
53
54 // DEPRECATED
55 ARCANE_DEPRECATED_REASON("Y2022: Use allocOne() overload with ItemTypeId")
56 ItemInternal* allocOne(Int64 uid,ItemTypeInfo* type, mesh::MeshInfos& mesh_info);
57 // DEPRECATED
58 ARCANE_DEPRECATED_REASON("Y2022: Use findOrAllocOne() overload with ItemTypeId")
59 ItemInternal* findOrAllocOne(Int64 uid,ItemTypeInfo* type, mesh::MeshInfos& mesh_info, bool& is_alloc);
60
61 //! Alloue un élément dans la famille et met à jour le \a mesh_info correspondant
62 virtual Item allocOne(Int64 uid,ItemTypeId type_id, mesh::MeshInfos& mesh_info) =0;
63 virtual Item findOrAllocOne(Int64 uid,ItemTypeId type_id, mesh::MeshInfos& mesh_info, bool& is_alloc) = 0;
64 virtual IItemFamily* family() = 0;
65};
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
69
70} // End namespace Arcane
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
75#endif /* IITEMFAMILYMODIFIER_H_ */
Interface de modification d'une famille.
Interface d'une famille d'entités.
Type d'une entité (Item).
Definition ItemTypeId.h:32
Infos sur un type d'entité du maillage.
Classe de base d'un élément de maillage.
Definition Item.h:83
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-