Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
AbstractItemFamilyTopologyModifier.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/* AbstractItemFamilyTopologyModifier.h (C) 2000-2020 */
9/* */
10/* Modification de la topologie des entités d'une famille. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_ABSTRACTITEMFAMILYTOPOLOGYMODIFIER_H
13#define ARCANE_MESH_ABSTRACTITEMFAMILYTOPOLOGYMODIFIER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18
19#include "arcane/IItemFamilyTopologyModifier.h"
20
21#include "arcane/mesh/MeshGlobal.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane::mesh
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
35class ARCANE_MESH_EXPORT AbstractItemFamilyTopologyModifier
36: public TraceAccessor
38{
39 public:
40
41 AbstractItemFamilyTopologyModifier(IItemFamily* afamily);
42 virtual ~AbstractItemFamilyTopologyModifier() {} //<! Libère les ressources
43
44 public:
45
47 IItemFamily* family() const override;
48
49 public:
50
51 void replaceNode(ItemLocalId item_lid,Integer index,ItemLocalId new_node_lid) override;
52 void replaceEdge(ItemLocalId item_lid,Integer index,ItemLocalId new_edge_lid) override;
53 void replaceFace(ItemLocalId item_lid,Integer index,ItemLocalId new_face_lid) override;
54 void replaceCell(ItemLocalId item_lid,Integer index,ItemLocalId new_cell_lid) override;
55 void replaceHParent(ItemLocalId item_lid,Integer index,ItemLocalId new_hparent_lid) override;
56 void replaceHChild(ItemLocalId item_lid,Integer index,ItemLocalId new_hchild_lid) override;
57
58 void findAndReplaceNode(ItemLocalId item_lid,ItemLocalId old_node_lid,
59 ItemLocalId new_node_lid) override;
60 void findAndReplaceEdge(ItemLocalId item_lid,ItemLocalId old_edge_lid,
61 ItemLocalId new_edge_lid) override;
62 void findAndReplaceFace(ItemLocalId item_lid,ItemLocalId old_face_lid,
63 ItemLocalId new_face_lid) override;
64 void findAndReplaceCell(ItemLocalId item_lid,ItemLocalId old_cell_lid,
65 ItemLocalId new_cell_lid) override;
66
67 private:
68
69 IItemFamily* m_family;
70
71 void _throwNotSupported();
72 inline Int32 _getItemIndex(const Int32* items,Integer nb_item,Int32 local_id);
73 inline Int32 _getItemIndex(ItemVectorView items,Int32 local_id);
74};
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79} // End namespace Arcane::mesh
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84#endif
Interface de modification de la topologie des entités d'une famille.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Index d'un Item dans une variable.
Definition ItemLocalId.h:41
Vue sur un vecteur d'entités.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
void replaceNode(ItemLocalId item_lid, Integer index, ItemLocalId new_node_lid) override
Remplace un noeud d'une entité.
void findAndReplaceFace(ItemLocalId item_lid, ItemLocalId old_face_lid, ItemLocalId new_face_lid) override
Remplace une face d'une entité.
Int32 _getItemIndex(const Int32 *items, Integer nb_item, Int32 local_id)
Recherche l'index de l'entité de localid() local_id dans la liste items.
void replaceEdge(ItemLocalId item_lid, Integer index, ItemLocalId new_edge_lid) override
Remplace une arête d'une entité.
void findAndReplaceNode(ItemLocalId item_lid, ItemLocalId old_node_lid, ItemLocalId new_node_lid) override
Remplace un noeud d'une entité.
void replaceHChild(ItemLocalId item_lid, Integer index, ItemLocalId new_hchild_lid) override
Remplace une entité enfant d'une entité.
void replaceCell(ItemLocalId item_lid, Integer index, ItemLocalId new_cell_lid) override
Remplace une maille d'une entité.
void replaceHParent(ItemLocalId item_lid, Integer index, ItemLocalId new_hparent_lid) override
Remplace une entité parente d'une entité.
void findAndReplaceCell(ItemLocalId item_lid, ItemLocalId old_cell_lid, ItemLocalId new_cell_lid) override
Remplace une maille d'une entité.
IItemFamily * family() const override
Famille associée.
void replaceFace(ItemLocalId item_lid, Integer index, ItemLocalId new_face_lid) override
Remplace une face d'une entité.
void findAndReplaceEdge(ItemLocalId item_lid, ItemLocalId old_edge_lid, ItemLocalId new_edge_lid) override
Remplace une arête d'une entité.
Int32 Integer
Type représentant un entier.
std::int32_t Int32
Type entier signé sur 32 bits.