feat/vtk-3d-view #7
|
|
@ -188,11 +188,13 @@ void VtkSceneView::applyCameraView(geopro::controller::ViewDir dir) {
|
|||
scene_.renderer()->ResetCamera(bounds); // 重新取景到数据(否则被~公里级底图推到超远)
|
||||
scene_.renderer()->ResetCameraClippingRange(); // 裁剪面含底图
|
||||
if (renderWindow_) renderWindow_->Render();
|
||||
if (onCameraChanged) onCameraChanged(); // 相机变了 → 底图按新视锥重算覆盖
|
||||
}
|
||||
|
||||
void VtkSceneView::zoom(double factor) {
|
||||
geopro::render::zoomBy(scene_.renderer(), factor);
|
||||
if (renderWindow_) renderWindow_->Render();
|
||||
if (onCameraChanged) onCameraChanged();
|
||||
}
|
||||
|
||||
void VtkSceneView::fitView() {
|
||||
|
|
@ -203,6 +205,7 @@ void VtkSceneView::fitView() {
|
|||
geopro::render::fitView(scene_.renderer());
|
||||
scene_.renderer()->ResetCameraClippingRange(); // 裁剪面含底图 → 不被"蒙版"切掉
|
||||
if (renderWindow_) renderWindow_->Render();
|
||||
if (onCameraChanged) onCameraChanged(); // 取景后 → 底图按新视锥重算覆盖(治首帧部分瓦片不出)
|
||||
}
|
||||
|
||||
void VtkSceneView::rebuildAxes() {
|
||||
|
|
@ -246,6 +249,7 @@ void VtkSceneView::render(bool is2D) {
|
|||
scene_.renderer()->ResetCamera();
|
||||
scene_.renderer()->ResetCameraClippingRange(); // 裁剪面含底图 → 不被"蒙版"切掉
|
||||
if (renderWindow_) renderWindow_->Render();
|
||||
if (onCameraChanged) onCameraChanged(); // 取景后 → 底图按新视锥重算覆盖
|
||||
}
|
||||
|
||||
void VtkSceneView::renderIncremental() {
|
||||
|
|
|
|||
|
|
@ -62,6 +62,9 @@ public:
|
|||
// frame 原点重锚(首个带经纬剖面到达)后回调,供底图等随之刷新到数据所在位置。
|
||||
std::function<void()> onFrameReanchored;
|
||||
|
||||
// 相机程序化变化(取景/预设/缩放)后回调,供底图按新视锥重算覆盖(否则首帧部分瓦片要手动微动才出)。
|
||||
std::function<void()> onCameraChanged;
|
||||
|
||||
private:
|
||||
// 按当前坐标轴设置 + 场景包围盒重建坐标轴 prop(render 末尾调)。
|
||||
void rebuildAxes();
|
||||
|
|
|
|||
|
|
@ -412,6 +412,8 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
|||
sceneView->onFrameReanchored = [basemap, basemapKind]() {
|
||||
if (*basemapKind != geopro::app::TileBasemap::Hidden) basemap->show(*basemapKind);
|
||||
};
|
||||
// 相机程序化变化(取景/预设/缩放)后,底图按新视锥重算覆盖(治首帧部分瓦片需手动微动才出)。
|
||||
sceneView->onCameraChanged = [basemap]() { basemap->refresh(); };
|
||||
|
||||
// ── 中央“空状态”引导浮层:未接入真实 sections 时,引导首次使用者从左侧入手。──
|
||||
// 透明背景 + 鼠标穿透(不挡 QVTK 交互);CenterOverlay 随视口尺寸保持居中;
|
||||
|
|
|
|||
Loading…
Reference in New Issue