@@ -62,12 +62,11 @@ class ARCANE_CORE_EXPORT ComponentCell
62
62
public:
63
63
64
64
ARCCORE_HOST_DEVICE ComponentCell (const matimpl::ConstituentItemBase& mii)
65
- : m_internal(mii._internal())
65
+ : m_constituent_item_index(mii.m_constituent_item_index)
66
+ , m_shared_info(mii.m_shared_info)
66
67
{}
67
68
68
- ComponentCell ()
69
- : m_internal(ComponentItemInternal::_nullItem())
70
- {}
69
+ ComponentCell () = default ;
71
70
72
71
public:
73
72
@@ -77,32 +76,32 @@ class ARCANE_CORE_EXPORT ComponentCell
77
76
public:
78
77
79
78
// ! \internal
80
- ARCCORE_HOST_DEVICE MatVarIndex _varIndex () const { return m_internal-> variableIndex ( ); }
79
+ ARCCORE_HOST_DEVICE MatVarIndex _varIndex () const { return m_shared_info-> _varIndex (m_constituent_item_index ); }
81
80
82
- ARCCORE_HOST_DEVICE matimpl::ConstituentItemBase constituentItemBase () const { return m_internal ; }
81
+ ARCCORE_HOST_DEVICE matimpl::ConstituentItemBase constituentItemBase () const { return { m_shared_info, m_constituent_item_index} ; }
83
82
84
83
// ! Composant associé
85
- IMeshComponent* component () const { return m_internal-> component ( ); }
84
+ IMeshComponent* component () const { return m_shared_info-> _component (m_constituent_item_index ); }
86
85
87
86
// ! Identifiant du composant dans la liste des composants de ce type.
88
- Int32 componentId () const { return m_internal-> componentId ( ); }
87
+ ARCCORE_HOST_DEVICE Int32 componentId () const { return m_shared_info-> _componentId (m_constituent_item_index ); }
89
88
90
89
// ! Indique s'il s'agit de la maille nulle
91
- bool null () const { return m_internal-> null (); }
90
+ bool null () const { return m_constituent_item_index. isNull (); }
92
91
93
92
// ! Maille de niveau supérieur dans la hiérarchie
94
- ComponentCell superCell () const { return ComponentCell (m_internal-> _superItemBase ()); }
93
+ ComponentCell superCell () const { return ComponentCell (_superItemBase ()); }
95
94
96
95
// ! Niveau hiérarchique de l'entité
97
- Int32 level () const { return m_internal-> level () ; }
96
+ ARCCORE_HOST_DEVICE Int32 level () const { return m_shared_info-> m_level ; }
98
97
99
98
// ! Nombre de sous-éléments
100
- Int32 nbSubItem () const { return m_internal-> nbSubItem ( ); }
99
+ ARCCORE_HOST_DEVICE Int32 nbSubItem () const { return m_shared_info-> _nbSubConstituent (m_constituent_item_index ); }
101
100
102
101
// ! Maille arcane
103
102
Cell globalCell () const
104
103
{
105
- return Cell (m_internal-> globalItemBase ( ));
104
+ return Cell (m_shared_info-> _globalItemBase (m_constituent_item_index ));
106
105
}
107
106
108
107
/* !
@@ -113,40 +112,47 @@ class ARCANE_CORE_EXPORT ComponentCell
113
112
* \warning Ce numéro unique n'est pas le même que celui de la maille globale
114
113
* associée.
115
114
*/
116
- Int64 componentUniqueId () const { return m_internal-> componentUniqueId ( ); }
115
+ Int64 componentUniqueId () const { return m_shared_info-> _componentUniqueId (m_constituent_item_index ); }
117
116
118
117
protected:
119
118
120
- static ARCCORE_HOST_DEVICE void _checkLevel ([[maybe_unused]] ComponentItemInternal* item_internal ,
119
+ static ARCCORE_HOST_DEVICE void _checkLevel ([[maybe_unused]] matimpl::ConstituentItemBase item_base ,
121
120
[[maybe_unused]] Int32 expected_level)
122
121
{
123
122
#if !defined(ARCCORE_DEVICE_CODE)
124
- if (item_internal-> null ())
123
+ if (item_base. null ())
125
124
return ;
126
- Int32 lvl = item_internal-> level ();
125
+ Int32 lvl = item_base. level ();
127
126
if (lvl != expected_level)
128
- _badConversion (item_internal , lvl, expected_level);
127
+ _badConversion (item_base , lvl, expected_level);
129
128
#endif
130
129
}
131
- static void _badConversion (ComponentItemInternal* item_internal, Int32 level, Int32 expected_level);
130
+ static void _badConversion (matimpl::ConstituentItemBase item_base, Int32 level, Int32 expected_level);
131
+
132
+ matimpl::ConstituentItemBase _subItemBase (Int32 index) const
133
+ {
134
+ return m_shared_info->_subItemBase (m_constituent_item_index, index );
135
+ }
136
+ matimpl::ConstituentItemBase _superItemBase () const
137
+ {
138
+ return m_shared_info->_superItemBase (m_constituent_item_index);
139
+ }
140
+ ARCCORE_HOST_DEVICE ConstituentItemIndex _firstSubConstituentLocalId () const
141
+ {
142
+ return m_shared_info->_firstSubConstituentLocalId (m_constituent_item_index);
143
+ }
132
144
133
145
protected:
134
146
135
- ComponentItemInternal* m_internal;
147
+ ConstituentItemIndex m_constituent_item_index;
148
+ ComponentItemSharedInfo* m_shared_info = ComponentItemSharedInfo::_nullInstance();
136
149
137
150
private:
138
151
139
152
// ! \internal
140
- // TODO: rendre obsolète
141
- ARCCORE_HOST_DEVICE ComponentItemInternal* _internal () const
142
- {
143
- return m_internal;
144
- }
145
-
146
- // ! \internal
147
- ARCCORE_HOST_DEVICE ConstituentItemIndex _internalLocalId () const
153
+ ARCCORE_HOST_DEVICE ConstituentItemIndex _constituentItemIndex () const
148
154
{
149
- return m_internal-> constituentItemIndex () ;
155
+ return m_constituent_item_index ;
150
156
}
151
157
};
152
158
0 commit comments