Dandelion 1.1.1
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
selection_helper.h
浏览该文件的文档.
1#ifndef DANDELION_UI_SELECTION_HELPER_H
2#define DANDELION_UI_SELECTION_HELPER_H
3
4#include <variant>
5
6/*!
7 * \file ui/selection_helper.h
8 * \ingroup ui
9 */
10
11template<class... Ts>
12struct overloaded : Ts...
13{
14 using Ts::operator()...;
15};
16template<class... Ts>
17overloaded(Ts...) -> overloaded<Ts...>;
18
19class Object;
20struct Halfedge;
21struct Vertex;
22struct Edge;
23struct Face;
24struct Light;
25
26/*!
27 * \ingroup ui
28 * \~chinese
29 * \brief 场景中可被选择的元素类型。
30 *
31 * 此类型包含所有选中元素的指针类型以及额外的 `std::monostate` 类型。
32 * 这些类型可分为三类:
33 *
34 * - `std::monostate` 表示选中元素为空(没有选中任何元素)
35 * - 指向 `const` 对象的指针表示该类型可选中但不可通过 GUI 修改
36 * - 一般指针表示该类型可选中且可通过 GUI 修改
37 */
39 std::variant<std::monostate, Object*, const Halfedge*, Vertex*, Edge*, Face*, Light*>;
40
41#endif // DANDELION_UI_SELECTION_HELPER_H
表示物体的类。
定义 object.h:40
std::variant< std::monostate, Object *, const Halfedge *, Vertex *, Edge *, Face *, Light * > SelectableType
场景中可被选择的元素类型。
定义 selection_helper.h:38
半边网格中的边。
定义 halfedge.h:117
半边网格中的面片。
定义 halfedge.h:150
半边网格中最关键的几何元素。
定义 halfedge.h:46
一个点光源。
定义 light.h:17
半边网格中的顶点。
定义 halfedge.h:85
定义 halfedge_mesh.cpp:36