feat(vtk): 注入 Api3dRepository 渲染真实 ERT 帘面+删样本桥(勾选真实ds→真实数据)(①.4)
This commit is contained in:
parent
2934bacd34
commit
e34abd271f
|
|
@ -82,7 +82,6 @@
|
||||||
#include "model/ColorScale.hpp"
|
#include "model/ColorScale.hpp"
|
||||||
#include "model/Field.hpp"
|
#include "model/Field.hpp"
|
||||||
#include "repo/LocalSampleRepository.hpp"
|
#include "repo/LocalSampleRepository.hpp"
|
||||||
#include "repo/LocalSample3dRepository.hpp"
|
|
||||||
|
|
||||||
#include "ApiClient.hpp"
|
#include "ApiClient.hpp"
|
||||||
#include "AuthService.hpp"
|
#include "AuthService.hpp"
|
||||||
|
|
@ -110,6 +109,7 @@
|
||||||
#include "panels/chart/GridStrategy.hpp"
|
#include "panels/chart/GridStrategy.hpp"
|
||||||
#include "api/ApiProjectRepository.hpp"
|
#include "api/ApiProjectRepository.hpp"
|
||||||
#include "api/ApiDatasetRepository.hpp"
|
#include "api/ApiDatasetRepository.hpp"
|
||||||
|
#include "api/Api3dRepository.hpp"
|
||||||
#include "panels/ObjectTreePanel.hpp"
|
#include "panels/ObjectTreePanel.hpp"
|
||||||
#include "login/LoginWindow.hpp"
|
#include "login/LoginWindow.hpp"
|
||||||
#include "panels/DatasetListPanel.hpp"
|
#include "panels/DatasetListPanel.hpp"
|
||||||
|
|
@ -224,6 +224,7 @@ constexpr const char* kWgs84 = "EPSG:4326";
|
||||||
// repo 生命周期须覆盖到事件循环结束(由调用方保证)。
|
// repo 生命周期须覆盖到事件循环结束(由调用方保证)。
|
||||||
void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& repo,
|
void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& repo,
|
||||||
geopro::data::IAsyncProjectRepository& projectRepo,
|
geopro::data::IAsyncProjectRepository& projectRepo,
|
||||||
|
geopro::data::IAsyncDatasetRepository& datasetRepo,
|
||||||
geopro::controller::WorkbenchNavController& nav,
|
geopro::controller::WorkbenchNavController& nav,
|
||||||
geopro::controller::DatasetDetailController& detailCtrl)
|
geopro::controller::DatasetDetailController& detailCtrl)
|
||||||
{
|
{
|
||||||
|
|
@ -247,9 +248,9 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
vtkGenericOpenGLRenderWindow* renderWindowPtr = renderWindow.Get();
|
vtkGenericOpenGLRenderWindow* renderWindowPtr = renderWindow.Get();
|
||||||
|
|
||||||
// 中央渲染编排(VtkSceneController + VtkSceneView,取代旧 rebuildCentral lambda 与裸 show* 标志)。
|
// 中央渲染编排(VtkSceneController + VtkSceneView,取代旧 rebuildCentral lambda 与裸 show* 标志)。
|
||||||
// 3D 场景仓储用 LocalSample3dRepository(本期样本驱动;接口异步,将来换 Api 实现不动上层)。
|
// 3D 场景仓储用 Api3dRepository(真实后端:loadSection 走真实 ERT 反演端点,委托 datasetRepo)。
|
||||||
// 视图(VtkSceneView)非 QObject、控制器/3D 仓储亦然:随 scene 一并在 vtkWidget 销毁时清理。
|
// 视图(VtkSceneView)非 QObject、控制器/3D 仓储亦然:随 scene 一并在 vtkWidget 销毁时清理。
|
||||||
auto* scene3dRepo = new geopro::data::LocalSample3dRepository(repo, kProjectCrs, lat0, lon0);
|
auto* scene3dRepo = new geopro::data::Api3dRepository(datasetRepo);
|
||||||
auto* sceneView = new geopro::app::VtkSceneView(*scene, renderWindowPtr,
|
auto* sceneView = new geopro::app::VtkSceneView(*scene, renderWindowPtr,
|
||||||
frame, refElev);
|
frame, refElev);
|
||||||
auto* sceneCtrl = new geopro::controller::VtkSceneController(repo, *scene3dRepo, *sceneView,
|
auto* sceneCtrl = new geopro::controller::VtkSceneController(repo, *scene3dRepo, *sceneView,
|
||||||
|
|
@ -373,14 +374,10 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
&geopro::controller::VtkSceneController::zoomOut);
|
&geopro::controller::VtkSceneController::zoomOut);
|
||||||
QObject::connect(c3, &geopro::app::Column3DDataset::fitRequested, sceneCtrl,
|
QObject::connect(c3, &geopro::app::Column3DDataset::fitRequested, sceneCtrl,
|
||||||
&geopro::controller::VtkSceneController::fit);
|
&geopro::controller::VtkSceneController::fit);
|
||||||
// 渲染勾选的 3D 数据集。本阶段渲染走 LocalSampleRepository(仅含样本 dd_section "grid1"),
|
// 渲染勾选的 3D 数据集:真实 ds id 直达控制器异步帘面路径
|
||||||
// 真实后端 ds 的渲染数据尚未就绪(Api3dRepository 后置)→ 勾任一 3D ds 暂以样本帘面呈现。
|
// (setCheckedDatasets → Api3dRepository.loadSection(realId) → 真实 ERT 反演端点 → 真实帘面)。
|
||||||
// Api3dRepository 就绪后删除此映射、改为直接 setCheckedDatasets(ids) 渲染真实数据。
|
|
||||||
QObject::connect(c3, &geopro::app::Column3DDataset::checkedDatasetsChanged, sceneCtrl,
|
QObject::connect(c3, &geopro::app::Column3DDataset::checkedDatasetsChanged, sceneCtrl,
|
||||||
[sceneCtrl](const QStringList& ids) {
|
&geopro::controller::VtkSceneController::setCheckedDatasets);
|
||||||
sceneCtrl->setCheckedDatasets(
|
|
||||||
ids.isEmpty() ? QStringList{} : QStringList{QStringLiteral("grid1")});
|
|
||||||
});
|
|
||||||
// O点位置/字体本期 stub(TODO P4:弹框)。
|
// O点位置/字体本期 stub(TODO P4:弹框)。
|
||||||
QObject::connect(c3, &geopro::app::Column3DDataset::oPointClicked, vtkWidget,
|
QObject::connect(c3, &geopro::app::Column3DDataset::oPointClicked, vtkWidget,
|
||||||
[]() { /* TODO P4: O点位置弹框 */ });
|
[]() { /* TODO P4: O点位置弹框 */ });
|
||||||
|
|
@ -1349,7 +1346,7 @@ int main(int argc, char* argv[])
|
||||||
window->setWindowTitle(kTitle);
|
window->setWindowTitle(kTitle);
|
||||||
window->resize(1280, 800);
|
window->resize(1280, 800);
|
||||||
window->setMinimumSize(1024, 680);
|
window->setMinimumSize(1024, 680);
|
||||||
buildWorkbench(*window, repo, projectRepo, nav, detailCtrl);
|
buildWorkbench(*window, repo, projectRepo, datasetRepo, nav, detailCtrl);
|
||||||
|
|
||||||
// 主题桥:ThemeManager 明/暗切换 → 重应用全局 QSS+调色板(标准控件 + ADS;内联 chrome 经各自连接)。
|
// 主题桥:ThemeManager 明/暗切换 → 重应用全局 QSS+调色板(标准控件 + ADS;内联 chrome 经各自连接)。
|
||||||
QObject::connect(&geopro::app::ThemeManager::instance(), &geopro::app::ThemeManager::changed,
|
QObject::connect(&geopro::app::ThemeManager::instance(), &geopro::app::ThemeManager::changed,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue