GNU Octave
4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
|
#include "gl-select.h"
Public Member Functions | |
opengl_selector (void) | |
virtual | ~opengl_selector (void) |
virtual void | draw (const Matrix &hlist, bool toplevel=false) |
virtual void | draw (const graphics_object &go, bool toplevel=true) |
virtual void | finish (void) |
virtual graphics_xform | get_transform (void) const |
graphics_object | select (const graphics_object &ax, int x, int y, int flags=0) |
virtual void | set_viewport (int w, int h) |
Protected Member Functions | |
virtual void | draw_axes (const axes::properties &props) |
virtual void | draw_figure (const figure::properties &props) |
virtual void | draw_hggroup (const hggroup::properties &props) |
virtual void | draw_image (const image::properties &props) |
virtual void | draw_light (const light::properties &props) |
virtual void | draw_line (const line::properties &props) |
virtual void | draw_marker (double x, double y, double z, const Matrix &lc, const Matrix &fc) |
virtual void | draw_patch (const patch::properties &props) |
virtual void | draw_pixels (int w, int h, const float *data) |
virtual void | draw_pixels (int w, int h, const uint8_t *data) |
virtual void | draw_pixels (int w, int h, const uint16_t *data) |
virtual void | draw_surface (const surface::properties &props) |
virtual void | draw_text (const text::properties &props) |
virtual void | draw_uibuttongroup (const uibuttongroup::properties &props, const graphics_object &go) |
virtual void | draw_uipanel (const uipanel::properties &props, const graphics_object &go) |
virtual void | end_marker (void) |
virtual void | init_gl_context (bool enhanced, const Matrix &backgroundColor) |
virtual void | init_marker (const std::string &m, double size, float width) |
virtual void | render_grid (const double linewidth, const std::string &gridstyle, const Matrix &gridcolor, const double gridalpha, const Matrix &ticks, double lim1, double lim2, double p1, double p1N, double p2, double p2N, int xyz, bool is_3D) |
virtual Matrix | render_text (const std::string &txt, double x, double y, double z, int halign, int valign, double rotation=0.0) |
virtual void | render_tickmarks (const Matrix &ticks, double lim1, double lim2, double p1, double p1N, double p2, double p2N, double dx, double dy, double dz, int xyz, bool doubleside) |
virtual void | render_ticktexts (const Matrix &ticks, const string_vector &ticklabels, double lim1, double lim2, double p1, double p2, int xyz, int ha, int va, int &wmax, int &hmax) |
virtual void | set_clipbox (double x1, double x2, double y1, double y2, double z1, double z2) |
virtual void | set_clipping (bool on) |
virtual void | set_color (const Matrix &c) |
virtual void | set_font (const base_properties &props) |
virtual void | set_interpreter (const caseless_str &interp) |
virtual void | set_linestyle (const std::string &s, bool stipple=false, double linewidth=0.5) |
virtual void | set_linewidth (float w) |
virtual void | set_polygon_offset (bool on, float offset=0.0f) |
virtual void | setup_opengl_transformation (const axes::properties &props) |
virtual void | text_to_pixels (const std::string &txt, uint8NDArray &pixels, Matrix &bbox, int halign=0, int valign=0, double rotation=0.0) |
virtual void | text_to_strlist (const std::string &txt, std::list< text_renderer::string > &lst, Matrix &bbox, int halign=0, int valign=0, double rotation=0.0) |
Private Member Functions | |
void | apply_pick_matrix (void) |
void | fake_text (double x, double y, double z, const Matrix &bbox, bool use_scale=true) |
Private Attributes | |
std::map< GLuint, graphics_object > | object_map |
int | size |
int | xp |
int | yp |
Definition at line 40 of file gl-select.h.
|
inline |
Definition at line 43 of file gl-select.h.
|
inlinevirtual |
Definition at line 45 of file gl-select.h.
|
private |
Definition at line 35 of file gl-select.cc.
Referenced by init_marker(), and setup_opengl_transformation().
|
inlinevirtualinherited |
Definition at line 45 of file gl-render.h.
References gh_manager::get_object(), and Array< T >::numel().
|
virtual |
Reimplemented from octave::opengl_renderer.
Definition at line 137 of file gl-select.cc.
References octave::opengl_renderer::draw(), name, and object_map.
Referenced by select().
|
protectedvirtualinherited |
Definition at line 1914 of file gl-render.cc.
References octave::opengl_renderer::draw_axes_boxes(), octave::opengl_renderer::draw_axes_children(), octave::opengl_renderer::draw_axes_planes(), octave::opengl_renderer::draw_axes_x_grid(), octave::opengl_renderer::draw_axes_y_grid(), octave::opengl_renderer::draw_axes_z_grid(), axes::properties::get_box(), axes::properties::get_linewidth(), base_properties::get_tag(), axes::properties::get_ticklabelinterpreter(), axes::properties::get_x_max(), axes::properties::get_x_min(), axes::properties::get_y_max(), axes::properties::get_y_min(), axes::properties::get_z_max(), axes::properties::get_z_min(), base_properties::is_visible(), max(), panic_impossible, octave::opengl_renderer::set_clipbox(), octave::opengl_renderer::set_font(), octave::opengl_renderer::set_interpreter(), octave::opengl_renderer::set_linestyle(), octave::opengl_renderer::set_linewidth(), octave::opengl_renderer::setup_opengl_transformation(), and warning().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 727 of file gl-render.cc.
References octave::opengl_renderer::draw(), base_properties::get_all_children(), figure::properties::get_color_rgb(), octave::gl_get_string(), octave::opengl_renderer::init_gl_context(), figure::properties::is_graphicssmoothing(), figure::properties::set___gl_extensions__(), figure::properties::set___gl_renderer__(), figure::properties::set___gl_vendor__(), and figure::properties::set___gl_version__().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 3237 of file gl-render.cc.
References octave::opengl_renderer::draw(), and base_properties::get_children().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtual |
Reimplemented from octave::opengl_renderer.
Definition at line 205 of file gl-select.cc.
References octave_value::columns(), Array< T >::data(), image::properties::get_cdata(), image::properties::get_xdata(), image::properties::get_ydata(), octave_value::matrix_value(), and octave_value::rows().
|
protectedvirtualinherited |
Definition at line 3200 of file gl-render.cc.
References octave::opengl_renderer::current_light, light::properties::get_color(), light::properties::get_position(), octave_value::matrix_value(), panic_impossible, and light::properties::style_is().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 1983 of file gl-render.cc.
References octave::opengl_renderer::clip_code(), line::properties::color_is(), octave::opengl_renderer::draw_marker(), octave::opengl_renderer::end_marker(), f, line::properties::get_color_rgb(), line::properties::get_linestyle(), line::properties::get_linewidth(), line::properties::get_marker(), line::properties::get_markeredgecolor_rgb(), line::properties::get_markerfacecolor_rgb(), line::properties::get_markersize(), line::properties::get_xdata(), line::properties::get_ydata(), line::properties::get_zdata(), octave::opengl_renderer::init_marker(), base_properties::is_clipping(), line::properties::linestyle_is(), line::properties::marker_is(), line::properties::markeredgecolor_is(), line::properties::markerfacecolor_is(), octave_value::matrix_value(), max(), min(), Array< T >::numel(), panic_impossible, octave::opengl_renderer::set_clipping(), octave::opengl_renderer::set_color(), octave::opengl_renderer::set_linestyle(), octave::opengl_renderer::set_linewidth(), x, octave::opengl_renderer::xform, graphics_xform::xscale(), y, graphics_xform::yscale(), octave::opengl_renderer::zmax, octave::opengl_renderer::zmin, and graphics_xform::zscale().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 3827 of file gl-render.cc.
References Array< T >::data(), octave::opengl_renderer::filled_marker_id, octave::opengl_renderer::marker_id, Array< T >::numel(), panic_impossible, octave::opengl_renderer::set_polygon_offset(), tmp, graphics_xform::transform(), and octave::opengl_renderer::xform.
Referenced by octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_patch(), and octave::opengl_renderer::draw_surface().
|
protectedvirtualinherited |
Definition at line 2732 of file gl-render.cc.
References a, octave::opengl_tesselator::add_vertex(), octave::vertex_data::vertex_data_rep::ambient, patch::properties::backfacelighting_is(), octave::opengl_tesselator::begin_contour(), octave::opengl_tesselator::begin_polygon(), c, octave::vertex_data::vertex_data_rep::color, Array< T >::columns(), octave::vertex_data::vertex_data_rep::coords, Array< T >::data(), octave::vertex_data::vertex_data_rep::diffuse, octave::opengl_renderer::draw_marker(), patch::properties::edgealpha_is(), patch::properties::edgealpha_is_double(), patch::properties::edgecolor_is(), patch::properties::edgecolor_is_rgb(), patch::properties::edgelighting_is(), octave::opengl_tesselator::end_contour(), octave::opengl_renderer::end_marker(), octave::opengl_tesselator::end_polygon(), f, patch::properties::facealpha_is(), patch::properties::facealpha_is_double(), patch::properties::facecolor_is(), patch::properties::facecolor_is_rgb(), patch::properties::facelighting_is(), octave::FLAT, Array< T >::fortran_vec(), patch::properties::get_ambientstrength(), patch::properties::get_color_data(), patch::properties::get_diffusestrength(), patch::properties::get_edgealpha_double(), patch::properties::get_edgecolor_rgb(), patch::properties::get_facealpha_double(), patch::properties::get_facecolor_rgb(), patch::properties::get_faces(), patch::properties::get_linestyle(), patch::properties::get_linewidth(), patch::properties::get_marker(), patch::properties::get_markeredgecolor_rgb(), patch::properties::get_markerfacecolor_rgb(), patch::properties::get_markersize(), patch::properties::get_specularcolorreflectance(), patch::properties::get_specularexponent(), patch::properties::get_specularstrength(), patch::properties::get_vertexnormals(), patch::properties::get_vertices(), octave::GOURAUD, patch::properties::has_bad_data(), octave::opengl_renderer::init_marker(), octave::INTERP, Array< T >::is_empty(), octave::opengl_renderer::is_nan_or_inf(), octave::math::isnan(), k, LIGHT_MODE, patch::properties::linestyle_is(), m, patch::properties::marker_is(), patch::properties::markeredgecolor_is(), patch::properties::markerfacecolor_is(), octave_value::matrix_value(), nn, octave::opengl_renderer::num_lights, Array< T >::numel(), panic_impossible, Matrix::resize(), Array< T >::rows(), graphics_xform::scale(), octave::opengl_renderer::set_linestyle(), octave::opengl_renderer::set_linewidth(), octave::vertex_data::vertex_data_rep::specular, octave::vertex_data::vertex_data_rep::specular_color_refl, string, octave::UNIFORM, octave::opengl_renderer::view_vector, warning(), and octave::opengl_renderer::xform.
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 3501 of file gl-render.cc.
References panic_impossible.
Referenced by octave::opengl_renderer::draw_image().
|
protectedvirtualinherited |
Definition at line 3522 of file gl-render.cc.
References panic_impossible.
|
protectedvirtualinherited |
Definition at line 3543 of file gl-render.cc.
References panic_impossible.
|
protectedvirtualinherited |
Definition at line 2120 of file gl-render.cc.
References a, octave_value::array_value(), surface::properties::backfacelighting_is(), c, Array< T >::columns(), octave::opengl_texture::create(), Array< T >::data(), Array< T >::dims(), octave::opengl_renderer::draw_marker(), surface::properties::edgealpha_is(), surface::properties::edgealpha_is_double(), surface::properties::edgecolor_is(), surface::properties::edgecolor_is_rgb(), surface::properties::edgelighting_is(), octave::opengl_renderer::end_marker(), f, surface::properties::facealpha_is(), surface::properties::facealpha_is_double(), surface::properties::facecolor_is(), surface::properties::facecolor_is_rgb(), surface::properties::facelighting_is(), octave::math::finite(), octave::FLAT, surface::properties::get_ambientstrength(), surface::properties::get_color_data(), surface::properties::get_diffusestrength(), surface::properties::get_edgealpha_double(), surface::properties::get_edgecolor_rgb(), surface::properties::get_facealpha_double(), surface::properties::get_facecolor_rgb(), surface::properties::get_linestyle(), surface::properties::get_linewidth(), surface::properties::get_marker(), surface::properties::get_markeredgecolor_rgb(), surface::properties::get_markerfacecolor_rgb(), surface::properties::get_markersize(), surface::properties::get_specularcolorreflectance(), surface::properties::get_specularexponent(), surface::properties::get_specularstrength(), surface::properties::get_vertexnormals(), surface::properties::get_xdata(), surface::properties::get_ydata(), surface::properties::get_zdata(), octave::GOURAUD, octave::opengl_renderer::init_marker(), octave::INTERP, Array< T >::is_empty(), octave::opengl_renderer::is_nan_or_inf(), k, LIGHT_MODE, surface::properties::linestyle_is(), surface::properties::marker_is(), surface::properties::markeredgecolor_is(), surface::properties::markerfacecolor_is(), octave_value::matrix_value(), surface::properties::meshstyle_is(), octave::opengl_renderer::num_lights, panic_impossible, Array< T >::rows(), octave::opengl_renderer::set_linestyle(), octave::opengl_renderer::set_linewidth(), octave::opengl_renderer::set_normal(), octave::opengl_renderer::set_polygon_offset(), octave::opengl_texture::tex_coord(), octave::TEXTURE, octave::UNIFORM, x, octave::opengl_renderer::xform, graphics_xform::xscale(), y, graphics_xform::yscale(), and graphics_xform::zscale().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtual |
Reimplemented from octave::opengl_renderer.
Definition at line 177 of file gl-select.cc.
References fake_text(), text::properties::get_data_position(), text::properties::get_extent_matrix(), text::properties::get_string(), octave_value::is_empty(), and Array< T >::numel().
|
protectedvirtualinherited |
Definition at line 766 of file gl-render.cc.
References octave::opengl_renderer::draw(), base_properties::get_all_children(), graphics_object::get_ancestor(), uibuttongroup::properties::get_backgroundcolor_rgb(), graphics_object::get_properties(), octave::opengl_renderer::init_gl_context(), and figure::properties::is_graphicssmoothing().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 748 of file gl-render.cc.
References octave::opengl_renderer::draw(), base_properties::get_all_children(), graphics_object::get_ancestor(), uipanel::properties::get_backgroundcolor_rgb(), graphics_object::get_properties(), octave::opengl_renderer::init_gl_context(), and figure::properties::is_graphicssmoothing().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 3803 of file gl-render.cc.
References f, octave::opengl_renderer::filled_marker_id, octave::opengl_renderer::marker_id, panic_impossible, and octave::opengl_renderer::set_linewidth().
Referenced by octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_patch(), and octave::opengl_renderer::draw_surface().
|
private |
Definition at line 148 of file gl-select.cc.
References Array< T >::data(), octave::opengl_renderer::get_transform(), graphics_xform::transform(), and graphics_xform::untransform().
Referenced by draw_text(), and render_text().
|
virtualinherited |
Definition at line 1077 of file gl-render.cc.
References panic_impossible.
Referenced by G__osmesa_print__().
|
inlinevirtualinherited |
|
protectedvirtualinherited |
Definition at line 784 of file gl-render.cc.
References c, f, Array< T >::numel(), panic_impossible, and warning().
Referenced by octave::opengl_renderer::draw_figure(), octave::opengl_renderer::draw_uibuttongroup(), and octave::opengl_renderer::draw_uipanel().
|
protectedvirtual |
Reimplemented from octave::opengl_renderer.
Definition at line 57 of file gl-select.cc.
References apply_pick_matrix(), and octave::opengl_renderer::init_marker().
|
protectedvirtualinherited |
Definition at line 855 of file gl-render.cc.
References Array< T >::numel(), panic_impossible, octave::opengl_renderer::set_linestyle(), val, octave::X_AXIS, octave::Y_AXIS, and octave::Z_AXIS.
Referenced by octave::opengl_renderer::draw_axes_x_grid(), octave::opengl_renderer::draw_axes_y_grid(), and octave::opengl_renderer::draw_axes_z_grid().
|
protectedvirtual |
Reimplemented from octave::opengl_renderer.
Definition at line 189 of file gl-select.cc.
References fake_text(), and octave::opengl_renderer::text_to_pixels().
|
protectedvirtualinherited |
Definition at line 931 of file gl-render.cc.
References Array< T >::numel(), panic_impossible, val, octave::X_AXIS, octave::Y_AXIS, and octave::Z_AXIS.
Referenced by octave::opengl_renderer::draw_axes_x_grid(), octave::opengl_renderer::draw_axes_y_grid(), and octave::opengl_renderer::draw_axes_z_grid().
|
protectedvirtualinherited |
Definition at line 1007 of file gl-render.cc.
References b, max(), Array< T >::numel(), panic_impossible, octave::opengl_renderer::render_text(), string, val, octave::X_AXIS, octave::Y_AXIS, and octave::Z_AXIS.
Referenced by octave::opengl_renderer::draw_axes_x_grid(), octave::opengl_renderer::draw_axes_y_grid(), and octave::opengl_renderer::draw_axes_z_grid().
graphics_object octave::opengl_selector::select | ( | const graphics_object & | ax, |
int | x, | ||
int | y, | ||
int | flags = 0 |
||
) |
Definition at line 66 of file gl-select.cc.
References BUFFER_SIZE, draw(), graphics_object::get_properties(), base_properties::is_hittest(), min(), name, object_map, octave::select_ignore_hittest, octave::select_last, warning(), x, xp, y, and yp.
Referenced by QtHandles::GLCanvas::selectFromAxes().
|
protectedvirtualinherited |
Definition at line 3684 of file gl-render.cc.
References Array< T >::data(), p, panic_impossible, octave::opengl_renderer::xmax, octave::opengl_renderer::xmin, octave::opengl_renderer::ymax, octave::opengl_renderer::ymin, octave::opengl_renderer::zmax, and octave::opengl_renderer::zmin.
Referenced by octave::opengl_renderer::draw_axes().
|
protectedvirtualinherited |
Definition at line 3734 of file gl-render.cc.
References panic_impossible.
Referenced by octave::opengl_renderer::draw_all_lights(), octave::opengl_renderer::draw_axes_children(), octave::opengl_renderer::draw_line(), and octave::opengl_renderer::init_marker().
|
protectedvirtualinherited |
Definition at line 3564 of file gl-render.cc.
References Array< T >::data(), panic_impossible, octave::text_renderer::set_color(), and octave::opengl_renderer::txt_renderer.
Referenced by octave::opengl_renderer::draw_axes_boxes(), octave::opengl_renderer::draw_axes_planes(), octave::opengl_renderer::draw_axes_x_grid(), octave::opengl_renderer::draw_axes_y_grid(), octave::opengl_renderer::draw_axes_z_grid(), and octave::opengl_renderer::draw_line().
|
protectedvirtualinherited |
Definition at line 3585 of file gl-render.cc.
References octave_value::double_value(), base_properties::get(), octave::text_renderer::set_font(), octave_value::string_value(), and octave::opengl_renderer::txt_renderer.
Referenced by octave::opengl_renderer::draw_axes(), and octave::opengl_renderer::draw_text().
|
inlineprotectedvirtualinherited |
Definition at line 89 of file gl-render.h.
Referenced by octave::opengl_renderer::draw_axes().
|
protectedvirtualinherited |
Definition at line 3643 of file gl-render.cc.
References panic_impossible.
Referenced by octave::opengl_renderer::draw_axes(), octave::opengl_renderer::draw_axes_boxes(), octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_patch(), octave::opengl_renderer::draw_surface(), and octave::opengl_renderer::render_grid().
|
protectedvirtualinherited |
Definition at line 3624 of file gl-render.cc.
References panic_impossible.
Referenced by octave::opengl_renderer::draw_axes(), octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_patch(), octave::opengl_renderer::draw_surface(), octave::opengl_renderer::end_marker(), and octave::opengl_renderer::init_marker().
|
protectedvirtualinherited |
Definition at line 3594 of file gl-render.cc.
References panic_impossible.
Referenced by octave::opengl_renderer::draw_axes_planes(), octave::opengl_renderer::draw_marker(), and octave::opengl_renderer::draw_surface().
Definition at line 3481 of file gl-render.cc.
References panic_impossible.
Referenced by QtHandles::GLCanvas::draw(), and QtHandles::GLCanvas::selectFromAxes().
|
protectedvirtual |
Reimplemented from octave::opengl_renderer.
Definition at line 50 of file gl-select.cc.
References apply_pick_matrix(), and octave::opengl_renderer::setup_opengl_transformation().
|
protectedvirtualinherited |
Definition at line 4091 of file gl-render.cc.
References octave::text_renderer::text_to_pixels(), and octave::opengl_renderer::txt_renderer.
Referenced by render_text(), and octave::opengl_renderer::render_text().
|
protectedvirtualinherited |
Definition at line 4101 of file gl-render.cc.
References octave::text_renderer::text_to_strlist(), and octave::opengl_renderer::txt_renderer.
|
private |
Definition at line 79 of file gl-select.h.
|
private |
Definition at line 76 of file gl-select.h.
Referenced by apply_pick_matrix().
|
private |
Definition at line 73 of file gl-select.h.
Referenced by apply_pick_matrix(), and select().
|
private |
Definition at line 73 of file gl-select.h.
Referenced by apply_pick_matrix(), and select().