| 
    libigl v2.5.0
    
   | 
 
Basic class of the 3D mesh viewer. More...
#include <ViewerCore.h>
Public Types | |
| enum | RotationType { ROTATION_TYPE_TRACKBALL = 0 , ROTATION_TYPE_TWO_AXIS_VALUATOR_FIXED_UP = 1 , ROTATION_TYPE_NO_ROTATION = 2 , NUM_ROTATION_TYPES = 3 } | 
| Type of user interface for changing the view rotation based on the mouse draggin.  More... | |
| using | GLuint = MeshGL::GLuint | 
Public Member Functions | |
| ViewerCore () | |
| void | init () | 
| Initialization.   | |
| void | shut () | 
| Shutdown.   | |
| void | InitSerialization () | 
| Serialization code.   | |
| void | align_camera_center (const Eigen::MatrixXd &V, const Eigen::MatrixXi &F) | 
| Adjust the view to see the entire model.   | |
| void | align_camera_center (const Eigen::MatrixXd &V) | 
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.   | |
| void | get_scale_and_shift_to_fit_mesh (const Eigen::MatrixXd &V, const Eigen::MatrixXi &F, float &zoom, Eigen::Vector3f &shift) | 
| Determines how much to zoom and shift such that the mesh fills the unit box (centered at the origin)   | |
| void | get_scale_and_shift_to_fit_mesh (const Eigen::MatrixXd &V, float &zoom, Eigen::Vector3f &shift) | 
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.   | |
| void | clear_framebuffers () | 
| Clear the frame buffers.   | |
| void | draw (ViewerData &data, bool update_matrices=true) | 
| Draw everything.   | |
| void | initialize_shadow_pass () | 
| initialize shadow pass   | |
| void | deinitialize_shadow_pass () | 
| deinitialize shadow pass   | |
| void | draw_shadow_pass (ViewerData &data, bool update_matrices=true) | 
| Draw everything to shadow map.   | |
| void | draw_buffer (ViewerData &data, bool update_matrices, Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &R, Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &G, Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &B, Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > &A) | 
| Render given ViewerData to a buffer.   | |
| void | draw_labels (ViewerData &data, const igl::opengl::MeshGL::TextGL &labels) | 
| Draw the text lables.   | |
| void | set_rotation_type (const RotationType &value) | 
| Set the current rotation type.   | |
| void | set (unsigned int &property_mask, bool value=true) const | 
| Set a ViewerData visualization option for this viewport.   | |
| void | unset (unsigned int &property_mask) const | 
| Unset a ViewerData visualization option for this viewport.   | |
| void | toggle (unsigned int &property_mask) const | 
| Toggle a ViewerData visualization option for this viewport.   | |
| bool | is_set (unsigned int property_mask) const | 
| Check whether a ViewerData visualization option is set for this viewport.   | |
| void | delete_shadow_buffers () | 
| delete the shadow buffers   | |
| void | generate_shadow_buffers () | 
| generate the shadow buffers   | |
Public Attributes | |
| unsigned int | id = 1u | 
| Unique identifier.   | |
| Eigen::Vector4f | background_color | 
| Background color as RGBA.   | |
| Eigen::Vector3f | light_position | 
| Light position (or direction to light)   | |
| bool | is_directional_light | 
Whether to treat light_position as a point or direction.   | |
| bool | is_shadow_mapping | 
| Whether shadow mapping is on.   | |
| GLuint | shadow_width | 
| Width of the shadow map.   | |
| GLuint | shadow_height | 
| Height of the shadow map.   | |
| GLuint | shadow_depth_tex | 
| Shadow map depth texture.   | |
| GLuint | shadow_depth_fbo | 
| Shadow map depth framebuffer object.   | |
| GLuint | shadow_color_rbo | 
| Shadow map color render buffer object.   | |
| float | lighting_factor | 
| Factor of lighting (0: no lighting, 1: full lighting)   | |
| RotationType | rotation_type | 
| Type of rotation interaction.   | |
| Eigen::Quaternionf | trackball_angle | 
| View rotation as quaternion.   | |
| float | camera_base_zoom | 
| Base zoom of camera.   | |
| float | camera_zoom | 
| Current zoom of camera.   | |
| bool | orthographic | 
| Whether camera is orthographic (or perspective)   | |
| Eigen::Vector3f | camera_base_translation | 
| Base translation of camera.   | |
| Eigen::Vector3f | camera_translation | 
| Current translation of camera.   | |
| Eigen::Vector3f | camera_eye | 
| Current "eye" / origin position of camera.   | |
| Eigen::Vector3f | camera_up | 
| Current "up" vector of camera.   | |
| Eigen::Vector3f | camera_center | 
| Current "look at" position of camera.   | |
| float | camera_view_angle | 
| Current view angle of camera.   | |
| float | camera_dnear | 
| Near plane of camera.   | |
| float | camera_dfar | 
| Far plane of camera.   | |
| bool | depth_test | 
| Whether testing for depth is enabled.   | |
| bool | is_animating | 
| Whether "animating" (continuous drawing) is enabled.   | |
| double | animation_max_fps | 
| Max fps of animation loop (e.g. 30fps or 60fps)   | |
| float | object_scale | 
| Caches the two-norm between the min/max point of the bounding box.   | |
| Eigen::Vector4f | viewport | 
| Viewport size.   | |
| Eigen::Matrix4f | view | 
| OpenGL view transformation matrix on last render pass.   | |
| Eigen::Matrix4f | proj | 
| OpenGL proj transformation matrix on last render pass.   | |
| Eigen::Matrix4f | norm | 
| OpenGL norm transformation matrix on last render pass.   | |
| Eigen::Matrix4f | shadow_view | 
| OpenGL shadow_view transformation matrix on last render pass.   | |
| Eigen::Matrix4f | shadow_proj | 
| OpenGL shadow_proj transformation matrix on last render pass.   | |
Basic class of the 3D mesh viewer.
Type of user interface for changing the view rotation based on the mouse draggin.
| igl::opengl::ViewerCore::ViewerCore | ( | ) | 
| void igl::opengl::ViewerCore::init | ( | ) | 
Initialization.
| void igl::opengl::ViewerCore::shut | ( | ) | 
Shutdown.
| void igl::opengl::ViewerCore::InitSerialization | ( | ) | 
Serialization code.
| void igl::opengl::ViewerCore::align_camera_center | ( | const Eigen::MatrixXd & | V, | 
| const Eigen::MatrixXi & | F | ||
| ) | 
Adjust the view to see the entire model.
| [in] | V | #V by 3 list of vertex positions | 
| [in] | F | #F by 3 list of triangle indices into V | 
| void igl::opengl::ViewerCore::align_camera_center | ( | const Eigen::MatrixXd & | V | ) | 
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::ViewerCore::get_scale_and_shift_to_fit_mesh | ( | const Eigen::MatrixXd & | V, | 
| const Eigen::MatrixXi & | F, | ||
| float & | zoom, | ||
| Eigen::Vector3f & | shift | ||
| ) | 
Determines how much to zoom and shift such that the mesh fills the unit box (centered at the origin)
| [in] | V | #V by 3 list of vertex positions | 
| [in] | F | #F by 3 list of triangle indices into V | 
| [out] | zoom | zoom factor | 
| [out] | shift | 3d shift | 
| void igl::opengl::ViewerCore::get_scale_and_shift_to_fit_mesh | ( | const Eigen::MatrixXd & | V, | 
| float & | zoom, | ||
| Eigen::Vector3f & | shift | ||
| ) | 
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::ViewerCore::clear_framebuffers | ( | ) | 
Clear the frame buffers.
| void igl::opengl::ViewerCore::draw | ( | ViewerData & | data, | 
| bool | update_matrices = true  | 
        ||
| ) | 
Draw everything.
| [in] | data | which ViewerData to draw | 
| [in] | update_matrices | whether to update view, proj, and norm matrices in shaders | 
| void igl::opengl::ViewerCore::initialize_shadow_pass | ( | ) | 
initialize shadow pass
| void igl::opengl::ViewerCore::deinitialize_shadow_pass | ( | ) | 
deinitialize shadow pass
| void igl::opengl::ViewerCore::draw_shadow_pass | ( | ViewerData & | data, | 
| bool | update_matrices = true  | 
        ||
| ) | 
Draw everything to shadow map.
| [in] | data | which ViewerData to draw | 
| [in] | update_matrices | whether to update view, proj, and norm | 
| void igl::opengl::ViewerCore::draw_buffer | ( | ViewerData & | data, | 
| bool | update_matrices, | ||
| Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | R, | ||
| Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | G, | ||
| Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | B, | ||
| Eigen::Matrix< unsigned char, Eigen::Dynamic, Eigen::Dynamic > & | A | ||
| ) | 
Render given ViewerData to a buffer.
The width and height are determined by non-zeros dimensions of R (and G,B,A should match) or – if both are zero — are set to this core's viewport sizes.
| [in] | data | which ViewerData to draw | 
| [in] | update_matrices | whether to update view, proj, and norm matrices in shaders | 
| [out] | R | width by height red pixel color values | 
| [out] | G | width by height green pixel color values | 
| [out] | B | width by height blue pixel color values | 
| [out] | A | width by height alpha pixel color values | 
| void igl::opengl::ViewerCore::draw_labels | ( | ViewerData & | data, | 
| const igl::opengl::MeshGL::TextGL & | labels | ||
| ) | 
Draw the text lables.
| [in] | data | which ViewerData to draw | 
| [in] | labels | text labels to draw | 
| void igl::opengl::ViewerCore::set_rotation_type | ( | const RotationType & | value | ) | 
Set the current rotation type.
| [in] | value | the new rotation type | 
| void igl::opengl::ViewerCore::set | ( | unsigned int & | property_mask, | 
| bool | value = true  | 
        ||
| ) | const | 
Set a ViewerData visualization option for this viewport.
| [in] | property_mask | a bit mask of visualization option | 
| [in] | value | whether to set or unset the property | 
| void igl::opengl::ViewerCore::unset | ( | unsigned int & | property_mask | ) | const | 
Unset a ViewerData visualization option for this viewport.
| [in] | property_mask | a bit mask of visualization option | 
| void igl::opengl::ViewerCore::toggle | ( | unsigned int & | property_mask | ) | const | 
Toggle a ViewerData visualization option for this viewport.
| [in] | property_mask | a bit mask of visualization option | 
| bool igl::opengl::ViewerCore::is_set | ( | unsigned int | property_mask | ) | const | 
Check whether a ViewerData visualization option is set for this viewport.
| [in] | property_mask | a bit mask of visualization option | 
| void igl::opengl::ViewerCore::delete_shadow_buffers | ( | ) | 
delete the shadow buffers
| void igl::opengl::ViewerCore::generate_shadow_buffers | ( | ) | 
generate the shadow buffers
| unsigned int igl::opengl::ViewerCore::id = 1u | 
Unique identifier.
| Eigen::Vector4f igl::opengl::ViewerCore::background_color | 
Background color as RGBA.
| Eigen::Vector3f igl::opengl::ViewerCore::light_position | 
Light position (or direction to light)
| bool igl::opengl::ViewerCore::is_directional_light | 
Whether to treat light_position as a point or direction. 
| bool igl::opengl::ViewerCore::is_shadow_mapping | 
Whether shadow mapping is on.
| GLuint igl::opengl::ViewerCore::shadow_width | 
Width of the shadow map.
| GLuint igl::opengl::ViewerCore::shadow_height | 
Height of the shadow map.
| GLuint igl::opengl::ViewerCore::shadow_depth_tex | 
Shadow map depth texture.
| GLuint igl::opengl::ViewerCore::shadow_depth_fbo | 
Shadow map depth framebuffer object.
| GLuint igl::opengl::ViewerCore::shadow_color_rbo | 
Shadow map color render buffer object.
| float igl::opengl::ViewerCore::lighting_factor | 
Factor of lighting (0: no lighting, 1: full lighting)
| RotationType igl::opengl::ViewerCore::rotation_type | 
Type of rotation interaction.
| Eigen::Quaternionf igl::opengl::ViewerCore::trackball_angle | 
View rotation as quaternion.
| float igl::opengl::ViewerCore::camera_base_zoom | 
Base zoom of camera.
| float igl::opengl::ViewerCore::camera_zoom | 
Current zoom of camera.
| bool igl::opengl::ViewerCore::orthographic | 
Whether camera is orthographic (or perspective)
| Eigen::Vector3f igl::opengl::ViewerCore::camera_base_translation | 
Base translation of camera.
| Eigen::Vector3f igl::opengl::ViewerCore::camera_translation | 
Current translation of camera.
| Eigen::Vector3f igl::opengl::ViewerCore::camera_eye | 
Current "eye" / origin position of camera.
| Eigen::Vector3f igl::opengl::ViewerCore::camera_up | 
Current "up" vector of camera.
| Eigen::Vector3f igl::opengl::ViewerCore::camera_center | 
Current "look at" position of camera.
| float igl::opengl::ViewerCore::camera_view_angle | 
Current view angle of camera.
| float igl::opengl::ViewerCore::camera_dnear | 
Near plane of camera.
| float igl::opengl::ViewerCore::camera_dfar | 
Far plane of camera.
| bool igl::opengl::ViewerCore::depth_test | 
Whether testing for depth is enabled.
| bool igl::opengl::ViewerCore::is_animating | 
Whether "animating" (continuous drawing) is enabled.
| double igl::opengl::ViewerCore::animation_max_fps | 
Max fps of animation loop (e.g. 30fps or 60fps)
| float igl::opengl::ViewerCore::object_scale | 
Caches the two-norm between the min/max point of the bounding box.
| Eigen::Vector4f igl::opengl::ViewerCore::viewport | 
Viewport size.
| Eigen::Matrix4f igl::opengl::ViewerCore::view | 
OpenGL view transformation matrix on last render pass.
| Eigen::Matrix4f igl::opengl::ViewerCore::proj | 
OpenGL proj transformation matrix on last render pass.
| Eigen::Matrix4f igl::opengl::ViewerCore::norm | 
OpenGL norm transformation matrix on last render pass.
| Eigen::Matrix4f igl::opengl::ViewerCore::shadow_view | 
OpenGL shadow_view transformation matrix on last render pass.
| Eigen::Matrix4f igl::opengl::ViewerCore::shadow_proj | 
OpenGL shadow_proj transformation matrix on last render pass.