![]() |
Dandelion 1.1.2
A light-weight 3D builder for educational usage
|
一些杂项工具。 更多...
文件 | |
文件 | formatter.hpp |
提供对 Eigen 列向量和方阵类型的格式化支持。 | |
文件 | kinetic_state.h |
文件 | linked_list.hpp |
文件 | logger.h |
声明了创建 / 获取 logger 用的工具函数。 | |
文件 | math.hpp |
这个文件提供一些方便使用的数学函数。 | |
文件 | ray.h |
提供生成射线、判定相交的工具函数。 | |
文件 | rendering.hpp |
这个文件定义了一些和渲染(离线渲染或场景预览)相关的常量、枚举等。 | |
文件 | stb_image_wrapper.cpp |
用于包装 stb_image 库的文件。 |
类 | |
class | SpinLock |
自旋锁 更多... | |
class | AABB |
BVH中的Aligned-axis bounding box 更多... | |
struct | BVHNode |
表示的是BVH建立的树中的节点 更多... | |
struct | SortNode |
用于在BVH划分左右子树时作为参与排序的节点 更多... | |
struct | Ray |
struct | Intersection |
表示射线与 Mesh 相交结果的结构体。 更多... |
宏定义 | |
#define | RGB_COLOR(r, g, b) |
函数 | |
template<typename T> | |
T | pi () |
返回 float 或 double 类型的 \(\pi\) 值。 | |
template<typename T> | |
constexpr T | radians (T degrees) |
将角度转换为弧度。 | |
template<typename T> | |
constexpr T | degrees (T radians) |
将弧度转换为角度。 | |
template<typename T> | |
constexpr T | squ (T x) |
求一个数的平方。 | |
template<typename T> | |
constexpr T | clamp (T low, T high, T value) |
将一个数截断在给定的上下界之间 | |
template<typename T> | |
constexpr Eigen::Vector< T, 4 > | to_vec4 (Eigen::Vector< T, 3 > vec3) |
将代表方向的三维向量转换为它的齐次坐标形式。 | |
Eigen::Vector3f | reflect (const Eigen::Vector3f &I, const Eigen::Vector3f &N) |
求向量 \(\mathbf{I}\) 关于向量 \(\mathbf{N}\) 的反射。 | |
template<typename T> | |
constexpr T | sign (T x) |
符号函数,正数的求值结果为 1,负数为 -1,零的求值结果是 0. | |
template<typename T> | |
std::tuple< T, T, T > | quaternion_to_ZYX_euler (T w, T x, T y, T z) |
将旋转的四元数表示形式转换为 ZYX 欧拉角表示形式。 | |
constexpr unsigned int | vertex_position_location = 0 |
constexpr unsigned int | vertex_color_location = 1 |
constexpr unsigned int | vertex_normal_location = 2 |
一些杂项工具。
#define RGB_COLOR | ( | r, | |
g, | |||
b ) |
将整数形式的颜色转换成浮点数,便于传入 Eigen::Vector3f 的构造函数。
|
inline |
将旋转的四元数表示形式转换为 ZYX 欧拉角表示形式。
这个函数采用 ZYX 顺规(即依次绕自身 \(z, y, x\) 轴旋转)。在 Dandelion 的坐标系约定下,ZYX 顺规对应 roll-yaw-pitch 旋转顺序(滚转、航向、俯仰)。
由于欧拉角固有的缺陷,这个函数并不能消除航向角(或称方向角 yaw)在 \(\pm 90^\circ\) 附近时产生的万向锁和抖动问题。
虽然函数的返回值是 tuple,但使用 tuple 接受返回值并不方便,建议用结构化绑定
或 std::tie 来接受返回值。
|
inline |
求向量 \(\mathbf{I}\) 关于向量 \(\mathbf{N}\) 的反射。
I | 表示入射射线的向量(不必是单位向量) |
N | 反射平面的法线(必须是单位向量) |
|
inlineconstexpr |
将代表方向的三维向量转换为它的齐次坐标形式。
该函数在一个 \(3\times 1\)的向量的末尾补 0 ,从而将其转换为 \(4\times 1\)的方向向量。 如欲将三维的点转换为齐次坐标形式,请直接调用 Eigen::Vector 类型的 homogeneous 方法。
|
constexpr |
预览场景时,GLSL shader 中各输入变量的位置。相应的变量定义参考 resources/shaders 中的 shader 代码。
|
constexpr |
预览场景时,GLSL shader 中各输入变量的位置。相应的变量定义参考 resources/shaders 中的 shader 代码。
|
constexpr |
预览场景时,GLSL shader 中各输入变量的位置。相应的变量定义参考 resources/shaders 中的 shader 代码。