feat/vtk-3d-view #7
|
|
@ -397,12 +397,21 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
|
|
||||||
// ── 二维数据集栏:天地图底图开关(③,复用轨迹图 token,经同一共享 GeoLocalFrame 配准)──
|
// ── 二维数据集栏:天地图底图开关(③,复用轨迹图 token,经同一共享 GeoLocalFrame 配准)──
|
||||||
auto* basemap = new geopro::app::TileBasemap(*scene, renderWindowPtr, frame, &window);
|
auto* basemap = new geopro::app::TileBasemap(*scene, renderWindowPtr, frame, &window);
|
||||||
|
// 当前底图选择(默认 天地图=Satellite,对齐 Column2DDataset 默认项);数据重锚后据此在数据位置加载。
|
||||||
|
auto basemapKind =
|
||||||
|
std::make_shared<geopro::app::TileBasemap::Kind>(geopro::app::TileBasemap::Satellite);
|
||||||
QObject::connect(drawer->col2D(), &geopro::app::Column2DDataset::basemapChanged, basemap,
|
QObject::connect(drawer->col2D(), &geopro::app::Column2DDataset::basemapChanged, basemap,
|
||||||
[basemap](int idx) {
|
[basemap, basemapKind](int idx) {
|
||||||
// 地图下拉:0 天地图(卫星影像,对齐原版观感) / 1 Google(暂未实现→隐藏) / 2 隐藏。
|
// 地图下拉:0 天地图(卫星影像) / 1 Google(暂未实现→隐藏) / 2 隐藏。
|
||||||
basemap->show(idx == 0 ? geopro::app::TileBasemap::Satellite
|
*basemapKind = (idx == 0) ? geopro::app::TileBasemap::Satellite
|
||||||
: geopro::app::TileBasemap::Hidden);
|
: geopro::app::TileBasemap::Hidden;
|
||||||
|
basemap->show(*basemapKind);
|
||||||
});
|
});
|
||||||
|
// 首个真实剖面到达 → frame 重锚到数据 lat/lon 后,把选中的底图加载到数据所在位置
|
||||||
|
// (默认天地图即在此刻出现,避免启动时在样本原点拉无关瓦片)。
|
||||||
|
sceneView->onFrameReanchored = [basemap, basemapKind]() {
|
||||||
|
if (*basemapKind != geopro::app::TileBasemap::Hidden) basemap->show(*basemapKind);
|
||||||
|
};
|
||||||
|
|
||||||
// ── 中央“空状态”引导浮层:未接入真实 sections 时,引导首次使用者从左侧入手。──
|
// ── 中央“空状态”引导浮层:未接入真实 sections 时,引导首次使用者从左侧入手。──
|
||||||
// 透明背景 + 鼠标穿透(不挡 QVTK 交互);CenterOverlay 随视口尺寸保持居中;
|
// 透明背景 + 鼠标穿透(不挡 QVTK 交互);CenterOverlay 随视口尺寸保持居中;
|
||||||
|
|
@ -788,11 +797,13 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
if (vtkFsBtn) {
|
if (vtkFsBtn) {
|
||||||
vtkFsBtn->setCheckable(true);
|
vtkFsBtn->setCheckable(true);
|
||||||
QObject::connect(vtkFsBtn, &QToolButton::toggled, &window,
|
QObject::connect(vtkFsBtn, &QToolButton::toggled, &window,
|
||||||
[applyFullscreen, vtkDock, allDocks, detailFsBtn](bool on) {
|
[applyFullscreen, vtkDock, allDocks, detailFsBtn, drawer](bool on) {
|
||||||
if (on && detailFsBtn && detailFsBtn->isChecked()) {
|
if (on && detailFsBtn && detailFsBtn->isChecked()) {
|
||||||
QSignalBlocker b(detailFsBtn);
|
QSignalBlocker b(detailFsBtn);
|
||||||
detailFsBtn->setChecked(false);
|
detailFsBtn->setChecked(false);
|
||||||
}
|
}
|
||||||
|
// VTK 全屏含左侧三栏(drawer 本就在 vtkDock 内):进入时确保展开可见。
|
||||||
|
if (on) drawer->expand();
|
||||||
applyFullscreen(vtkDock, allDocks, on);
|
applyFullscreen(vtkDock, allDocks, on);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ Column2DDataset::Column2DDataset(QWidget* parent) : QWidget(parent) {
|
||||||
basemap->addItem(QStringLiteral("天地图"));
|
basemap->addItem(QStringLiteral("天地图"));
|
||||||
basemap->addItem(QStringLiteral("Google Map"));
|
basemap->addItem(QStringLiteral("Google Map"));
|
||||||
basemap->addItem(QStringLiteral("隐藏"));
|
basemap->addItem(QStringLiteral("隐藏"));
|
||||||
basemap->setCurrentIndex(2); // 默认隐藏:选「天地图」即触发 currentIndexChanged→显示
|
basemap->setCurrentIndex(0); // 默认天地图:数据重锚后由 onFrameReanchored 在数据位置加载
|
||||||
connect(basemap, qOverload<int>(&QComboBox::currentIndexChanged), this,
|
connect(basemap, qOverload<int>(&QComboBox::currentIndexChanged), this,
|
||||||
[this](int index) { emit basemapChanged(index); });
|
[this](int index) { emit basemapChanged(index); });
|
||||||
form->addRow(QStringLiteral("底图源"), basemap);
|
form->addRow(QStringLiteral("底图源"), basemap);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue