13#include "arcane/lima/internal/LimaUtils.h"
15#include "arcane/utils/CheckedConvert.h"
16#include "arcane/utils/ITraceMng.h"
18#include "arcane/core/IItemFamily.h"
19#include "arcane/core/IMeshReader.h"
20#include "arcane/core/ItemGroup.h"
39 if (!local_ids.
empty())
40 std::sort(std::begin(local_ids), std::end(local_ids));
44 for (
Integer i = 1; i < nb_item; ++i)
45 if (local_ids[i] == local_ids[i - 1]) {
48 if (nb_duplicated != 0) {
49 tm->
warning() <<
"Duplicated items in group name=" << name
50 <<
" nb_duplicated=" << nb_duplicated;
51 auto xbegin = std::begin(local_ids);
52 auto xend = std::end(local_ids);
53 Integer new_size = CheckedConvert::toInteger(std::unique(xbegin, xend) - xbegin);
54 tm->
info() <<
"NEW_SIZE=" << new_size <<
" old=" << nb_item;
55 local_ids = local_ids.
subView(0, new_size);
constexpr ArrayView< T > subView(Integer abegin, Integer asize) noexcept
Sous-vue à partir de l'élément abegin et contenant asize éléments.
constexpr Integer size() const noexcept
Retourne la taille du tableau.
constexpr bool empty() const noexcept
Retourne true si le tableau est vide (dimension nulle).
Interface d'une famille d'entités.
virtual ItemGroup createGroup(const String &name, Int32ConstArrayView local_ids, bool do_override=false)=0
Créé un groupe d'entités de nom name contenant les entités local_ids.
virtual ITraceMng * traceMng() const =0
Gestionnaire de trace associé
Interface du gestionnaire de traces.
virtual TraceMessage warning()=0
Flot pour un message d'avertissement.
virtual TraceMessage info()=0
Flot pour un message d'information.
static void createGroup(IItemFamily *family, const String &name, Int32ArrayView local_ids)
Créé un groupe d'entités.
Chaîne de caractères unicode.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type représentant un entier.
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.