Dandelion 1.1.1
A light-weight 3D builder for educational usage
|
在预览场景时绘制若干线条。 更多...
#include <gl.hpp>
Public 成员函数 | |
LineSet (const std::string &name, Eigen::Vector3f color=GL::Mesh::default_wireframe_color) | |
LineSet (const LineSet &other)=delete | |
LineSet (LineSet &&other) | |
void | add_line_segment (const Eigen::Vector3f &a, const Eigen::Vector3f &b) |
void | add_arrow (const Eigen::Vector3f &from, const Eigen::Vector3f &to) |
void | update_arrow (size_t index, const Eigen::Vector3f &from, const Eigen::Vector3f &to) |
void | add_AABB (const Eigen::Vector3f &p_min, const Eigen::Vector3f &p_max) |
void | clear () |
void | to_gpu () |
void | render (const Shader &shader) |
渲染该线条集。 | |
Public 属性 | |
Eigen::Vector3f | line_color |
VertexArrayObject | VAO |
ArrayBuffer< float, 3 > | vertices |
ElementArrayBuffer< 2 > | lines |
std::string | name |
在预览场景时绘制若干线条。
这个类与 GL::Mesh
相似但更简单,只有顶点 VBO 和线条 EBO,可用于绘制射线、 半边等线条元素。
|
delete |
由于 VAO 和 ArrayBuffer 不允许复制构造,LineSet 也不允许复制构造。
void LineSet::add_AABB | ( | const Eigen::Vector3f & | p_min, |
const Eigen::Vector3f & | p_max ) |
加入一个轴对齐包围盒 (Axis-Aligned Bouding Box, AABB) 。
void LineSet::add_arrow | ( | const Eigen::Vector3f & | from, |
const Eigen::Vector3f & | to ) |
加入一个从 from 到 to 的箭头。
void LineSet::add_line_segment | ( | const Eigen::Vector3f & | a, |
const Eigen::Vector3f & | b ) |
加入一条从 a 到 b 的线段。
void LineSet::clear | ( | ) |
清空所有元素,但只影响内存,不会同步到显存。
void LineSet::render | ( | const Shader & | shader | ) |
渲染该线条集。
这个函数只会设置对应全局颜色的 uniform 变量,其他所有变量都需要由调用者自行设置。
void LineSet::to_gpu | ( | ) |
将修改同步到显存。
void LineSet::update_arrow | ( | size_t | index, |
const Eigen::Vector3f & | from, | ||
const Eigen::Vector3f & | to ) |
更新索引为 index
的箭头,仅当该 LineSet
内全部是箭头时才是安全的。
Eigen::Vector3f GL::LineSet::line_color |
绘制的线条颜色。