Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ItemPairGroup.cc
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/* ItemPairGroup.cc (C) 2000-2016 */
9/* */
10/* Tableau de listes d'entités. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/ArcanePrecomp.h"
15#include "arcane/utils/IFunctor.h"
16#include "arcane/utils/NotImplementedException.h"
17
18#include "arcane/ItemPairGroup.h"
19#include "arcane/IItemFamily.h"
20#include "arcane/ItemGroup.h"
21#include "arcane/ItemPairEnumerator.h"
22#include "arcane/ItemPairGroupBuilder.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27ARCANE_BEGIN_NAMESPACE
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130/*---------------------------------------------------------------------------*/
136: public IFunctor
137{
138 public:
140 : m_group(g), m_functor(f){}
142 {
143 delete m_functor;
144 }
145 public:
146 void executeFunctor() override
147 {
148 ItemPairGroupBuilder builder(m_group);
149 m_functor->executeFunctor(builder);
150 }
151 public:
152 ItemPairGroupImpl* m_group;
154};
155
156/*---------------------------------------------------------------------------*/
157/*---------------------------------------------------------------------------*/
158
159ItemPairGroup::
160ItemPairGroup(const ItemGroup& group,const ItemGroup& sub_item_group,
162: m_impl(nullptr)
163{
165 ItemPairGroup v = item_family->findAdjencyItems(group,sub_item_group,link_kind,1);
166 m_impl = v.internal();
167}
168
169/*---------------------------------------------------------------------------*/
170/*---------------------------------------------------------------------------*/
171
174 CustomFunctor* functor)
175: m_impl(nullptr)
176{
177 ARCANE_CHECK_POINTER(functor);
179 IFunctor* f = new CustomFunctorWrapper(m_impl.get(),functor);
180 m_impl->setComputeFunctor(f);
181 m_impl->invalidate(true);
182}
183
184/*---------------------------------------------------------------------------*/
185/*---------------------------------------------------------------------------*/
186
192
193/*---------------------------------------------------------------------------*/
194/*---------------------------------------------------------------------------*/
195
198: m_impl(ItemPairGroupImpl::checkSharedNull())
199{
200}
201
202/*---------------------------------------------------------------------------*/
203/*---------------------------------------------------------------------------*/
204
205ItemPairEnumerator ItemPairGroup::
206enumerator() const
207{
208 return ItemPairEnumerator(*this);
209}
210
211/*---------------------------------------------------------------------------*/
212/*---------------------------------------------------------------------------*/
213
214ARCANE_END_NAMESPACE
215
216/*---------------------------------------------------------------------------*/
217/*---------------------------------------------------------------------------*/
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
Interface d'une famille d'entités.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
IItemFamily * itemFamily() const
Famille d'entité à laquelle appartient ce groupe (0 pour le group nul)
Definition ItemGroup.h:123
Enumérateur sur un tableau de tableaux d'entités du maillage.
Construction des listes des entités des ItemPairGroup.
Implémentation d'un tableau de listes d'entités.
Wrapper sur un fonctor ItemPairGroup::CustomFunctor.
void executeFunctor() override
Exécute la méthode associé
Tableau de listes d'entités.
ItemPairGroup()
Construit un tableau vide.
AutoRefT< ItemPairGroupImpl > m_impl
Représentation interne du groupe.
ItemPairGroupImpl * internal() const
Retourne l'implémentation du groupe.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Interface d'un fonctor avec argument mais sans valeur de retour.
eItemKind
Genre d'entité de maillage.