12#ifndef ARCANE_MATERIALS_INTERNAL_MESHMATERIALVARIABLEPRIVATE_H
13#define ARCANE_MATERIALS_INTERNAL_MESHMATERIALVARIABLEPRIVATE_H
17#include "arcane/utils/Array.h"
18#include "arcane/utils/ScopedPtr.h"
20#include "arcane/core/VariableDependInfo.h"
21#include "arcane/core/materials/internal/IMeshMaterialVariableInternal.h"
23#include "arcane/materials/MeshMaterialVariableDependInfo.h"
43class MeshMaterialVariablePrivate
50 ~MeshMaterialVariablePrivate();
55 bool hasRecursiveDepend()
const {
return m_has_recursive_depend; }
89 Int32 m_nb_reference = 0;
107 bool m_keep_on_change =
true;
108 IObserver* m_global_variable_changed_observer =
nullptr;
124 bool m_has_recursive_depend =
true;
Execution queue for an accelerator.
Constant view of an array of type T.
Interface of a data item.
Arguments for methods copying between partial and global values.
Interface of a component (material or environment) of a mesh.
Interface for the material and environment manager of a mesh.
Arcane internal API for 'IMeshMaterialVariable'.
Arguments for methods copying between partial and global values.
UniqueArray< VariableRef * > m_refs
Stores references to array variables used to store values per material. A reference must be kept to p...
void restoreData(IMeshComponent *component, IData *data, Integer data_index, Int32ConstArrayView ids, bool allow_null_id) override
void copyBetweenPartialAndGlobal(const CopyBetweenPartialAndGlobalArgs &args) override
UniqueArray< VariableDependInfo > m_depends
List of dependencies for this variable.
UniqueArray< Int64 > m_modified_times
Tag of the last modification per material.
void copyToBuffer(SmallSpan< const MatVarIndex > matvar_indexes, Span< std::byte > bytes, RunQueue *queue) const override
Copies the variable values into a buffer.
ScopedPtrT< IMeshMaterialVariableComputeFunction > m_compute_function
Calculation function.
ConstArrayView< VariableRef * > variableReferenceList() const override
List of 'VariableRef' associated with this variable.
String m_name
First reference on the variable.
UniqueArray< MeshMaterialVariableDependInfo > m_mat_depends
List of dependencies for this variable.
Ref< IData > internalCreateSaveDataRef(Integer nb_value) override
void copyFromBuffer(SmallSpan< const MatVarIndex > matvar_indexes, Span< const std::byte > bytes, RunQueue *queue) override
Copies the variable values from a buffer.
void syncReferences(bool check_resize) override
Synchronizes references.
Int32 dataTypeSize() const override
Byte size to save a variable value.
void resizeForIndexer(ResizeVariableIndexerArgs &args) override
Resizes the partial value associated with index index.
void initializeNewItemsWithZero(InitializeWithZeroArgs &args) override
Initialize the values of new components with zero.
void saveData(IMeshComponent *component, IData *data) override
Base class for material variable references.
Base class for material variables.
Arguments for methods copying between partial and global values.
Reference to an instance.
Encapsulation of an automatically destructing pointer.
View of an array of elements of type T.
View of an array of elements of type T.
Unicode character string.
1D data vector with value semantics (STL style).
Always enables tracing in Arcane parts concerning materials.
MatVarSpace
Definition space for a material variable.
@ MaterialAndEnvironment
Variable having values on environments and materials.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
std::int32_t Int32
Signed integer type of 32 bits.