32 lines
1.2 KiB
C++
32 lines
1.2 KiB
C++
#pragma once
|
||
#include <vector>
|
||
|
||
#include "model/ColorScale.hpp"
|
||
#include "model/Field.hpp"
|
||
|
||
namespace geopro::core { class GeoLocalFrame; }
|
||
namespace geopro::render { class Scene; }
|
||
class vtkRenderer;
|
||
class vtkRenderWindow;
|
||
|
||
namespace geopro::app {
|
||
|
||
// 中央视图模式:二维地图(测线红线俯视)/ 三维视图(断面墙)。
|
||
enum class ViewMode { Map2D, View3D };
|
||
|
||
// 一个待渲染剖面:grid(2D 测线 / 3D 帘面都用)+ colorScale(3D 帘面上色)。
|
||
struct SectionInput {
|
||
geopro::core::Grid grid;
|
||
geopro::core::ColorScale colorScale;
|
||
};
|
||
|
||
// 中央场景重建(脱离对象树,按显式 sections 渲染):
|
||
// 2D = 每个 section 的 buildSurveyLine;3D = 每个 section 的 buildCurtain(受 showCurtain)。
|
||
// 下一轮接真实 DS:构建 sections 后调用本函数即可,render 层零改动。
|
||
void rebuildCentralScene(geopro::render::Scene& scene, vtkRenderer* renderer,
|
||
vtkRenderWindow* renderWindow, ViewMode mode,
|
||
const std::vector<SectionInput>& sections, bool showCurtain,
|
||
const geopro::core::GeoLocalFrame& frame, double verticalExaggeration);
|
||
|
||
} // namespace geopro::app
|