feat/vtk-3d-view #7

Merged
gaozheng merged 301 commits from feat/vtk-3d-view into main 2026-06-27 18:43:52 +08:00
2 changed files with 8 additions and 1 deletions
Showing only changes of commit e62e2cdc8d - Show all commits

View File

@ -72,6 +72,10 @@ public:
// frame 原点重锚(首个带经纬剖面到达)后回调,供底图等随之刷新到数据所在位置。 // frame 原点重锚(首个带经纬剖面到达)后回调,供底图等随之刷新到数据所在位置。
std::function<void()> onFrameReanchored; std::function<void()> onFrameReanchored;
// 复位"已按数据重锚"标志:切换项目清场后调,使新项目首个数据重新触发重锚(→ onFrameReanchored
// → 底图按新项目位置重显)。否则增量勾选不走 clear(),旧标志残留 → 不重锚 → 底图不再显示。
void resetFrameAnchor() { frameAnchoredToData_ = false; }
// 相机程序化变化(取景/预设/缩放)后回调,供底图按新视锥重算覆盖(否则首帧部分瓦片要手动微动才出)。 // 相机程序化变化(取景/预设/缩放)后回调,供底图按新视锥重算覆盖(否则首帧部分瓦片要手动微动才出)。
std::function<void()> onCameraChanged; std::function<void()> onCameraChanged;

View File

@ -1210,7 +1210,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
// 仅真正换项目用delete-refresh 等 switchProject(currentProjectId) 不走此处,避免误清)。 // 仅真正换项目用delete-refresh 等 switchProject(currentProjectId) 不走此处,避免误清)。
auto clearCentral = [drawer, sceneCtrl, emptyState, checkedProfiles, checkedAnalysis, auto clearCentral = [drawer, sceneCtrl, emptyState, checkedProfiles, checkedAnalysis,
pushChecked, lastAnalysisRows, refreshAnalysis, checkedSliceIds, pushChecked, lastAnalysisRows, refreshAnalysis, checkedSliceIds,
syncSlices, basemap]() { syncSlices, basemap, sceneView]() {
// 三栏清空col2D/col3D setDatasets({}) 会顺带发空勾选 → setChecked2DDatasets({})/帘面清空)。 // 三栏清空col2D/col3D setDatasets({}) 会顺带发空勾选 → setChecked2DDatasets({})/帘面清空)。
drawer->col3D()->setDatasets({}); drawer->col3D()->setDatasets({});
drawer->col2D()->setDatasets({}); drawer->col2D()->setDatasets({});
@ -1223,6 +1223,9 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
pushChecked(); // setCheckedDatasets({}) → 帘面/体素清空 pushChecked(); // setCheckedDatasets({}) → 帘面/体素清空
syncSlices(); // 切片随空勾选调和 syncSlices(); // 切片随空勾选调和
sceneCtrl->setChecked2DDatasets({}); // 2D 足迹显式撤场(与 col2D 空勾选双保险) sceneCtrl->setChecked2DDatasets({}); // 2D 足迹显式撤场(与 col2D 空勾选双保险)
// 复位重锚标志:增量勾选不走 clear(),不复位则旧标志残留 → 新项目数据不重锚 →
// onFrameReanchored 不触发 → 下面 hide() 的底图永不再显。复位后新项目首个数据重锚→重显。
sceneView->resetFrameAnchor();
basemap->hide(); // 底图瓦片清空(锚在旧项目位置;新项目数据到来 re-anchor 时按新位置重显) basemap->hide(); // 底图瓦片清空(锚在旧项目位置;新项目数据到来 re-anchor 时按新位置重显)
// 空状态浮层恢复(对象树勾选会随 structureLoaded 重建而清,无需手动)。 // 空状态浮层恢复(对象树勾选会随 structureLoaded 重建而清,无需手动)。
emptyState->setVisible(true); emptyState->setVisible(true);