MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / progressCallbackFor

Method progressCallbackFor

source/MRMesh/MRSceneLoad.cpp:174–192  ·  view source on GitHub ↗

create a progress callback for async task

Source from the content-addressed store, hash-verified

172
173 // create a progress callback for async task
174 ProgressCallback progressCallbackFor( size_t index )
175 {
176 if ( !progressCallback )
177 return {};
178
179 return [this, index] ( float v )
180 {
181 float sum = .00f;
182 {
183#if !defined( __EMSCRIPTEN__ ) || defined( __EMSCRIPTEN_PTHREADS__ )
184 std::unique_lock lock( asyncProgressMutex );
185#endif
186 asyncProgressMap[index] = v;
187 for ( const auto& [_, v1] : asyncProgressMap )
188 sum += v1 / (float)asyncProgressMap.size();
189 }
190 return reportProgress( progressCallback, sum );
191 };
192 }
193};
194
195Expected<LoadedObjects> sLoadPath( const std::filesystem::path& path, const Settings::OpenFolder& openFolder, const ProgressCallback& callback )

Callers 1

Calls 2

reportProgressFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected