|
libigl v2.5.0
|
Object being drawn (i.e., mesh and its accessories) by the ViewerCore. More...
#include <ViewerData.h>
Public Member Functions | |
| ViewerData () | |
| void | clear () |
| Empty all fields. | |
| void | set_face_based (bool newvalue) |
| Change whether drawing per-vertex or per-face; invalidating cache if necessary. | |
| void | set_mesh (const Eigen::MatrixXd &V, const Eigen::MatrixXi &F) |
| Set the current mesh. | |
| void | set_vertices (const Eigen::MatrixXd &V) |
| Set just the vertices. | |
| void | set_normals (const Eigen::MatrixXd &N) |
| Set the normals of a mesh. | |
| void | set_visible (bool value, unsigned int core_id=1) |
| Set whether this object is visible. | |
| void | set_colors (const Eigen::MatrixXd &C) |
| Set the diffuse color of the mesh. | |
| void | set_uv (const Eigen::MatrixXd &UV) |
| Set per-vertex UV coordinates. | |
| void | set_uv (const Eigen::MatrixXd &UV_V, const Eigen::MatrixXi &UV_F) |
| Set per-corner UV coordinates. | |
| void | set_texture (const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &R, const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &G, const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &B, const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &A) |
| Set the texture associated with the mesh. | |
| void | set_texture (const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &R, const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &G, const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &B) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| void | set_data (const Eigen::VectorXd &D, double caxis_min, double caxis_max, igl::ColorMapType cmap=igl::COLOR_MAP_TYPE_VIRIDIS, int num_steps=21) |
| Set pseudo-color-able scalar data associated with the mesh. | |
| void | set_data (const Eigen::VectorXd &D, igl::ColorMapType cmap=igl::COLOR_MAP_TYPE_VIRIDIS, int num_steps=21) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| void | set_colormap (const Eigen::MatrixXd &CM) |
| Not to be confused with set_colors, this creates a texture that will be referenced to pseudocolor according to the scalar field passed to set_data. | |
| void | set_points (const Eigen::MatrixXd &P, const Eigen::MatrixXd &C) |
| Sets points given a list of point vertices. | |
| void | add_points (const Eigen::MatrixXd &P, const Eigen::MatrixXd &C) |
| Add points given a list of point vertices. | |
| void | clear_points () |
| Clear the point data. | |
| void | set_edges (const Eigen::MatrixXd &P, const Eigen::MatrixXi &E, const Eigen::MatrixXd &C) |
| Sets edges given a list of edge vertices and edge indices. | |
| void | add_edges (const Eigen::MatrixXd &P1, const Eigen::MatrixXd &P2, const Eigen::MatrixXd &C) |
| Add edges given a list of edge start and end positions and colors. | |
| void | set_edges_from_vector_field (const Eigen::MatrixXd &P, const Eigen::MatrixXd &V, const Eigen::MatrixXd &C) |
| Sets edges given a list of points and eminating vectors. | |
| void | clear_edges () |
| Clear the edge data. | |
| void | set_labels (const Eigen::MatrixXd &P, const std::vector< std::string > &str) |
| Sets / Adds text labels at the given positions in 3D. | |
| void | add_label (const Eigen::VectorXd &P, const std::string &str) |
| Sets / Adds text labels at the given positions in 3D. | |
| void | clear_labels () |
| Clear the label data. | |
| void | compute_normals () |
| Computes the normals of the mesh. | |
| void | uniform_colors (const Eigen::Vector3d &ambient, const Eigen::Vector3d &diffuse, const Eigen::Vector3d &specular) |
| Assigns uniform colors to all faces/vertices. | |
| void | uniform_colors (const Eigen::Vector4d &ambient, const Eigen::Vector4d &diffuse, const Eigen::Vector4d &specular) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| void | normal_matcap () |
| Generate a normal image matcap. | |
| void | grid_texture () |
| Generates a default grid texture (without uvs) | |
| void | copy_options (const ViewerCore &from, const ViewerCore &to) |
| Copy visualization options from one viewport to another. | |
| void | update_labels (igl::opengl::MeshGL::TextGL &GL_labels, const Eigen::MatrixXd &positions, const std::vector< std::string > &strings) |
| Update contents from a 'Data' instance. | |
| void | updateGL (const igl::opengl::ViewerData &data, const bool invert_normals, igl::opengl::MeshGL &meshgl) |
| Update the meshgl object. | |
Public Attributes | |
| Eigen::MatrixXd | V |
| Vertices of the current mesh (V x 3) | |
| Eigen::MatrixXi | F |
| Faces of the mesh (F x 3) | |
| Eigen::MatrixXd | F_normals |
| One normal per face. | |
| Eigen::MatrixXd | F_material_ambient |
| Per face ambient color. | |
| Eigen::MatrixXd | F_material_diffuse |
| Per face diffuse color. | |
| Eigen::MatrixXd | F_material_specular |
| Per face specular color. | |
| Eigen::MatrixXd | V_normals |
| One normal per vertex. | |
| Eigen::MatrixXd | V_material_ambient |
| Per vertex ambient color. | |
| Eigen::MatrixXd | V_material_diffuse |
| Per vertex diffuse color. | |
| Eigen::MatrixXd | V_material_specular |
| Per vertex specular color. | |
| Eigen::MatrixXd | V_uv |
| UV vertices. | |
| Eigen::MatrixXi | F_uv |
| optional faces for UVs | |
| Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > | texture_R |
| Texture red colors. | |
| Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > | texture_G |
| Texture green colors. | |
| Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > | texture_B |
| Texture blue colors. | |
| Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > | texture_A |
| Texture alpha values. | |
| Eigen::MatrixXd | lines |
| Lines plotted over the scene (Every row contains 9 doubles in the following format S_x, S_y, S_z, T_x, T_y, T_z, C_r, C_g, C_b),. | |
| Eigen::MatrixXd | points |
| Points plotted over the scene (Every row contains 6 doubles in the following format P_x, P_y, P_z, C_r, C_g, C_b), with P the position in global coordinates of the center of the point, and C the color in floating point rgb format. | |
| Eigen::MatrixXd | vertex_labels_positions |
| Text positions of vertices. | |
| Eigen::MatrixXd | face_labels_positions |
| Text positions of faces. | |
| Eigen::MatrixXd | labels_positions |
| Text positions of labels. | |
| std::vector< std::string > | vertex_labels_strings |
| Text strings of labels at vertices. | |
| std::vector< std::string > | face_labels_strings |
| Text strings of labels at faces. | |
| std::vector< std::string > | labels_strings |
| Text strings of labels. | |
| uint32_t | dirty |
| Marks dirty buffers that need to be uploaded to OpenGL. | |
| bool | face_based |
| Enable per-face or per-vertex properties. | |
| bool | double_sided |
| Enable double-sided lighting on faces. | |
| bool | invert_normals |
| Invert mesh normals. | |
| unsigned int | is_visible |
| Visualization options Each option is a binary mask specifying on which viewport each option is set. | |
| unsigned int | show_custom_labels |
| unsigned int | show_face_labels |
| unsigned int | show_faces |
| unsigned int | show_lines |
| unsigned int | show_overlay |
| unsigned int | show_overlay_depth |
| unsigned int | show_texture |
| unsigned int | show_vertex_labels |
| unsigned int | use_matcap |
| float | point_size |
| Point size / line width. | |
| float | line_width |
| line_width is NOT SUPPORTED on Mac OS and Windows | |
| float | label_size |
| Size of lables. | |
| Eigen::Matrix< float, 4, 1, Eigen::DontAlign > | line_color |
| Color of lines. | |
| Eigen::Matrix< float, 4, 1, Eigen::DontAlign > | label_color |
| Color of labels. | |
| float | shininess |
| Shape material shininess. | |
| int | id |
| Unique identifier. | |
| igl::opengl::MeshGL | meshgl |
| OpenGL representation of the mesh. | |
Object being drawn (i.e., mesh and its accessories) by the ViewerCore.
Eigen::Matrix<float, 4, 1, Eigen::DontAlign>), in order to avoid alignment issues further down the line (esp. if the structure are stored in a std::vector).See this thread for a more detailed discussion: https://github.com/libigl/libigl/pull/1029
| igl::opengl::ViewerData::ViewerData | ( | ) |
| void igl::opengl::ViewerData::clear | ( | ) |
Empty all fields.
| void igl::opengl::ViewerData::set_face_based | ( | bool | newvalue | ) |
Change whether drawing per-vertex or per-face; invalidating cache if necessary.
| [in] | newvalue | whether face based |
| void igl::opengl::ViewerData::set_mesh | ( | const Eigen::MatrixXd & | V, |
| const Eigen::MatrixXi & | F | ||
| ) |
| void igl::opengl::ViewerData::set_vertices | ( | const Eigen::MatrixXd & | V | ) |
Set just the vertices.
Call this if just the vertices are changing. You may need to call compute_normals to update the lighting correctly.
| [in] | V | V by 3 list of mesh vertex positions |
| void igl::opengl::ViewerData::set_normals | ( | const Eigen::MatrixXd & | N | ) |
| void igl::opengl::ViewerData::set_visible | ( | bool | value, |
| unsigned int | core_id = 1 |
||
| ) |
Set whether this object is visible.
| [in] | value | true iff this object is visible |
| [in] | core_id | Index of the core to set (default is 0) |
| void igl::opengl::ViewerData::set_colors | ( | const Eigen::MatrixXd & | C | ) |
| void igl::opengl::ViewerData::set_uv | ( | const Eigen::MatrixXd & | UV | ) |
Set per-vertex UV coordinates.
| [in] | UV | V by 2 list of UV coordinates (indexed by F) |
| void igl::opengl::ViewerData::set_uv | ( | const Eigen::MatrixXd & | UV_V, |
| const Eigen::MatrixXi & | UV_F | ||
| ) |
Set per-corner UV coordinates.
| [in] | UV_V | #UV by 2 list of UV coordinates |
| [in] | UV_F | F by 3 list of UV indices into UV_V |
| void igl::opengl::ViewerData::set_texture | ( | const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | R, |
| const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | G, | ||
| const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | B, | ||
| const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | A | ||
| ) |
Set the texture associated with the mesh.
| [in] | R | width by height image matrix of red channel |
| [in] | G | width by height image matrix of green channel |
| [in] | B | width by height image matrix of blue channel |
| [in] | A | width by height image matrix of alpha channel |
| void igl::opengl::ViewerData::set_texture | ( | const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | R, |
| const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | G, | ||
| const Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | B | ||
| ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| void igl::opengl::ViewerData::set_data | ( | const Eigen::VectorXd & | D, |
| double | caxis_min, | ||
| double | caxis_max, | ||
| igl::ColorMapType | cmap = igl::COLOR_MAP_TYPE_VIRIDIS, |
||
| int | num_steps = 21 |
||
| ) |
| void igl::opengl::ViewerData::set_data | ( | const Eigen::VectorXd & | D, |
| igl::ColorMapType | cmap = igl::COLOR_MAP_TYPE_VIRIDIS, |
||
| int | num_steps = 21 |
||
| ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Use min(D) and max(D) to set caxis.
| void igl::opengl::ViewerData::set_colormap | ( | const Eigen::MatrixXd & | CM | ) |
Not to be confused with set_colors, this creates a texture that will be referenced to pseudocolor according to the scalar field passed to set_data.
| [in] | CM | #CM by 3 list of colors |
| void igl::opengl::ViewerData::set_points | ( | const Eigen::MatrixXd & | P, |
| const Eigen::MatrixXd & | C | ||
| ) |
Sets points given a list of point vertices.
In constrast to add_points this will (purposefully) clober existing points.
| [in] | P | #P by 3 list of vertex positions |
| [in] | C | #P|1 by 3 color(s) |
| void igl::opengl::ViewerData::add_points | ( | const Eigen::MatrixXd & | P, |
| const Eigen::MatrixXd & | C | ||
| ) |
Add points given a list of point vertices.
| [in] | P | #P by 3 list of vertex positions |
| [in] | C | #P|1 by 3 color(s) |
| void igl::opengl::ViewerData::clear_points | ( | ) |
Clear the point data.
| void igl::opengl::ViewerData::set_edges | ( | const Eigen::MatrixXd & | P, |
| const Eigen::MatrixXi & | E, | ||
| const Eigen::MatrixXd & | C | ||
| ) |
Sets edges given a list of edge vertices and edge indices.
In constrast to add_edges this will (purposefully) clober existing edges.
| [in] | P | #P by 3 list of vertex positions |
| [in] | E | #E by 2 list of edge indices into P |
| [in] | C | #E|1 by 3 color(s) |
| void igl::opengl::ViewerData::add_edges | ( | const Eigen::MatrixXd & | P1, |
| const Eigen::MatrixXd & | P2, | ||
| const Eigen::MatrixXd & | C | ||
| ) |
Add edges given a list of edge start and end positions and colors.
| [in] | P1 | #P by 3 list of edge start positions |
| [in] | P2 | #P by 3 list of edge end positions |
| [in] | C | #P|1 by 3 color(s) |
| void igl::opengl::ViewerData::set_edges_from_vector_field | ( | const Eigen::MatrixXd & | P, |
| const Eigen::MatrixXd & | V, | ||
| const Eigen::MatrixXd & | C | ||
| ) |
Sets edges given a list of points and eminating vectors.
| [in] | P | #P by 3 list of vertex positions |
| [in] | V | #P by 3 list of eminating vectors |
| [in] | C | #P|1 by 3 color(s) |
| void igl::opengl::ViewerData::clear_edges | ( | ) |
Clear the edge data.
| void igl::opengl::ViewerData::set_labels | ( | const Eigen::MatrixXd & | P, |
| const std::vector< std::string > & | str | ||
| ) |
Sets / Adds text labels at the given positions in 3D.
| [in] | P | #P by 3 list of vertex positions |
| [in] | str | #P list of text labels |
| void igl::opengl::ViewerData::add_label | ( | const Eigen::VectorXd & | P, |
| const std::string & | str | ||
| ) |
Sets / Adds text labels at the given positions in 3D.
| [in] | P | 3D position of the label |
| [in] | str | text label |
| void igl::opengl::ViewerData::clear_labels | ( | ) |
Clear the label data.
| void igl::opengl::ViewerData::compute_normals | ( | ) |
Computes the normals of the mesh.
| void igl::opengl::ViewerData::uniform_colors | ( | const Eigen::Vector3d & | ambient, |
| const Eigen::Vector3d & | diffuse, | ||
| const Eigen::Vector3d & | specular | ||
| ) |
Assigns uniform colors to all faces/vertices.
| [in] | ambient | ambient color |
| [in] | diffuse | diffuse color |
| [in] | specular | specular color |
| void igl::opengl::ViewerData::uniform_colors | ( | const Eigen::Vector4d & | ambient, |
| const Eigen::Vector4d & | diffuse, | ||
| const Eigen::Vector4d & | specular | ||
| ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| void igl::opengl::ViewerData::normal_matcap | ( | ) |
Generate a normal image matcap.
| void igl::opengl::ViewerData::grid_texture | ( | ) |
Generates a default grid texture (without uvs)
| void igl::opengl::ViewerData::copy_options | ( | const ViewerCore & | from, |
| const ViewerCore & | to | ||
| ) |
Copy visualization options from one viewport to another.
| [in] | from | source viewport |
| [in] | to | destination viewport |
| void igl::opengl::ViewerData::update_labels | ( | igl::opengl::MeshGL::TextGL & | GL_labels, |
| const Eigen::MatrixXd & | positions, | ||
| const std::vector< std::string > & | strings | ||
| ) |
Update contents from a 'Data' instance.
| [in,out] | GL_labels | labels to be updated |
| [in] | positions | positions of the labels |
| [in] | strings | strings of the labels |
| void igl::opengl::ViewerData::updateGL | ( | const igl::opengl::ViewerData & | data, |
| const bool | invert_normals, | ||
| igl::opengl::MeshGL & | meshgl | ||
| ) |
Update the meshgl object.
| [in] | data | data to be used for the update |
| [in] | invert_normals | whether to invert normals |
| [in,out] | meshgl | mesh to be updated |
| Eigen::MatrixXd igl::opengl::ViewerData::V |
Vertices of the current mesh (V x 3)
| Eigen::MatrixXi igl::opengl::ViewerData::F |
Faces of the mesh (F x 3)
| Eigen::MatrixXd igl::opengl::ViewerData::F_normals |
One normal per face.
| Eigen::MatrixXd igl::opengl::ViewerData::F_material_ambient |
Per face ambient color.
| Eigen::MatrixXd igl::opengl::ViewerData::F_material_diffuse |
Per face diffuse color.
| Eigen::MatrixXd igl::opengl::ViewerData::F_material_specular |
Per face specular color.
| Eigen::MatrixXd igl::opengl::ViewerData::V_normals |
One normal per vertex.
| Eigen::MatrixXd igl::opengl::ViewerData::V_material_ambient |
Per vertex ambient color.
| Eigen::MatrixXd igl::opengl::ViewerData::V_material_diffuse |
Per vertex diffuse color.
| Eigen::MatrixXd igl::opengl::ViewerData::V_material_specular |
Per vertex specular color.
| Eigen::MatrixXd igl::opengl::ViewerData::V_uv |
UV vertices.
| Eigen::MatrixXi igl::opengl::ViewerData::F_uv |
optional faces for UVs
| Eigen::Matrix<unsigned char,Eigen::Dynamic,Eigen::Dynamic> igl::opengl::ViewerData::texture_R |
Texture red colors.
| Eigen::Matrix<unsigned char,Eigen::Dynamic,Eigen::Dynamic> igl::opengl::ViewerData::texture_G |
Texture green colors.
| Eigen::Matrix<unsigned char,Eigen::Dynamic,Eigen::Dynamic> igl::opengl::ViewerData::texture_B |
Texture blue colors.
| Eigen::Matrix<unsigned char,Eigen::Dynamic,Eigen::Dynamic> igl::opengl::ViewerData::texture_A |
Texture alpha values.
| Eigen::MatrixXd igl::opengl::ViewerData::lines |
Lines plotted over the scene (Every row contains 9 doubles in the following format S_x, S_y, S_z, T_x, T_y, T_z, C_r, C_g, C_b),.
| Eigen::MatrixXd igl::opengl::ViewerData::points |
Points plotted over the scene (Every row contains 6 doubles in the following format P_x, P_y, P_z, C_r, C_g, C_b), with P the position in global coordinates of the center of the point, and C the color in floating point rgb format.
| Eigen::MatrixXd igl::opengl::ViewerData::vertex_labels_positions |
Text positions of vertices.
| Eigen::MatrixXd igl::opengl::ViewerData::face_labels_positions |
Text positions of faces.
| Eigen::MatrixXd igl::opengl::ViewerData::labels_positions |
Text positions of labels.
| std::vector<std::string> igl::opengl::ViewerData::vertex_labels_strings |
Text strings of labels at vertices.
| std::vector<std::string> igl::opengl::ViewerData::face_labels_strings |
Text strings of labels at faces.
| std::vector<std::string> igl::opengl::ViewerData::labels_strings |
Text strings of labels.
| uint32_t igl::opengl::ViewerData::dirty |
Marks dirty buffers that need to be uploaded to OpenGL.
| bool igl::opengl::ViewerData::face_based |
Enable per-face or per-vertex properties.
| bool igl::opengl::ViewerData::double_sided |
Enable double-sided lighting on faces.
| bool igl::opengl::ViewerData::invert_normals |
Invert mesh normals.
| unsigned int igl::opengl::ViewerData::is_visible |
Visualization options Each option is a binary mask specifying on which viewport each option is set.
When using a single viewport, standard boolean can still be used for simplicity.
| unsigned int igl::opengl::ViewerData::show_custom_labels |
| unsigned int igl::opengl::ViewerData::show_face_labels |
| unsigned int igl::opengl::ViewerData::show_faces |
| unsigned int igl::opengl::ViewerData::show_lines |
| unsigned int igl::opengl::ViewerData::show_overlay |
| unsigned int igl::opengl::ViewerData::show_overlay_depth |
| unsigned int igl::opengl::ViewerData::show_texture |
| unsigned int igl::opengl::ViewerData::show_vertex_labels |
| unsigned int igl::opengl::ViewerData::use_matcap |
| float igl::opengl::ViewerData::point_size |
Point size / line width.
| float igl::opengl::ViewerData::line_width |
line_width is NOT SUPPORTED on Mac OS and Windows
| float igl::opengl::ViewerData::label_size |
Size of lables.
| Eigen::Matrix<float, 4, 1, Eigen::DontAlign> igl::opengl::ViewerData::line_color |
Color of lines.
| Eigen::Matrix<float, 4, 1, Eigen::DontAlign> igl::opengl::ViewerData::label_color |
Color of labels.
| float igl::opengl::ViewerData::shininess |
Shape material shininess.
| int igl::opengl::ViewerData::id |
Unique identifier.
| igl::opengl::MeshGL igl::opengl::ViewerData::meshgl |
OpenGL representation of the mesh.