12#ifndef ARCANE_CORE_ITEMPAIRGROUP_H
13#define ARCANE_CORE_ITEMPAIRGROUP_H
17#include "arcane/utils/AutoRef.h"
18#include "arcane/utils/Iterator.h"
19#include "arcane/utils/IFunctorWithArgument.h"
21#include "arcane/core/ItemPairGroupImpl.h"
73 virtual ~ItemPairGroup() =
default;
115 m_impl->invalidate(force_recompute);
135 return (impl->itemKind() == ik && impl->subItemKind() == aik) ? impl : ItemPairGroupImpl::checkSharedNull();
170template <
typename ItemKind,
typename SubItemKind>
177 typedef ItemPairGroupT<ItemKind, SubItemKind>
ThatClass;
182 typedef typename TraitsType::ItemType ItemType;
183 typedef typename TraitsType::ItemGroupType ItemGroupType;
184 typedef typename SubTraitsType::ItemType SubItemType;
185 typedef typename SubTraitsType::ItemGroupType SubItemGroupType;
196 ItemPairGroupT(
const ItemGroupType& group,
const SubItemGroupType& sub_group,
200 ItemPairGroupT(
const ItemGroupType& group,
const SubItemGroupType& sub_group,
Declarations of types on entities.
Encapsulation of a pointer with a reference counter.
Interface of a functor with an argument but without a return value.
Interface of an entity family.
Enumerator over an array of arrays of mesh entities.
Implementation of an array of lists of entities.
Reference to a group of a given kind.
ItemTraitsT< ItemKind > TraitsType
Type of the class containing the entity characteristics.
ItemPairGroupT< ItemKind, SubItemKind > ThatClass
Type of this class.
Wrapper for an ItemPairGroup::CustomFunctor.
IFunctorWithArgumentT< ItemPairGroupBuilder & > CustomFunctor
Functor for custom connectivity calculation.
eItemKind itemKind() const
Type of entities in the group.
const ItemGroup & itemGroup() const
Initial item group.
IItemFamily * itemFamily() const
Entity family to which this group belongs (0 for a null list).
eItemKind subItemKind() const
Type of sub-entities in the group.
ItemPairGroup(const ItemPairGroup &from)
Copy constructor.
static ItemPairGroupImpl * _check(ItemPairGroupImpl *impl, eItemKind ik, eItemKind aik)
Returns the group impl if it is of kind kt, the null group otherwise.
void checkValid()
Internal check of group validity.
void invalidate(bool force_recompute=false)
Invalidates the list.
IItemFamily * subItemFamily() const
Entity family to which this group belongs (0 for a null list).
ItemPairGroup()
Constructs an empty table.
AutoRefT< ItemPairGroupImpl > m_impl
Internal representation of the group.
const ItemGroup & subItemGroup() const
Final item group (after bounce).
ItemPairGroupImpl * internal() const
Returns the group implementation.
bool null() const
true means the group is the null group
IMesh * mesh() const
Mesh to which this list belongs (0 for a null list).
Characteristics of mesh elements.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
eItemKind
Mesh entity type.