Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
core/materials/ComponentItemVector.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* ComponentItemVector.h (C) 2000-2024 */
9/* */
10/* Vecteur sur des entités composants. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MATERIALS_COMPONENTITEMVECTOR_H
13#define ARCANE_CORE_MATERIALS_COMPONENTITEMVECTOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/Ref.h"
20
21#include "arcane/core/ItemGroup.h"
22
23#include "arcane/core/materials/IMeshComponent.h"
24#include "arcane/core/materials/ComponentItemVectorView.h"
25#include "arcane/core/materials/ComponentPartItemVectorView.h"
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30namespace Arcane::Materials
31{
32class ConstituentItemLocalIdList;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
40{
41 friend class ComponentItemVector;
43
44 public:
45
46 virtual ~IConstituentItemVectorImpl() = default;
47
48 protected:
49
50 virtual ComponentItemVectorView _view() const = 0;
51 virtual ComponentPurePartItemVectorView _pureItems() const = 0;
52 virtual ComponentImpurePartItemVectorView _impureItems() const = 0;
53 virtual ConstArrayView<Int32> _localIds() const = 0;
54 virtual IMeshMaterialMng* _materialMng() const = 0;
55 virtual IMeshComponent* _component() const = 0;
56 virtual ConstArrayView<MatVarIndex> _matvarIndexes() const = 0;
57 virtual ConstituentItemLocalIdListView _constituentItemListView() const = 0;
58 virtual void _setItems(SmallSpan<const Int32> local_ids) = 0;
59};
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
83class ARCANE_CORE_EXPORT ComponentItemVector
84{
85 public:
86
89
92
93 protected:
94
96 explicit ComponentItemVector(IMeshComponent* component);
99
100 public:
101
103 operator ComponentItemVectorView() const
104 {
105 return view();
106 }
107
109 ComponentItemVectorView view() const;
110
112 IMeshComponent* component() const { return _component(); }
113
116
117 public:
118
120 ComponentPurePartItemVectorView pureItems() const;
122 ComponentImpurePartItemVectorView impureItems() const;
123
124 protected:
125
126 ConstArrayView<MatVarIndex> _matvarIndexes() const;
127 ConstituentItemLocalIdListView _constituentItemListView() const;
128
129 protected:
130
131 void _setItems(SmallSpan<const Int32> local_ids);
132 ConstArrayView<Int32> _localIds() const;
133 IMeshMaterialMng* _materialMng() const;
134 IMeshComponent* _component() const;
135
136 private:
137
139};
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143
144} // End namespace Arcane::Materials
145
146/*---------------------------------------------------------------------------*/
147/*---------------------------------------------------------------------------*/
148
149#endif
150
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue sur un vecteur sur les entités d'un composant.
IMeshComponent * component() const
Composant associé
ComponentItemVector(const ComponentItemVector &rhs)=default
Constructeur de recopie. Cette instance fait ensuite référence à rhs.
ComponentItemVector clone() const
Clone ce vecteur.
ComponentItemVector & operator=(const ComponentItemVector &)=default
Opérateur de recopie.
Vue sur une instance de ConstituentItemLocalIdList.
Interface pour l'implémentation de ComponentItemVector.
Interface d'un composant (matériau ou milieu) d'un maillage.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
Active toujours les traces dans les parties Arcane concernant les matériaux.