Arcane  v3.15.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IItemFamilyTopologyModifier.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/* IItemFamilyTopologyModifier.h (C) 2000-2025 */
9/* */
10/* Interface de modification de la topologie des entités d'une famille. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IITEMFAMILYTOPOLOGYMODIFIER_H
13#define ARCANE_IITEMFAMILYTOPOLOGYMODIFIER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ItemTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \ingroup Mesh
29 * \brief Interface de modification de la topologie des entités d'une famille.
30 *
31 * Cette classe à vocation à être temporaire et sert pour remplacer
32 * les appels direct à ItemInternal en gérant les anciennes ou nouvelles
33 * connectivités.
34 *
35 * \warning Cette classe permet de modifier directement les connectivités
36 * des maillages non-structurés ce qui peut introduire des incohérences dans
37 * la topologie et les connectivités. Il faut donc faire très attention
38 * lorsqu'on utilise des méthodes de cette classe. Il est préférable
39 * d'utiliser les méthodes de IMeshModifier si on souhaite ajouter/supprimer
40 * des entités du maillage en garantissant la cohérence.
41 */
42class ARCANE_CORE_EXPORT IItemFamilyTopologyModifier
43{
44 public:
45
46 //! Libère les ressources
47 virtual ~IItemFamilyTopologyModifier() = default;
48
49 public:
50
51 //! Famille associée
52 virtual IItemFamily* family() const = 0;
53
54 public:
55
56 /*!
57 * \brief Remplace un noeud d'une entité.
58 *
59 * Remplace le \a index-ème noeud de l'entité de la famille \a family()
60 * de numéro local \a item_lid par le noeud de numéro local \a new_node_lid.
61 */
62 virtual void replaceNode(ItemLocalId item_lid, Integer index,
64
65 /*!
66 * \brief Remplace une arête d'une entité.
67 *
68 * Remplace la \a index-ème arête de l'entité de la famille \a family()
69 * de numéro local \a item_lid par l'arête de numéro local \a new_edge_lid.
70 */
71 virtual void replaceEdge(ItemLocalId item_lid, Integer index,
73
74 /*!
75 * \brief Remplace une face d'une entité.
76 *
77 * Remplace la \a index-ème face de l'entité de la famille \a family()
78 * de numéro local \a item_lid par la face de numéro local \a new_face_lid.
79 */
80 virtual void replaceFace(ItemLocalId item_lid, Integer index,
82
83 /*!
84 * \brief Remplace une maille d'une entité.
85 *
86 * Remplace la \a index-ème maille de l'entité de la famille \a family()
87 * de numéro local \a item_lid par la face de numéro local \a new_cell_lid.
88 */
89 virtual void replaceCell(ItemLocalId item_lid, Integer index,
91
92 /*!
93 * \brief Remplace une entité parente d'une entité.
94 *
95 * Remplace la \a index-ème entité parent de l'entité de la famille \a family()
96 * de numéro local \a item_lid par l'entité parent de numéro local \a new_hparent_lid.
97 */
98 virtual void replaceHParent(ItemLocalId item_lid, Integer index,
100
101 /*!
102 * \brief Remplace une entité enfant d'une entité.
103 *
104 * Remplace la \a index-ème entité enfant de l'entité de la famille \a family()
105 * de numéro local \a item_lid par l'entité enfant de numéro local \a new_hchild_lid.
106 */
107 virtual void replaceHChild(ItemLocalId item_lid, Integer index,
109
110 /*!
111 * \brief Remplace un noeud d'une entité.
112 *
113 * Remplace le noeud de numéro local \a old_node_lid de l'entité de la famille \a family()
114 * de numéro local \a item_lid par le noeud de numéro local \a new_node_lid.
115 *
116 * Lance une exception si le noeud \a old_node_id n'est pas trouvé.
117 */
120
121 /*!
122 * \brief Remplace une arête d'une entité.
123 *
124 * Remplace l'arête de numéro local \a old_edge_lid de l'entité de la famille \a family()
125 * de numéro local \a item_lid par l'arête de numéro local \a new_edge_lid.
126 *
127 * Lance une exception si l'arête \a old_edge_lid n'est pas trouvée.
128 */
131
132 /*!
133 * \brief Remplace une face d'une entité.
134 *
135 * Remplace la face de numéro local \a old_face_lid de l'entité de la famille \a family()
136 * de numéro local \a item_lid par la face de numéro local \a new_face_lid.
137 *
138 * Lance une exception si la face \a old_face_lid n'est pas trouvée.
139 */
142
143 /*!
144 * \brief Remplace une maille d'une entité.
145 *
146 * Remplace la maille de numéro local \a old_cell_lid de l'entité de la famille \a family()
147 * de numéro local \a item_lid par la face de numéro local \a new_cell_lid.
148 *
149 * Lance une exception si la maille \a old_cell_lid n'est pas trouvée.
150 */
153
154 /*!
155 * \brief Positionne la maille devant et derrière une face.
156 *
157 * Cette méthode n'est implémentée que pour les familles de face. Pour les autres
158 * famille, lève une exception de type NotSupportedException.
159 *
160 * * \param face_lid numéro local de la face
161 * \param back_cell_lid numéro local de la maille derrière (ou NULL_ITEM_LOCAL_ID)
162 * \param front_cell_lid numéro local de la maille devant (ou NULL_ITEM_LOCAL_ID)
163 */
164 virtual void setBackAndFrontCells(FaceLocalId face_lid, CellLocalId back_cell_lid,
166};
167
168/*---------------------------------------------------------------------------*/
169/*---------------------------------------------------------------------------*/
170
171} // namespace Arcane
172
173/*---------------------------------------------------------------------------*/
174/*---------------------------------------------------------------------------*/
175
176#endif
Interface de modification de la topologie des entités d'une famille.
virtual void replaceHParent(ItemLocalId item_lid, Integer index, ItemLocalId new_hparent_lid)=0
Remplace une entité parente d'une entité.
virtual IItemFamily * family() const =0
Famille associée.
virtual void replaceCell(ItemLocalId item_lid, Integer index, ItemLocalId new_cell_lid)=0
Remplace une maille d'une entité.
virtual void replaceNode(ItemLocalId item_lid, Integer index, ItemLocalId new_node_lid)=0
Remplace un noeud d'une entité.
virtual void findAndReplaceCell(ItemLocalId item_lid, ItemLocalId old_cell_lid, ItemLocalId new_cell_lid)=0
Remplace une maille d'une entité.
virtual void findAndReplaceNode(ItemLocalId item_lid, ItemLocalId old_node_lid, ItemLocalId new_node_lid)=0
Remplace un noeud d'une entité.
virtual void findAndReplaceEdge(ItemLocalId item_lid, ItemLocalId old_edge_lid, ItemLocalId new_edge_lid)=0
Remplace une arête d'une entité.
virtual void replaceEdge(ItemLocalId item_lid, Integer index, ItemLocalId new_edge_lid)=0
Remplace une arête d'une entité.
virtual void findAndReplaceFace(ItemLocalId item_lid, ItemLocalId old_face_lid, ItemLocalId new_face_lid)=0
Remplace une face d'une entité.
virtual ~IItemFamilyTopologyModifier()=default
Libère les ressources.
virtual void replaceFace(ItemLocalId item_lid, Integer index, ItemLocalId new_face_lid)=0
Remplace une face d'une entité.
virtual void replaceHChild(ItemLocalId item_lid, Integer index, ItemLocalId new_hchild_lid)=0
Remplace une entité enfant d'une entité.
Interface d'une famille d'entités.
Index d'une entité ItemType dans une variable.
Definition ItemLocalId.h:90
Index d'un Item dans une variable.
Definition ItemLocalId.h:41
Référence à une instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-