1#ifndef DANDELION_UI_CONTROLLER_H
2#define DANDELION_UI_CONTROLLER_H
11#include <spdlog/spdlog.h>
void select_object(Object *object)
定义 controller.cpp:488
void select_light(Light *light)
定义 controller.cpp:539
void select_halfedge(const Halfedge *halfedge)
定义 controller.cpp:494
void on_rotating(bool initial)
将鼠标拖动转换为轨迹球 (Trackball) 操作,用于旋转预览视角。
定义 controller.cpp:552
void render_debug_helpers(const Shader &shader)
渲染帮助调试的元素。
定义 controller.cpp:380
std::unique_ptr< UI::Toolbar > toolbar
定义 controller.h:228
void on_framebuffer_resized(float width, float height)
在缩放窗口时调整轨迹球半径、预览视角(相机)Y 方向的 FoV,并更新自身记录的窗口尺寸。
定义 controller.cpp:151
void on_wheel_scrolled()
将拨动鼠标滚轮的操作转换为视角拉进或远离。
定义 controller.cpp:141
void select_vertex(Vertex *vertex)
定义 controller.cpp:502
std::unique_ptr< Camera > main_camera
定义 controller.h:241
void on_translating(bool initial)
将鼠标拖动转换为视角平移。
定义 controller.cpp:608
WorkingMode mode
全局工作模式。
定义 controller.h:222
void render_selected_element(const Shader &shader)
渲染当前选中的元素。
定义 controller.cpp:316
std::shared_ptr< spdlog::logger > logger
定义 controller.h:243
void select_face(Face *face)
定义 controller.cpp:522
void pick_element(Ray &ray)
拾取半边、顶点、边或面片。
定义 controller.cpp:423
static constexpr float mouse_translation_factor
定义 controller.h:213
Controller & operator=(Controller &other)=delete
static Controller & controller()
获取 Controller 类的唯一实例。
定义 controller.cpp:35
void unselect()
取消选择。
定义 controller.cpp:277
SelectableType selected_element
当前被选中的元素。
定义 controller.h:239
static constexpr float wheel_scroll_factor
定义 controller.h:211
void render(const Shader &shader)
定义 controller.cpp:242
Controller()
定义 controller.cpp:41
GL::LineSet picking_ray
定义 controller.h:251
UI::DebugOptions debug_options
定义 controller.h:224
float window_height
定义 controller.h:118
void on_mouse_dragged(bool initial)
将鼠标拖动转换为旋转视角或平移视角操作。
定义 controller.cpp:99
GL::Mesh highlighted_element
定义 controller.h:247
void on_picking()
根据鼠标点击选取场景中的物体。
定义 controller.cpp:113
std::unique_ptr< Scene > scene
定义 controller.h:230
float window_width
定义 controller.h:118
float toolbar_width
定义 controller.h:119
Controller(Controller &other)=delete
GL::LineSet highlighted_halfedge
定义 controller.h:249
void select(SelectableType element)
选择一个元素。
定义 controller.cpp:260
float trackball_radius
定义 controller.h:245
void pick_object(Ray &ray)
拾取物体。
定义 controller.cpp:396
void select_edge(Edge *edge)
定义 controller.cpp:510
std::unique_ptr< UI::Menubar > menubar
定义 controller.h:226
void process_input()
处理关于场景操作的输入。
定义 controller.cpp:159
对 GLSL Shader 的简单封装。
定义 shader.hpp:24
std::variant< std::monostate, Object *, const Halfedge *, Vertex *, Edge *, Face *, Light * > SelectableType
场景中可被选择的元素类型。
定义 selection_helper.h:38
WorkingMode
定义 rendering.hpp:46
半边网格中的边。
定义 halfedge.h:118
半边网格中的面片。
定义 halfedge.h:151
在预览场景时绘制若干线条。
定义 gl.hpp:334
用于场景预览渲染的 Mesh 类。
定义 gl.hpp:268
半边网格中最关键的几何元素。
定义 halfedge.h:46
辅助调试的 GUI 选项。
定义 menubar.h:21
半边网格中的顶点。
定义 halfedge.h:86