Dandelion 1.1.1
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
GL::LineSet结构体 参考

在预览场景时绘制若干线条。 更多...

#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,可用于绘制射线、 半边等线条元素。

构造及析构函数说明

◆ LineSet()

GL::LineSet::LineSet ( const LineSet & other)
delete

由于 VAO 和 ArrayBuffer 不允许复制构造,LineSet 也不允许复制构造。

成员函数说明

◆ add_AABB()

void LineSet::add_AABB ( const Eigen::Vector3f & p_min,
const Eigen::Vector3f & p_max )

加入一个轴对齐包围盒 (Axis-Aligned Bouding Box, AABB) 。

◆ add_arrow()

void LineSet::add_arrow ( const Eigen::Vector3f & from,
const Eigen::Vector3f & to )

加入一个从 from 到 to 的箭头。

◆ add_line_segment()

void LineSet::add_line_segment ( const Eigen::Vector3f & a,
const Eigen::Vector3f & b )

加入一条从 a 到 b 的线段。

◆ clear()

void LineSet::clear ( )

清空所有元素,但只影响内存,不会同步到显存。

◆ render()

void LineSet::render ( const Shader & shader)

渲染该线条集。

这个函数只会设置对应全局颜色的 uniform 变量,其他所有变量都需要由调用者自行设置。

◆ to_gpu()

void LineSet::to_gpu ( )

将修改同步到显存。

◆ update_arrow()

void LineSet::update_arrow ( size_t index,
const Eigen::Vector3f & from,
const Eigen::Vector3f & to )

更新索引为 index 的箭头,仅当该 LineSet 内全部是箭头时才是安全的。

类成员变量说明

◆ line_color

Eigen::Vector3f GL::LineSet::line_color

绘制的线条颜色。


该结构体的文档由以下文件生成: