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
11
template
<
class
... Ts>
12
struct
overloaded
: Ts...
13
{
14
using
Ts::operator()...;
15
};
16
template
<
class
... Ts>
17
overloaded
(Ts...) ->
overloaded
<Ts...>;
18
19
class
Object
;
20
struct
Halfedge
;
21
struct
Vertex
;
22
struct
Edge
;
23
struct
Face
;
24
struct
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
*/
38
using
SelectableType
=
39
std::variant<std::monostate, Object*, const Halfedge*, Vertex*, Edge*, Face*, Light*>;
40
41
#endif
// DANDELION_UI_SELECTION_HELPER_H
Object
表示物体的类。
定义
object.h:40
SelectableType
std::variant< std::monostate, Object *, const Halfedge *, Vertex *, Edge *, Face *, Light * > SelectableType
场景中可被选择的元素类型。
定义
selection_helper.h:38
Edge
半边网格中的边。
定义
halfedge.h:117
Face
半边网格中的面片。
定义
halfedge.h:150
Halfedge
半边网格中最关键的几何元素。
定义
halfedge.h:46
Light
一个点光源。
定义
light.h:17
Vertex
半边网格中的顶点。
定义
halfedge.h:85
overloaded
定义
halfedge_mesh.cpp:36
src
ui
selection_helper.h
制作者
1.13.1