1#ifndef DANDELION_UI_CONTROLLER_H
2#define DANDELION_UI_CONTROLLER_H
11#include <spdlog/spdlog.h>
void select_object(Object *object)
定义 controller.cpp:457
void select_light(Light *light)
定义 controller.cpp:508
void select_halfedge(const Halfedge *halfedge)
定义 controller.cpp:463
void on_rotating(bool initial)
将鼠标拖动转换为轨迹球 (Trackball) 操作,用于旋转预览视角。
定义 controller.cpp:521
void render_debug_helpers(const Shader &shader)
渲染帮助调试的元素。
定义 controller.cpp:353
std::unique_ptr< UI::Toolbar > toolbar
定义 controller.h:226
void on_framebuffer_resized(float width, float height)
在缩放窗口时调整轨迹球半径、预览视角(相机)Y 方向的 FoV,并更新自身记录的窗口尺寸。
定义 controller.cpp:149
void on_wheel_scrolled()
将拨动鼠标滚轮的操作转换为视角拉进或远离。
定义 controller.cpp:139
void select_vertex(Vertex *vertex)
定义 controller.cpp:471
std::unique_ptr< Camera > main_camera
定义 controller.h:239
void on_translating(bool initial)
将鼠标拖动转换为视角平移。
定义 controller.cpp:575
WorkingMode mode
全局工作模式。
定义 controller.h:220
void render_selected_element(const Shader &shader)
渲染当前选中的元素。
定义 controller.cpp:297
std::shared_ptr< spdlog::logger > logger
定义 controller.h:241
void select_face(Face *face)
定义 controller.cpp:491
void pick_element(Ray &ray)
拾取半边、顶点、边或面片。
定义 controller.cpp:396
static constexpr float mouse_translation_factor
定义 controller.h:211
static Controller & controller()
获取 Controller 类的唯一实例。
定义 controller.cpp:35
void unselect()
取消选择。
定义 controller.cpp:268
SelectableType selected_element
当前被选中的元素。
定义 controller.h:237
static constexpr float wheel_scroll_factor
定义 controller.h:209
void render(const Shader &shader)
定义 controller.cpp:237
Controller()
定义 controller.cpp:41
GL::LineSet picking_ray
定义 controller.h:249
UI::DebugOptions debug_options
定义 controller.h:222
void on_mouse_dragged(bool initial)
将鼠标拖动转换为旋转视角或平移视角操作。
定义 controller.cpp:98
GL::Mesh highlighted_element
定义 controller.h:245
void on_picking()
根据鼠标点击选取场景中的物体。
定义 controller.cpp:112
std::unique_ptr< Scene > scene
定义 controller.h:228
float window_width
定义 controller.h:117
Controller(Controller &other)=delete
GL::LineSet highlighted_halfedge
定义 controller.h:247
void select(SelectableType element)
选择一个元素。
定义 controller.cpp:255
float trackball_radius
定义 controller.h:243
void pick_object(Ray &ray)
拾取物体。
定义 controller.cpp:369
void select_edge(Edge *edge)
定义 controller.cpp:479
std::unique_ptr< UI::Menubar > menubar
定义 controller.h:224
void process_input()
处理关于场景操作的输入。
定义 controller.cpp:157
对 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:117
半边网格中的面片。
定义 halfedge.h:150
在预览场景时绘制若干线条。
定义 gl.hpp:270
用于场景预览渲染的 Mesh 类。
定义 gl.hpp:220
半边网格中最关键的几何元素。
定义 halfedge.h:46
辅助调试的 GUI 选项。
定义 menubar.h:21
半边网格中的顶点。
定义 halfedge.h:85