14#include "arcane/utils/ArgumentException.h"
15#include "arcane/utils/NotImplementedException.h"
16#include "arcane/utils/Ref.h"
18#include "arcane/core/IMesh.h"
19#include "arcane/core/IItemFamily.h"
20#include "arcane/core/internal/ItemGroupImplInternal.h"
21#include "arcane/core/materials/internal/IMeshMaterialMngInternal.h"
23#include "arcane/materials/MeshMaterialInfo.h"
24#include "arcane/materials/IMeshMaterialMng.h"
25#include "arcane/materials/MatItemEnumerator.h"
26#include "arcane/materials/ComponentItemVectorView.h"
27#include "arcane/materials/ComponentPartItemVectorView.h"
29#include "arcane/materials/internal/MeshMaterial.h"
30#include "arcane/materials/internal/MeshEnvironment.h"
31#include "arcane/materials/internal/ConstituentItemVectorImpl.h"
32#include "arcane/materials/internal/MeshComponentPartData.h"
44MeshMaterial(MeshMaterialInfo* infos, MeshEnvironment* env,
45 const String& name,
Int16 mat_id)
46: TraceAccessor(infos->materialMng()->traceMng())
47, m_material_mng(infos->materialMng())
50, m_user_material(nullptr)
51, m_data(this, name, mat_id, m_material_mng->_internalApi()->componentItemSharedInfo(LEVEL_MATERIAL), true)
52, m_non_const_this(this)
56 ARCANE_THROW(ArgumentException,
"null environement for material '{0}'", name);
68 IMesh* mesh = m_material_mng->mesh();
73 m_data._setItems(items);
91 Int32
mat_id = m_data.componentId();
94 Int32
mid =
mc.materialId();
109 return findMatCell(
c);
118 return { m_non_const_this, variableIndexer()->matvarIndexes(),
119 constituentItemListView(), variableIndexer()->localIds() };
135resizeItemsInternal(Integer
nb_item)
137 m_data._resizeItemsInternal(
nb_item);
155 return m_data.items();
164 return m_data._partData()->pureView();
173 return m_data._partData()->impureView();
182 return m_data._partData()->partView(part);
191 return { m_non_const_this, m_data._partData()->pureView() };
198impureMatItems()
const
200 return { m_non_const_this, m_data._partData()->impureView() };
209 return { m_non_const_this, m_data._partData()->partView(part) };
215Int32 MeshMaterial::InternalApi::
216variableIndexerIndex()
const
218 return variableIndexer()->index();
225createItemVectorImpl()
const
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
Interface d'une famille d'entités.
virtual IItemFamily * cellFamily()=0
Retourne la famille des mailles.
void setAsConstituentGroup()
Indique que le groupe est associé à un constituant.
ItemGroupImplInternal * _internalApi() const
API interne à Arcane.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Maille arcane avec info matériaux et milieux.
Représente un composant d'une maille multi-matériau.
Vue sur la partie impure d'un composant.
Vue sur un vecteur sur les entités d'un composant.
Vue sur une partie pure ou partielles des entités d'un composant.
Vue sur la partie pure d'un composant.
Implémentation de ComponentItemVector.
Maille arcane d'un milieu.
Interface d'un milieu d'un maillage.
Représente un matériau d'une maille multi-matériau.
Vue sur la partie impure des entités d'un matériau.
Vue sur un vecteur sur les entités d'un matériau.
Vue sur une partie pure ou partielles des entités d'un matériau.
Vue sur la partie pure des entités d'un matériau.
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.
eMatPart
Partie d'un composant.