#include "gl-select.h"
Public Member Functions | |
opengl_selector (void) | |
virtual | ~opengl_selector (void)=default |
virtual void | draw (const graphics_object &go, bool toplevel=true) |
virtual void | draw (const Matrix &hlist, bool toplevel=false) |
virtual void | finish (void) |
virtual uint8NDArray | get_pixels (int width, int height) |
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_text_background (const text::properties &props, bool do_rotate=false) |
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_linecap (const std::string &) |
virtual void | set_linejoin (const std::string &) |
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 | set_selecting (bool on) |
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.
|
virtualdefault |
|
private |
Definition at line 35 of file gl-select.cc.
Referenced by init_marker(), and setup_opengl_transformation().
|
virtual |
Reimplemented from octave::opengl_renderer.
Definition at line 137 of file gl-select.cc.
References octave::opengl_renderer::draw(), name, object_map, and octave::opengl_renderer::set_selecting().
Referenced by select().
|
inlinevirtualinherited |
Definition at line 51 of file gl-render.h.
References gh_manager::get_object(), i, and Array< T >::numel().
|
protectedvirtualinherited |
Definition at line 2088 of file gl-render.cc.
References octave::opengl_renderer::draw_axes_boxes(), octave::opengl_renderer::draw_axes_children(), octave::opengl_renderer::draw_axes_grids(), octave::opengl_renderer::draw_axes_planes(), axes::properties::get_is2D(), 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(), max(), panic_impossible, octave::opengl_renderer::selecting, octave::opengl_renderer::set_clipbox(), octave::opengl_renderer::setup_opengl_transformation(), and warning().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 695 of file gl-render.cc.
References octave::opengl_renderer::draw(), base_properties::get_all_children(), octave::gl_get_string(), and octave::opengl_renderer::init_gl_context().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 3449 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 207 of file gl-select.cc.
References Array< T >::data().
|
protectedvirtualinherited |
Definition at line 3412 of file gl-render.cc.
References octave::opengl_renderer::current_light, i, and panic_impossible.
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 2160 of file gl-render.cc.
References octave::opengl_renderer::clip_code(), octave::opengl_renderer::draw_marker(), octave::opengl_renderer::end_marker(), f, i, octave::opengl_renderer::init_marker(), max(), min(), Array< T >::numel(), panic_impossible, octave::opengl_renderer::selecting, octave::opengl_renderer::set_clipping(), octave::opengl_renderer::set_color(), octave::opengl_renderer::set_linecap(), octave::opengl_renderer::set_linejoin(), 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 4155 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(), x, octave::opengl_renderer::xform, and y.
Referenced by octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_patch(), and octave::opengl_renderer::draw_surface().
|
protectedvirtualinherited |
Definition at line 2929 of file gl-render.cc.
References a, octave::opengl_tesselator::add_vertex(), octave::vertex_data::vertex_data_rep::ambient, 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(), octave::opengl_tesselator::end_contour(), octave::opengl_renderer::end_marker(), octave::opengl_tesselator::end_polygon(), f, octave::FLAT, Array< T >::fortran_vec(), patch::properties::get_color_data(), octave::GOURAUD, patch::properties::has_bad_data(), i, octave::opengl_renderer::init_marker(), octave::INTERP, octave::opengl_renderer::is_nan_or_inf(), Array< T >::isempty(), octave::math::isnan(), k, LIGHT_MODE, 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::selecting, octave::opengl_renderer::set_linecap(), octave::opengl_renderer::set_linejoin(), 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 3829 of file gl-render.cc.
References panic_impossible.
Referenced by octave::opengl_renderer::draw_image().
|
protectedvirtualinherited |
Definition at line 3850 of file gl-render.cc.
References panic_impossible.
|
protectedvirtualinherited |
Definition at line 3871 of file gl-render.cc.
References panic_impossible.
|
protectedvirtualinherited |
Definition at line 2305 of file gl-render.cc.
References a, octave_value::array_value(), c, Array< T >::columns(), octave::opengl_texture::create(), Array< T >::data(), Array< T >::dims(), octave::opengl_renderer::draw_marker(), octave::opengl_renderer::end_marker(), f, octave::FLAT, surface::properties::get_color_data(), octave::GOURAUD, i, octave::opengl_renderer::init_marker(), octave::INTERP, octave::opengl_renderer::is_nan_or_inf(), Array< T >::isempty(), octave::math::isfinite(), k, LIGHT_MODE, octave::opengl_renderer::num_lights, panic_impossible, Array< T >::rows(), octave::opengl_renderer::selecting, octave::opengl_renderer::set_linecap(), octave::opengl_renderer::set_linejoin(), 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 179 of file gl-select.cc.
References fake_text(), and Array< T >::numel().
|
protectedvirtualinherited |
Definition at line 3503 of file gl-render.cc.
References octave::opengl_renderer::get_transform(), Array< T >::isempty(), panic_impossible, graphics_xform::scale(), octave::opengl_renderer::set_linestyle(), octave::opengl_renderer::set_linewidth(), octave::opengl_renderer::set_polygon_offset(), graphics_xform::transform(), octave::opengl_renderer::xform, octave::opengl_renderer::xZ1, and octave::opengl_renderer::xZ2.
Referenced by octave::opengl_renderer::draw_text().
|
protectedvirtualinherited |
Definition at line 734 of file gl-render.cc.
References octave::opengl_renderer::draw(), base_properties::get_all_children(), graphics_object::get_ancestor(), graphics_object::get_properties(), and octave::opengl_renderer::init_gl_context().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 716 of file gl-render.cc.
References octave::opengl_renderer::draw(), base_properties::get_all_children(), graphics_object::get_ancestor(), graphics_object::get_properties(), and octave::opengl_renderer::init_gl_context().
Referenced by octave::opengl_renderer::draw().
|
protectedvirtualinherited |
Definition at line 4131 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 150 of file gl-select.cc.
References Array< T >::data(), octave::opengl_renderer::get_transform(), graphics_xform::transform(), graphics_xform::untransform(), x, and y.
Referenced by draw_text(), and render_text().
|
virtualinherited |
Definition at line 1081 of file gl-render.cc.
References panic_impossible.
Referenced by G__osmesa_print__().
|
virtualinherited |
Definition at line 1045 of file gl-render.cc.
References idx_vector::colon, Array< T >::fortran_vec(), idx_vector::make_range(), panic_impossible, and MArray< T >::permute().
Referenced by QtHandles::GLCanvas::do_getPixels().
|
inlinevirtualinherited |
Definition at line 65 of file gl-render.h.
References xform().
Referenced by octave::opengl_renderer::draw_text_background(), and fake_text().
|
protectedvirtualinherited |
Definition at line 752 of file gl-render.cc.
References c, f, 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(), octave::opengl_renderer::init_marker(), and sz.
|
protectedvirtualinherited |
Definition at line 823 of file gl-render.cc.
References i, 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 191 of file gl-select.cc.
References fake_text(), octave::opengl_renderer::text_to_pixels(), x, and y.
|
protectedvirtualinherited |
Definition at line 899 of file gl-render.cc.
References i, 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 975 of file gl-render.cc.
References b, i, 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(), i, min(), name, object_map, octave::select_ignore_hittest, octave::select_last, warning(), x, xp, y, and yp.
|
protectedvirtualinherited |
Definition at line 4012 of file gl-render.cc.
References 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 4062 of file gl-render.cc.
References i, and panic_impossible.
Referenced by octave::opengl_renderer::draw_all_lights(), octave::opengl_renderer::draw_axes_children(), octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_text(), and octave::opengl_renderer::init_marker().
|
protectedvirtualinherited |
Definition at line 3892 of file gl-render.cc.
References c, 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 3913 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_grids(), and octave::opengl_renderer::draw_text().
|
inlineprotectedvirtualinherited |
Definition at line 94 of file gl-render.h.
Referenced by octave::opengl_renderer::draw_axes_grids().
|
inlineprotectedvirtualinherited |
Definition at line 101 of file gl-render.h.
Referenced by octave::opengl_renderer::draw_axes_boxes(), octave::opengl_renderer::draw_axes_grids(), octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_patch(), and octave::opengl_renderer::draw_surface().
|
inlineprotectedvirtualinherited |
Definition at line 102 of file gl-render.h.
Referenced by octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_patch(), and octave::opengl_renderer::draw_surface().
|
protectedvirtualinherited |
Definition at line 3971 of file gl-render.cc.
References panic_impossible, and s.
Referenced by octave::opengl_renderer::draw_axes_boxes(), octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_patch(), octave::opengl_renderer::draw_surface(), octave::opengl_renderer::draw_text_background(), and octave::opengl_renderer::render_grid().
|
protectedvirtualinherited |
Definition at line 3952 of file gl-render.cc.
References panic_impossible, and Faddeeva::w().
Referenced by octave::opengl_renderer::draw_axes_grids(), octave::opengl_renderer::draw_line(), octave::opengl_renderer::draw_patch(), octave::opengl_renderer::draw_surface(), octave::opengl_renderer::draw_text_background(), octave::opengl_renderer::end_marker(), and octave::opengl_renderer::init_marker().
|
protectedvirtualinherited |
Definition at line 3922 of file gl-render.cc.
References on, and panic_impossible.
Referenced by octave::opengl_renderer::draw_axes_planes(), octave::opengl_renderer::draw_marker(), octave::opengl_renderer::draw_surface(), and octave::opengl_renderer::draw_text_background().
|
inlineprotectedvirtualinherited |
|
virtualinherited |
Definition at line 3809 of file gl-render.cc.
References h, panic_impossible, and Faddeeva::w().
Referenced by QtHandles::GLCanvas::do_getPixels(), and QtHandles::GLCanvas::draw().
|
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 4419 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 4429 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().