Mercurial > octave
diff libgui/graphics/gl-select.cc @ 22411:c69805d1fa64
maint: Style check C++ code in libgui/
* Backend.cc, Backend.h, BaseControl.cc, BaseControl.h, ButtonControl.cc,
ButtonControl.h, ButtonGroup.cc, ButtonGroup.h, Canvas.cc, Canvas.h,
CheckBoxControl.cc, CheckBoxControl.h, Container.cc, Container.h,
ContextMenu.cc, ContextMenu.h, EditControl.cc, EditControl.h, Figure.cc,
Figure.h, FigureWindow.cc, FigureWindow.h, GLCanvas.cc, GLCanvas.h,
GenericEventNotify.h, KeyMap.cc, KeyMap.h, ListBoxControl.cc, ListBoxControl.h,
Logger.cc, Logger.h, Menu.cc, Menu.h, MenuContainer.h, MouseModeActionGroup.cc,
MouseModeActionGroup.h, Object.cc, Object.h, ObjectFactory.cc, ObjectFactory.h,
ObjectProxy.cc, ObjectProxy.h, Panel.cc, Panel.h, PopupMenuControl.cc,
PopupMenuControl.h, PushButtonControl.cc, PushButtonControl.h, PushTool.cc,
PushTool.h, QtHandlesUtils.cc, QtHandlesUtils.h, RadioButtonControl.cc,
RadioButtonControl.h, SliderControl.cc, SliderControl.h, TextControl.cc,
TextControl.h, TextEdit.cc, TextEdit.h, ToggleButtonControl.cc,
ToggleButtonControl.h, ToggleTool.cc, ToggleTool.h, ToolBar.cc, ToolBar.h,
ToolBarButton.cc, ToolBarButton.h, __init_qt__.cc, __init_qt__.h,
annotation-dialog.cc, annotation-dialog.h, gl-select.cc, gl-select.h,
color-picker.cc, color-picker.h, dialog.h, documentation-dock-widget.cc,
documentation-dock-widget.h, files-dock-widget.cc, files-dock-widget.h,
find-files-dialog.h, find-files-model.cc, find-files-model.h,
history-dock-widget.cc, history-dock-widget.h, liboctgui-build-info.h,
liboctgui-build-info.in.cc, file-editor-interface.h, file-editor-tab.cc,
file-editor-tab.h, file-editor.cc, file-editor.h, find-dialog.cc,
find-dialog.h, marker.cc, marker.h, octave-qscintilla.cc, octave-qscintilla.h,
octave-txt-lexer.cc, octave-txt-lexer.h, main-window.cc, main-window.h,
octave-cmd.cc, octave-cmd.h, octave-dock-widget.cc, octave-dock-widget.h,
octave-gui.cc, octave-gui.h, octave-interpreter.cc, octave-interpreter.h,
octave-qt-link.cc, octave-qt-link.h, parser.cc, parser.h, webinfo.cc,
webinfo.h, resource-manager.cc, resource-manager.h, settings-dialog.cc,
settings-dialog.h, shortcut-manager.cc, shortcut-manager.h,
terminal-dock-widget.h, thread-manager.cc, thread-manager.h, welcome-wizard.cc,
welcome-wizard.h, workspace-model.cc, workspace-model.h, workspace-view.cc,
workspace-view.h:
Style check C++ code in libgui/
author | Rik <rik@octave.org> |
---|---|
date | Wed, 31 Aug 2016 12:20:46 -0700 |
parents | 71dd9d5a5ecd |
children | 3a2b891d0b33 e9a0469dedd9 |
line wrap: on
line diff
--- a/libgui/graphics/gl-select.cc Wed Aug 31 14:37:33 2016 -0400 +++ b/libgui/graphics/gl-select.cc Wed Aug 31 12:20:46 2016 -0700 @@ -31,206 +31,207 @@ namespace octave { -void -opengl_selector::apply_pick_matrix (void) -{ - GLdouble p_matrix[16]; - GLint viewport[4]; + void + opengl_selector::apply_pick_matrix (void) + { + GLdouble p_matrix[16]; + GLint viewport[4]; - glGetDoublev (GL_PROJECTION_MATRIX, p_matrix); - glGetIntegerv (GL_VIEWPORT, viewport); - glMatrixMode (GL_PROJECTION); - glLoadIdentity (); - gluPickMatrix (xp, yp, size, size, viewport); - glMultMatrixd (p_matrix); - glMatrixMode (GL_MODELVIEW); -} + glGetDoublev (GL_PROJECTION_MATRIX, p_matrix); + glGetIntegerv (GL_VIEWPORT, viewport); + glMatrixMode (GL_PROJECTION); + glLoadIdentity (); + gluPickMatrix (xp, yp, size, size, viewport); + glMultMatrixd (p_matrix); + glMatrixMode (GL_MODELVIEW); + } -void -opengl_selector::setup_opengl_transformation (const axes::properties& props) -{ - opengl_renderer::setup_opengl_transformation (props); - apply_pick_matrix (); -} + void + opengl_selector::setup_opengl_transformation (const axes::properties& props) + { + opengl_renderer::setup_opengl_transformation (props); + apply_pick_matrix (); + } -void -opengl_selector::init_marker (const std::string& m, double sz, float width) -{ - opengl_renderer::init_marker (m, sz, width); - apply_pick_matrix (); -} + void + opengl_selector::init_marker (const std::string& m, double sz, float width) + { + opengl_renderer::init_marker (m, sz, width); + apply_pick_matrix (); + } # define BUFFER_SIZE 128 -graphics_object -opengl_selector::select (const graphics_object& ax, int x, int y, int flags) -{ - glEnable (GL_DEPTH_TEST); - glDepthFunc (GL_LEQUAL); + graphics_object + opengl_selector::select (const graphics_object& ax, int x, int y, int flags) + { + glEnable (GL_DEPTH_TEST); + glDepthFunc (GL_LEQUAL); + + xp = x; + yp = y; - xp = x; - yp = y; + GLuint select_buffer[BUFFER_SIZE]; + + glSelectBuffer (BUFFER_SIZE, select_buffer); + glRenderMode (GL_SELECT); + glInitNames (); + + object_map.clear (); + + draw (ax); - GLuint select_buffer[BUFFER_SIZE]; + int hits = glRenderMode (GL_RENDER); + graphics_object obj; + + if (hits > 0) + { + GLuint current_minZ = 0xffffffff; + GLuint current_name = 0xffffffff; - glSelectBuffer (BUFFER_SIZE, select_buffer); - glRenderMode (GL_SELECT); - glInitNames (); + for (int i = 0, j = 0; i < hits && j < BUFFER_SIZE-3; i++) + { + GLuint n = select_buffer[j++], + minZ = select_buffer[j++]; - object_map.clear (); - - draw (ax); + j++; // skip maxZ + if (((flags & select_last) == 0 && (minZ <= current_minZ)) + || ((flags & select_last) != 0 && (minZ >= current_minZ))) + { + bool candidate = true; + GLuint name = + select_buffer[std::min (j + n, GLuint (BUFFER_SIZE)) - 1]; - int hits = glRenderMode (GL_RENDER); - graphics_object obj; + if ((flags & select_ignore_hittest) == 0) + { + graphics_object go = object_map[name]; + + if (! go.get_properties ().is_hittest ()) + candidate = false; + } - if (hits > 0) - { - GLuint current_minZ = 0xffffffff; - GLuint current_name = 0xffffffff; + if (candidate) + { + current_minZ = minZ; + current_name = name; + } + + j += n; + } + else + j += n; + } - for (int i = 0, j = 0; i < hits && j < BUFFER_SIZE-3; i++) - { - GLuint n = select_buffer[j++], - minZ = select_buffer[j++]; + if (current_name != 0xffffffff) + obj = object_map[current_name]; + } + else if (hits < 0) + warning ("opengl_selector::select: selection buffer overflow"); + + object_map.clear (); + + return obj; + } - j++; // skip maxZ - if (((flags & select_last) == 0 && (minZ <= current_minZ)) - || ((flags & select_last) != 0 && (minZ >= current_minZ))) - { - bool candidate = true; - GLuint name = - select_buffer[std::min (j + n, GLuint (BUFFER_SIZE)) - 1]; + void + opengl_selector::draw (const graphics_object& go, bool toplevel) + { + GLuint name = object_map.size (); + + object_map[name] = go; + glPushName (name); + opengl_renderer::draw (go, toplevel); + glPopName (); + } - if ((flags & select_ignore_hittest) == 0) - { - graphics_object go = object_map[name]; + void + opengl_selector::fake_text (double x, double y, double z, const Matrix& bbox, + bool use_scale) + { + ColumnVector xpos, xp1, xp2; + + xpos = get_transform ().transform (x, y, z, use_scale); - if (! go.get_properties ().is_hittest ()) - candidate = false; - } + xp1 = xp2 = xpos; + xp1(0) += bbox(0); + xp1(1) -= bbox(1); + xp2(0) += (bbox(0) + bbox(2)); + xp2(1) -= (bbox(1) + bbox(3)); + + ColumnVector p1, p2, p3, p4; - if (candidate) - { - current_minZ = minZ; - current_name = name; - } + p1 = get_transform ().untransform (xp1(0), xp1(1), xp1(2), false); + p2 = get_transform ().untransform (xp2(0), xp1(1), xp1(2), false); + p3 = get_transform ().untransform (xp2(0), xp2(1), xp1(2), false); + p4 = get_transform ().untransform (xp1(0), xp2(1), xp1(2), false); - j += n; - } - else - j += n; - } + glBegin (GL_QUADS); + glVertex3dv (p1.data ()); + glVertex3dv (p2.data ()); + glVertex3dv (p3.data ()); + glVertex3dv (p4.data ()); + glEnd (); + } + + void + opengl_selector::draw_text (const text::properties& props) + { + if (props.get_string ().is_empty ()) + return; + + Matrix pos = props.get_data_position (); + const Matrix bbox = props.get_extent_matrix (); + + fake_text (pos(0), pos(1), pos.numel () > 2 ? pos(2) : 0.0, bbox); + } - if (current_name != 0xffffffff) - obj = object_map[current_name]; - } - else if (hits < 0) - warning ("opengl_selector::select: selection buffer overflow"); + Matrix + opengl_selector::render_text (const std::string& txt, + double x, double y, double z, + int halign, int valign, double rotation) + { + uint8NDArray pixels; + Matrix bbox (1, 4, 0.0); - object_map.clear (); + // FIXME: probably more efficient to only compute bbox instead + // of doing full text rendering... + text_to_pixels (txt, pixels, bbox, halign, valign, rotation); + fake_text(x, y, z, bbox, false); + + return bbox; + } + + void + opengl_selector::draw_image (const image::properties& props) + { + Matrix xd = props.get_xdata ().matrix_value (); + octave_idx_type nc = props.get_cdata ().columns (); + double x_pix_size = (nc == 1 ? 1 : (xd(1) - xd(0)) / (nc - 1)); - return obj; -} + Matrix yd = props.get_ydata ().matrix_value (); + octave_idx_type nr = props.get_cdata ().rows (); + double y_pix_size = (nr == 1 ? 1 : (yd(1) - yd(0)) / (nr - 1)); + + ColumnVector p1(3, 0.0), p2(3, 0.0), p3(3, 0.0), p4(3, 0.0); + p1(0) = xd(0) - x_pix_size/2; + p1(1) = yd(0) - y_pix_size/2; + + p2(0) = xd(1) + x_pix_size/2; + p2(1) = yd(0) - y_pix_size/2; -void -opengl_selector::draw (const graphics_object& go, bool toplevel) -{ - GLuint name = object_map.size (); + p3(0) = xd(1) + x_pix_size/2; + p3(1) = yd(1) + y_pix_size/2; + + p4(0) = xd(0) - x_pix_size/2; + p4(1) = yd(1) + y_pix_size/2; - object_map[name] = go; - glPushName (name); - opengl_renderer::draw (go, toplevel); - glPopName (); + glBegin (GL_QUADS); + glVertex3dv (p1.data ()); + glVertex3dv (p2.data ()); + glVertex3dv (p3.data ()); + glVertex3dv (p4.data ()); + glEnd (); + } + } -void -opengl_selector::fake_text (double x, double y, double z, const Matrix& bbox, - bool use_scale) -{ - ColumnVector xpos, xp1, xp2; - - xpos = get_transform ().transform (x, y, z, use_scale); - - xp1 = xp2 = xpos; - xp1(0) += bbox(0); - xp1(1) -= bbox(1); - xp2(0) += (bbox(0) + bbox(2)); - xp2(1) -= (bbox(1) + bbox(3)); - - ColumnVector p1, p2, p3, p4; - - p1 = get_transform ().untransform (xp1(0), xp1(1), xp1(2), false); - p2 = get_transform ().untransform (xp2(0), xp1(1), xp1(2), false); - p3 = get_transform ().untransform (xp2(0), xp2(1), xp1(2), false); - p4 = get_transform ().untransform (xp1(0), xp2(1), xp1(2), false); - - glBegin (GL_QUADS); - glVertex3dv (p1.data ()); - glVertex3dv (p2.data ()); - glVertex3dv (p3.data ()); - glVertex3dv (p4.data ()); - glEnd (); -} - -void -opengl_selector::draw_text (const text::properties& props) -{ - if (props.get_string ().is_empty ()) - return; - - Matrix pos = props.get_data_position (); - const Matrix bbox = props.get_extent_matrix (); - - fake_text (pos(0), pos(1), pos.numel () > 2 ? pos(2) : 0.0, bbox); -} - -Matrix -opengl_selector::render_text (const std::string& txt, - double x, double y, double z, - int halign, int valign, double rotation) -{ - uint8NDArray pixels; - Matrix bbox (1, 4, 0.0); - - // FIXME: probably more efficient to only compute bbox instead - // of doing full text rendering... - text_to_pixels (txt, pixels, bbox, halign, valign, rotation); - fake_text(x, y, z, bbox, false); - - return bbox; -} - -void -opengl_selector::draw_image (const image::properties& props) -{ - Matrix xd = props.get_xdata ().matrix_value (); - octave_idx_type nc = props.get_cdata ().columns (); - double x_pix_size = (nc == 1 ? 1 : (xd(1) - xd(0)) / (nc - 1)); - - Matrix yd = props.get_ydata ().matrix_value (); - octave_idx_type nr = props.get_cdata ().rows (); - double y_pix_size = (nr == 1 ? 1 : (yd(1) - yd(0)) / (nr - 1)); - - ColumnVector p1(3, 0.0), p2(3, 0.0), p3(3, 0.0), p4(3, 0.0); - p1(0) = xd(0) - x_pix_size/2; - p1(1) = yd(0) - y_pix_size/2; - - p2(0) = xd(1) + x_pix_size/2; - p2(1) = yd(0) - y_pix_size/2; - - p3(0) = xd(1) + x_pix_size/2; - p3(1) = yd(1) + y_pix_size/2; - - p4(0) = xd(0) - x_pix_size/2; - p4(1) = yd(1) + y_pix_size/2; - - glBegin (GL_QUADS); - glVertex3dv (p1.data ()); - glVertex3dv (p2.data ()); - glVertex3dv (p3.data ()); - glVertex3dv (p4.data ()); - glEnd (); -} - -}