Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
MeshMaterialIndirectModifier.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* MeshMaterialIndirectModifier.h (C) 2000-2022 */
9/* */
10/* Object allowing indirect modification of materials. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_MESHMATERIALINDIRECTMODIFIER_H
13#define ARCANE_MATERIALS_MESHMATERIALINDIRECTMODIFIER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25class IMesh;
26}
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31namespace Arcane::Materials
32{
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
43class ARCANE_MATERIALS_EXPORT MeshMaterialIndirectModifier
44{
45 public:
46
47 MeshMaterialIndirectModifier(IMeshMaterialMng*);
48 ~MeshMaterialIndirectModifier() noexcept(false);
49
50 public:
51
52 MeshMaterialIndirectModifier(const MeshMaterialIndirectModifier&) = default;
53 MeshMaterialIndirectModifier(MeshMaterialIndirectModifier&&) = default;
54 MeshMaterialIndirectModifier& operator=(const MeshMaterialIndirectModifier&) = default;
55 MeshMaterialIndirectModifier& operator=(MeshMaterialIndirectModifier&&) = default;
56
57 public:
58
63 void beginUpdate();
64
71 void endUpdate();
72
81 void endUpdateWithSort();
82
83 private:
84
85 IMeshMaterialMng* m_material_mng;
86 MeshMaterialBackup* m_backup;
87 bool m_has_update;
88
89 private:
90
91 void _endUpdate(bool do_sort);
92};
93
94/*---------------------------------------------------------------------------*/
95/*---------------------------------------------------------------------------*/
96
97} // namespace Arcane::Materials
98
99/*---------------------------------------------------------------------------*/
100/*---------------------------------------------------------------------------*/
101
102#endif
Declarations of types used in Arcane.
Interface for the material and environment manager of a mesh.
Saving/restoring material and medium values.
void endUpdate()
Updates the structures after a modification.
void endUpdateWithSort()
Updates the structures after a modification with sorting of media and material groups.
Always enables tracing in Arcane parts concerning materials.
class ARCANE_MATERIALS_EXPORT(64) SimdMatVarIndex
SIMD indexer on a component.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --