Dandelion 1.1.1
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
rendering.hpp
浏览该文件的文档.
1#ifndef DANDELION_UTILS_RENDERING_HPP
2#define DANDELION_UTILS_RENDERING_HPP
3
4/*!
5 * \ingroup utils
6 * \file utils/rendering.hpp
7 * \~chinese
8 * \brief 这个文件定义了一些和渲染(离线渲染或场景预览)相关的常量、枚举等。
9 */
10
11/*!
12 * \ingroup utils
13 * \~chinese
14 * 将整数形式的颜色转换成浮点数,便于传入 Eigen::Vector3f 的构造函数。
15 */
16#define RGB_COLOR(r, g, b) (float)r / 255.0f, (float)g / 255.0f, (float)b / 255.0f
17
18///@{
19/*!
20 * \ingroup utils
21 * \~chinese
22 * 预览场景时,GLSL shader 中各输入变量的位置。相应的变量定义参考 resources/shaders
23 * 中的 shader 代码。
24 */
25constexpr unsigned int vertex_position_location = 0;
26constexpr unsigned int vertex_color_location = 1;
27constexpr unsigned int vertex_normal_location = 2;
28///@}
29
30/*!
31 * \~chinese
32 * 预览场景时用 OpenGL 绘制的点大小。
33 */
34constexpr float point_size = 8.0f;
35/*!
36 * \~chinese
37 * 预览场景时用 OpenGL 绘制的线宽。
38 */
39constexpr float line_width = 2.0f;
40
41/*!
42 * \~chinese
43 * 预览场景时使用的渲染模式,与 Dandelion 的工作模式一一对应。
44 */
45enum class WorkingMode
46{
47 LAYOUT,
48 MODEL,
49 RENDER,
50 SIMULATE
51};
52
53/*!
54 * \~chinese
55 * \brief 允许拾取物体的模式。
56 *
57 * 这个常量数组指定允许拾取物体(直接在屏幕上点击选取物体)的工作模式,
58 * 当前为布局模式(用于操纵物体)和物理模拟模式(用于修改物理属性)。
59 */
60constexpr WorkingMode picking_enabled_modes[] = {WorkingMode::LAYOUT, WorkingMode::MODEL,
61 WorkingMode::SIMULATE};
62
63/*!
64 * \~chinese
65 * \brief 判断指定模式是否允许拾取物体。
66 *
67 * \param mode 表示当前的工作模式。
68 */
70{
71 for (auto enabled_mode : picking_enabled_modes) {
72 if (mode == enabled_mode) {
73 return true;
74 }
75 }
76 return false;
77}
78
79#endif // DANDELION_UTILS_RENDERING_HPP
constexpr unsigned int vertex_position_location
定义 rendering.hpp:25
bool check_picking_enabled(WorkingMode mode)
判断指定模式是否允许拾取物体。
定义 rendering.hpp:69
WorkingMode
定义 rendering.hpp:46
constexpr WorkingMode picking_enabled_modes[]
允许拾取物体的模式。
定义 rendering.hpp:60
constexpr float line_width
定义 rendering.hpp:39
constexpr float point_size
定义 rendering.hpp:34