@@ -52,7 +52,29 @@ mgis_status mgis_bv_material_data_manager_initializer_bind_tangent_operator(
5252 return mgis_handle_cxx_exception ();
5353 }
5454 return mgis_report_success ();
55- } // end of mgis_bv_create_material_data_manager_initializer
55+ } // end of mgis_bv_material_data_manager_initializer_bind_tangent_operator
56+
57+ mgis_status mgis_bv_material_data_manager_initializer_bind_speed_of_sound (
58+ mgis_bv_MaterialDataManagerInitializer* d,
59+ mgis_real* const p,
60+ mgis_size_type s) {
61+ if (d == nullptr ) {
62+ return mgis_report_failure (
63+ " mgis_bv_material_data_manager_initializer_bind_speed_of_sound: "
64+ " null argument" );
65+ }
66+ if (p == nullptr ) {
67+ return mgis_report_failure (
68+ " mgis_bv_material_data_manager_initializer_bind_speed_of_sound: "
69+ " invalid tangent operator" );
70+ }
71+ try {
72+ d->speed_of_sound = mgis::span<mgis::real>(p, s);
73+ } catch (...) {
74+ return mgis_handle_cxx_exception ();
75+ }
76+ return mgis_report_success ();
77+ } // end of mgis_bv_create_material_data_manager_initializer_bind_speed_of_sound
5678
5779mgis_status mgis_bv_material_data_manager_initializer_get_state_0_initializer (
5880 mgis_bv_MaterialStateManagerInitializer** s,
@@ -135,6 +157,121 @@ mgis_status mgis_bv_create_material_data_manager_with_initializer(
135157 return mgis_report_success ();
136158} // end of mgis_bv_create_material_data_manager_with_initializer
137159
160+ mgis_status mgis_bv_material_data_manager_set_thread_safe (
161+ mgis_bv_MaterialDataManager* const d, const mgis_size_type b) {
162+ if (d == nullptr ) {
163+ return mgis_report_failure (
164+ " mgis_bv_material_data_manager_set_thread_safe: "
165+ " null behaviour" );
166+ }
167+ try {
168+ d->setThreadSafe (static_cast <bool >(b));
169+ } catch (...) {
170+ return mgis_handle_cxx_exception ();
171+ }
172+ return mgis_report_success ();
173+ } // end of mgis_bv_material_data_manager_set_thread_safe
174+
175+ mgis_status
176+ mgis_bv_material_data_manager_allocate_array_of_tangent_operator_blocks (
177+ mgis_bv_MaterialDataManager* const d) {
178+ if (d == nullptr ) {
179+ return mgis_report_failure (
180+ " mgis_bv_material_data_manager_set_thread_safe: "
181+ " null behaviour" );
182+ }
183+ try {
184+ d->allocateArrayOfTangentOperatorBlocks ();
185+ } catch (...) {
186+ return mgis_handle_cxx_exception ();
187+ }
188+ return mgis_report_success ();
189+ } // end of
190+ // mgis_bv_material_data_manager_allocate_array_of_tangent_operator_blocks
191+
192+ mgis_status
193+ mgis_bv_material_data_manager_use_external_array_of_tangent_operator_blocks (
194+ mgis_bv_MaterialDataManager* const d,
195+ mgis_real* const p,
196+ const mgis_size_type n) {
197+ if (d == nullptr ) {
198+ return mgis_report_failure (
199+ " mgis_bv_material_data_manager_set_thread_safe: "
200+ " null behaviour" );
201+ }
202+ try {
203+ d->useExternalArrayOfTangentOperatorBlocks (mgis::span<mgis::real>(p, n));
204+ } catch (...) {
205+ return mgis_handle_cxx_exception ();
206+ }
207+ return mgis_report_success ();
208+ } // end of
209+ // mgis_bv_material_data_manager_use_external_array_of_tangent_operator_blocks
210+
211+ mgis_status
212+ mgis_bv_material_data_manager_release_array_of_tangent_operator_blocks (
213+ mgis_bv_MaterialDataManager* const d) {
214+ if (d == nullptr ) {
215+ return mgis_report_failure (
216+ " mgis_bv_material_data_manager_set_thread_safe: "
217+ " null behaviour" );
218+ }
219+ try {
220+ d->releaseArrayOfTangentOperatorBlocks ();
221+ } catch (...) {
222+ return mgis_handle_cxx_exception ();
223+ }
224+ return mgis_report_success ();
225+ } // end of
226+ // mgis_bv_material_data_manager_release_array_of_tangent_operator_blocks
227+
228+ mgis_status
229+ mgis_bv_material_data_manager_allocate_array_of_speed_of_sounds (
230+ mgis_bv_MaterialDataManager* const d) {
231+ if (d == nullptr ) {
232+ return mgis_report_failure (
233+ " mgis_bv_material_data_manager_set_thread_safe: "
234+ " null behaviour" );
235+ }
236+ try {
237+ d->allocateArrayOfSpeedOfSounds ();
238+ } catch (...) {
239+ return mgis_handle_cxx_exception ();
240+ }
241+ return mgis_report_success ();
242+ } // end of mgis_bv_material_data_manager_allocate_array_of_speed_of_sounds
243+
244+ mgis_status mgis_bv_material_data_manager_use_external_array_of_speed_of_sounds (
245+ mgis_bv_MaterialDataManager* const d,
246+ mgis_real* const p,
247+ const mgis_size_type n) {
248+ if (d == nullptr ) {
249+ return mgis_report_failure (
250+ " mgis_bv_material_data_manager_set_thread_safe: "
251+ " null behaviour" );
252+ }
253+ try {
254+ d->useExternalArrayOfSpeedOfSounds (mgis::span<mgis::real>(p, n));
255+ } catch (...) {
256+ return mgis_handle_cxx_exception ();
257+ }
258+ return mgis_report_success ();
259+ } // end of mgis_bv_material_data_manager_use_external_array_of_speed_of_sounds
260+
261+ mgis_status mgis_bv_material_data_manager_release_array_of_speed_of_sounds (
262+ mgis_bv_MaterialDataManager* const d) {
263+ if (d == nullptr ) {
264+ return mgis_report_failure (
265+ " mgis_bv_material_data_manager_set_thread_safe: "
266+ " null behaviour" );
267+ }
268+ try {
269+ d->releaseArrayOfSpeedOfSounds ();
270+ } catch (...) {
271+ return mgis_handle_cxx_exception ();
272+ }
273+ return mgis_report_success ();
274+ } // end of mgis_bv_material_data_manager_release_array_of_speed_of_sounds
138275mgis_status mgis_bv_material_data_manager_get_state_0 (
139276 mgis_bv_MaterialStateManager** s, mgis_bv_MaterialDataManager* const d) {
140277 if (d == nullptr ) {
0 commit comments