mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-12 18:43:26 +00:00
ifcviewer: promote runtime perf knobs, drop always-on settings
Promotes five env-var-driven knobs to AppSettings + the settings dialog (min pixel radius, motion min pixel radius, LOD1 pixel threshold, HiZ resolution, HiZ on/off). Defaults: motion min pixel radius is now 10 (was 0/disabled) and IFC_HIZ_MOTION is on by default — the strict view-projection gate reverts via env var =0 when chasing HiZ correctness bugs. ViewportWindow connects each *Changed signal so changes invalidate cached cull state and take effect on the next frame. Removes "Load Property Data Source" and "Apply Coordinate Operation" from the settings dialog: both are now hardcoded on. The basic-info property fallback (used when there's no live IFC source for an object, e.g. .ifcview without a sibling) now triggers organically when ElementRegistry::findEntity returns null instead of being gated on a user toggle. Federation::guessFederatedFalseOrigin lost its apply_coordinate_operation parameter and now uses georef.has_coordinate_operation directly. src/ifcviewer/settings.rst documents the remaining diagnostic env vars (IFC_HIZ_MOTION, IFC_CULL_THREADS, IFC_SKIP_MDI, IFC_MAX_SUBDRAWS, IFC_FPS_HITCH_MS, IFC_SUBDRAW_DIAG, IFC_LOD_*) plus a cross-walk from the old promoted-knob env-var names to their new QSettings keys. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -241,7 +241,7 @@ void SceneLoader::applySidecarData(uint32_t mid, SidecarData data) {
|
||||
// Restore the cached CoordinateOperation into the model so
|
||||
// modelGeoref(mid) returns it without needing the IFC source. Prevents
|
||||
// sidecar-loaded models from silently losing their georef when the
|
||||
// .ifc/.rdb sibling is absent or AppSettings.loadDataSource is off.
|
||||
// .ifc/.rdb sibling is absent.
|
||||
{
|
||||
ModelGeoref& gr = model.georef;
|
||||
gr.has_coordinate_operation = data.has_coordinate_operation != 0;
|
||||
@@ -276,8 +276,6 @@ void SceneLoader::applySidecarData(uint32_t mid, SidecarData data) {
|
||||
}
|
||||
|
||||
void SceneLoader::startDataSourceLoad(uint32_t mid) {
|
||||
if (!AppSettings::instance().loadDataSource()) return;
|
||||
|
||||
auto it = models_.find(mid);
|
||||
if (it == models_.end()) return;
|
||||
|
||||
@@ -355,13 +353,6 @@ void SceneLoader::onStreamerFinished() {
|
||||
|
||||
qint64 ms = it->second.load_timer.elapsed();
|
||||
emit loadedFromStream(mid, ms);
|
||||
|
||||
// Slot(s) above run synchronously (sidecar write uses element_map_,
|
||||
// not ifcFile()); drop the parsed file now to save memory if the
|
||||
// user has opted out of keeping a property data source.
|
||||
if (!AppSettings::instance().loadDataSource()) {
|
||||
it->second.streamer->setIfcFile(nullptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user