8#ifndef IGL_OPENGL_MESHGL_H
9#define IGL_OPENGL_MESHGL_H
12#include "../igl_inline.h"
92 typedef Eigen::Matrix<float,Eigen::Dynamic,Eigen::Dynamic,Eigen::RowMajor>
RowMatrixXf;
129 Eigen::Matrix<char,Eigen::Dynamic,1>
tex;
131 Eigen::Matrix<unsigned, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
F_vbo;
132 Eigen::Matrix<unsigned, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
lines_F_vbo;
133 Eigen::Matrix<unsigned, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
points_F_vbo;
184#ifndef IGL_STATIC_LIBRARY
185# include "MeshGL.cpp"
Coverts mesh data inside a igl::ViewerData class in an OpenGL compatible format The class includes a ...
Definition MeshGL.h:24
unsigned int GLuint
Definition MeshGL.h:26
void draw_mesh(bool solid)
Draw the currently buffered mesh (either solid or wireframe)
GLuint vbo_tex
Texture.
Definition MeshGL.h:76
RowMatrixXf V_normals_vbo
Definition MeshGL.h:94
void draw_overlay_lines()
Draw the currently buffered line overlay.
GLuint vbo_lines_F
Indices of the line overlay.
Definition MeshGL.h:79
TextGL vertex_labels
Definition MeshGL.h:120
Eigen::Matrix< unsigned, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > F_vbo
Definition MeshGL.h:131
GLuint vbo_V_uv
UV coordinates for the current mesh (#V x 2)
Definition MeshGL.h:63
void bind_overlay_lines()
Bind the underlying OpenGL buffer objects for subsequent line overlay draw calls.
RowMatrixXf lines_V_colors_vbo
Definition MeshGL.h:100
GLuint vbo_V_normals
Vertices of the current mesh (#V x 3)
Definition MeshGL.h:65
uint32_t dirty
Marks dirty buffers that need to be uploaded to OpenGL.
Definition MeshGL.h:136
void init_text_rendering()
Text Binding and Draw functions.
Eigen::Matrix< char, Eigen::Dynamic, 1 > tex
Definition MeshGL.h:129
RowMatrixXf V_uv_vbo
Definition MeshGL.h:98
RowMatrixXf V_diffuse_vbo
Definition MeshGL.h:96
GLuint vbo_points_V_colors
Color values of the point overlay.
Definition MeshGL.h:89
void bind_overlay_points()
Bind the underlying OpenGL buffer objects for subsequent point overlay draw calls.
int tex_v
Definition MeshGL.h:126
GLuint vao_mesh
Definition MeshGL.h:52
GLuint vao_overlay_points
Definition MeshGL.h:54
GLuint vbo_V
Vertices of the current mesh (#V x 3)
Definition MeshGL.h:61
GLuint vbo_lines_V_colors
Color values of the line overlay.
Definition MeshGL.h:83
Eigen::Matrix< unsigned, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > lines_F_vbo
Definition MeshGL.h:132
void init_buffers()
Create a new set of OpenGL buffer objects.
void init()
Initialize shaders and buffers.
GLuint shader_overlay_points
Definition MeshGL.h:57
GLuint vbo_lines_V
Vertices of the line overlay.
Definition MeshGL.h:81
GLuint font_atlas
Definition MeshGL.h:123
void draw_labels(const TextGL &labels)
Draw the currently buffered text.
RowMatrixXf V_ambient_vbo
Definition MeshGL.h:95
GLuint vbo_V_specular
Specular material (#V x 3)
Definition MeshGL.h:71
DirtyFlags
Bitmask flags for keeping track of what needs to be (re)-uploaded to the GPU.
Definition MeshGL.h:32
@ DIRTY_FACE
Definition MeshGL.h:41
@ DIRTY_NORMAL
Definition MeshGL.h:36
@ DIRTY_UV
Definition MeshGL.h:35
@ DIRTY_POSITION
Definition MeshGL.h:34
@ DIRTY_ALL
Definition MeshGL.h:48
@ DIRTY_SPECULAR
Definition MeshGL.h:39
@ DIRTY_MESH
Definition MeshGL.h:42
@ DIRTY_AMBIENT
Definition MeshGL.h:37
@ DIRTY_NONE
Definition MeshGL.h:33
@ DIRTY_FACE_LABELS
Definition MeshGL.h:46
@ DIRTY_TEXTURE
Definition MeshGL.h:40
@ DIRTY_OVERLAY_LINES
Definition MeshGL.h:43
@ DIRTY_VERTEX_LABELS
Definition MeshGL.h:45
@ DIRTY_DIFFUSE
Definition MeshGL.h:38
@ DIRTY_CUSTOM_LABELS
Definition MeshGL.h:47
@ DIRTY_OVERLAY_POINTS
Definition MeshGL.h:44
Eigen::Matrix< unsigned, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > points_F_vbo
Definition MeshGL.h:133
RowMatrixXf points_V_vbo
Definition MeshGL.h:101
GLuint shader_overlay_lines
Definition MeshGL.h:56
RowMatrixXf lines_V_vbo
Definition MeshGL.h:99
GLuint vbo_F
Faces of the mesh (#F x 3)
Definition MeshGL.h:74
void draw_overlay_points()
Draw the currently buffered point overlay.
void free_buffers()
Release the OpenGL buffer objects.
TextGL custom_labels
Definition MeshGL.h:122
void bind_labels(const TextGL &labels)
Bind the underlying OpenGL buffer objects for subsequent text draw calls.
RowMatrixXf V_vbo
Definition MeshGL.h:93
GLuint vbo_V_ambient
Ambient material (#V x 3)
Definition MeshGL.h:67
TextGL face_labels
Definition MeshGL.h:121
GLint tex_filter
Definition MeshGL.h:127
GLuint vbo_points_V
Vertices of the point overlay.
Definition MeshGL.h:87
GLuint vao_overlay_lines
Definition MeshGL.h:53
GLuint vbo_V_diffuse
Diffuse material (#V x 3)
Definition MeshGL.h:69
GLuint vbo_points_F
Indices of the point overlay.
Definition MeshGL.h:85
GLuint shader_text
Definition MeshGL.h:58
Eigen::Matrix< float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > RowMatrixXf
Definition MeshGL.h:92
void bind_mesh()
Bind the underlying OpenGL buffer objects for subsequent mesh draw calls.
void free()
Release all resources.
bool is_initialized
Definition MeshGL.h:51
GLuint shader_mesh
Definition MeshGL.h:55
RowMatrixXf V_specular_vbo
Definition MeshGL.h:97
int tex_u
Definition MeshGL.h:125
GLint tex_wrap
Definition MeshGL.h:128
RowMatrixXf points_V_colors_vbo
Definition MeshGL.h:102
unsigned int GLint
Definition MeshGL.h:27
#define IGL_INLINE
Definition igl_inline.h:15
Eigen::Matrix< unsigned, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > label_indices_vbo
Definition MeshGL.h:116
RowMatrixXf label_pos_vbo
Definition MeshGL.h:113
GLuint vao_labels
Definition MeshGL.h:108
GLuint vbo_labels_pos
Definition MeshGL.h:109
GLuint vbo_labels_indices
Definition MeshGL.h:112
GLuint vbo_labels_characters
Definition MeshGL.h:110
RowMatrixXf label_char_vbo
Definition MeshGL.h:114
GLuint vbo_labels_offset
Definition MeshGL.h:111
RowMatrixXf label_offset_vbo
Definition MeshGL.h:115
uint32_t dirty_flag
Definition MeshGL.h:107