Mercurial > octave
annotate libinterp/corefcn/gl2ps-renderer.h @ 19861:19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Try to wrap long lines to < 80 characters.
Use GNU style and don't indent first brace of function definition.
"case" statement is aligned flush left with brace of switch stmt.
Remove trailing '\' line continuation from the end of #define macros.
Use 2 spaces for indent.
* files-dock-widget.cc, history-dock-widget.cc, main-window.cc, octave-cmd.cc,
octave-dock-widget.cc, octave-gui.cc, resource-manager.cc, settings-dialog.cc,
shortcut-manager.cc, welcome-wizard.cc, workspace-view.cc, cellfun.cc, data.cc,
debug.cc, debug.h, dirfns.cc, error.h, file-io.cc, gl-render.cc, gl-render.h,
gl2ps-renderer.h, graphics.cc, graphics.in.h, help.cc, input.cc, load-path.cc,
load-path.h, lookup.cc, lu.cc, oct-stream.cc, octave-default-image.h,
ordschur.cc, pr-output.cc, qz.cc, strfns.cc, symtab.cc, symtab.h, sysdep.cc,
variables.cc, zfstream.h, __fltk_uigetfile__.cc, __init_fltk__.cc,
__magick_read__.cc, __osmesa_print__.cc, audiodevinfo.cc, ov-classdef.cc,
ov-classdef.h, ov-fcn.h, ov-float.cc, ov-flt-complex.cc, ov-java.cc,
ov-range.cc, ov-re-mat.cc, ov-usr-fcn.h, ov.cc, op-int.h, options-usage.h,
pt-eval.cc, Array-C.cc, Array-fC.cc, Array.cc, Array.h, PermMatrix.cc,
Sparse.cc, chMatrix.h, dSparse.cc, dim-vector.h, bsxfun-decl.h, bsxfun-defs.cc,
oct-norm.cc, Sparse-op-defs.h, oct-inttypes.cc, oct-inttypes.h, main.in.cc,
mkoctfile.in.cc: Cleanup C++ code to follow Octave coding conventions.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 25 Feb 2015 11:55:49 -0800 |
parents | 1a6fa5a523e4 |
children | a20f86786abb |
rev | line source |
---|---|
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
1 /* |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
2 |
19697
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19648
diff
changeset
|
3 Copyright (C) 2009-2015 Shai Ayal |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
4 |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
5 This file is part of Octave. |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
6 |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
7 Octave is free software; you can redistribute it and/or modify it |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
8 under the terms of the GNU General Public License as published by the |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
9 Free Software Foundation; either version 3 of the License, or (at your |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
10 option) any later version. |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
11 |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
12 Octave is distributed in the hope that it will be useful, but WITHOUT |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
15 for more details. |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
16 |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
18 along with Octave; see the file COPYING. If not, see |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
19 <http://www.gnu.org/licenses/>. |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
20 |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
21 */ |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
22 |
17822
ebb3ef964372
maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents:
17797
diff
changeset
|
23 #if !defined (octave_gl2ps_renderer_h) |
ebb3ef964372
maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents:
17797
diff
changeset
|
24 #define octave_gl2ps_renderer_h 1 |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
25 |
19648
16f21db320b5
Fix compilation error when building without gl2ps
Mike Miller <mtmiller@ieee.org>
parents:
19639
diff
changeset
|
26 #include "graphics.h" |
16f21db320b5
Fix compilation error when building without gl2ps
Mike Miller <mtmiller@ieee.org>
parents:
19639
diff
changeset
|
27 |
17797
06a850f83dd4
build: Remove embedded gl2ps. Require gl2ps as external dependency.
Rik <rik@octave.org>
parents:
17787
diff
changeset
|
28 #ifdef HAVE_GL2PS_H |
06a850f83dd4
build: Remove embedded gl2ps. Require gl2ps as external dependency.
Rik <rik@octave.org>
parents:
17787
diff
changeset
|
29 |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
30 #include "gl-render.h" |
17797
06a850f83dd4
build: Remove embedded gl2ps. Require gl2ps as external dependency.
Rik <rik@octave.org>
parents:
17787
diff
changeset
|
31 #include <gl2ps.h> |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
32 |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11584
diff
changeset
|
33 class |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
34 OCTINTERP_API |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
35 glps_renderer : public opengl_renderer |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
36 { |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
37 public: |
14418
933101fd5cbb
Use file descriptor instead of a FILE pointer for OpenGL printing.
John W. Eaton <jwe@octave.org>
parents:
14380
diff
changeset
|
38 glps_renderer (FILE *_fp, const std::string& _term) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
39 : opengl_renderer () , fp (_fp), term (_term), fontsize (), fontname () { } |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
40 |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
41 ~glps_renderer (void) { } |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
42 |
16732
3806afcf974a
Include graphics image file name in latex file for {eps,pdf,ps}latex output.
Ben Abbott <bpabbott@mac.com>
parents:
15195
diff
changeset
|
43 void draw (const graphics_object& go, const std::string print_cmd); |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
44 |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
45 protected: |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
46 |
12323
c8da31f12c1d
avoid using new to create temporary gl2ps_renderer object
John W. Eaton <jwe@octave.org>
parents:
11586
diff
changeset
|
47 Matrix render_text (const std::string& txt, |
c8da31f12c1d
avoid using new to create temporary gl2ps_renderer object
John W. Eaton <jwe@octave.org>
parents:
11586
diff
changeset
|
48 double x, double y, double z, |
c8da31f12c1d
avoid using new to create temporary gl2ps_renderer object
John W. Eaton <jwe@octave.org>
parents:
11586
diff
changeset
|
49 int halign, int valign, double rotation = 0.0); |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
50 |
12323
c8da31f12c1d
avoid using new to create temporary gl2ps_renderer object
John W. Eaton <jwe@octave.org>
parents:
11586
diff
changeset
|
51 void set_font (const base_properties& props); |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
52 |
12323
c8da31f12c1d
avoid using new to create temporary gl2ps_renderer object
John W. Eaton <jwe@octave.org>
parents:
11586
diff
changeset
|
53 void draw_text (const text::properties& props); |
c8da31f12c1d
avoid using new to create temporary gl2ps_renderer object
John W. Eaton <jwe@octave.org>
parents:
11586
diff
changeset
|
54 void draw_pixels (GLsizei w, GLsizei h, GLenum format, |
c8da31f12c1d
avoid using new to create temporary gl2ps_renderer object
John W. Eaton <jwe@octave.org>
parents:
11586
diff
changeset
|
55 GLenum type, const GLvoid *data); |
9950
7dedfd70dd9f
image printing for fltk backend
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9798
diff
changeset
|
56 |
14380
81183cd6eaae
Fix OpenGL printing of dashed lines (Bug #33765).
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
57 void set_linestyle (const std::string& s, bool use_stipple = false) |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
58 { |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
59 opengl_renderer::set_linestyle (s, use_stipple); |
14380
81183cd6eaae
Fix OpenGL printing of dashed lines (Bug #33765).
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
60 |
81183cd6eaae
Fix OpenGL printing of dashed lines (Bug #33765).
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
61 if (s == "-" && ! use_stipple) |
81183cd6eaae
Fix OpenGL printing of dashed lines (Bug #33765).
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
62 gl2psDisable (GL2PS_LINE_STIPPLE); |
81183cd6eaae
Fix OpenGL printing of dashed lines (Bug #33765).
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
63 else |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
64 gl2psEnable (GL2PS_LINE_STIPPLE); |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
65 } |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
66 |
19713
1a6fa5a523e4
Correctly use GL2PS_POLYGON_OFFSET_FILL (bug #44111, bug #44125).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
67 void set_polygon_offset (bool on, float offset = 0.0f) |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
68 { |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
69 if (on) |
19713
1a6fa5a523e4
Correctly use GL2PS_POLYGON_OFFSET_FILL (bug #44111, bug #44125).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
70 { |
1a6fa5a523e4
Correctly use GL2PS_POLYGON_OFFSET_FILL (bug #44111, bug #44125).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
71 opengl_renderer::set_polygon_offset (on, offset); |
1a6fa5a523e4
Correctly use GL2PS_POLYGON_OFFSET_FILL (bug #44111, bug #44125).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
72 gl2psEnable (GL2PS_POLYGON_OFFSET_FILL); |
1a6fa5a523e4
Correctly use GL2PS_POLYGON_OFFSET_FILL (bug #44111, bug #44125).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
73 } |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
74 else |
19713
1a6fa5a523e4
Correctly use GL2PS_POLYGON_OFFSET_FILL (bug #44111, bug #44125).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
75 { |
1a6fa5a523e4
Correctly use GL2PS_POLYGON_OFFSET_FILL (bug #44111, bug #44125).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
76 gl2psDisable (GL2PS_POLYGON_OFFSET_FILL); |
1a6fa5a523e4
Correctly use GL2PS_POLYGON_OFFSET_FILL (bug #44111, bug #44125).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
77 opengl_renderer::set_polygon_offset (on, offset); |
1a6fa5a523e4
Correctly use GL2PS_POLYGON_OFFSET_FILL (bug #44111, bug #44125).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
78 } |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19713
diff
changeset
|
79 } |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
80 |
12323
c8da31f12c1d
avoid using new to create temporary gl2ps_renderer object
John W. Eaton <jwe@octave.org>
parents:
11586
diff
changeset
|
81 void set_linewidth (float w) |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
82 { |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
83 gl2psLineWidth (w); |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
84 } |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
85 |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
86 private: |
11455
2be9e22796d2
improvements in text-extent calculation
Konstantinos Poulios <logari81@googlemail.com>
parents:
10955
diff
changeset
|
87 int alignment_to_mode (int ha, int va) const; |
14418
933101fd5cbb
Use file descriptor instead of a FILE pointer for OpenGL printing.
John W. Eaton <jwe@octave.org>
parents:
14380
diff
changeset
|
88 FILE *fp; |
10857
2224236440c0
add more terminal types to gl2ps-renderer
Shai Ayal <shaiay@users.sourceforge.net>
parents:
10313
diff
changeset
|
89 caseless_str term; |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
90 double fontsize; |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
91 std::string fontname; |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
92 }; |
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
93 |
17797
06a850f83dd4
build: Remove embedded gl2ps. Require gl2ps as external dependency.
Rik <rik@octave.org>
parents:
17787
diff
changeset
|
94 #endif // HAVE_GL2PS_H |
06a850f83dd4
build: Remove embedded gl2ps. Require gl2ps as external dependency.
Rik <rik@octave.org>
parents:
17787
diff
changeset
|
95 |
19639
61cc00ebac60
move opengl printing code from __init_fltk__.cc to gl2ps-renderer.cc
John W. Eaton <jwe@octave.org>
parents:
17822
diff
changeset
|
96 extern OCTINTERP_API void |
61cc00ebac60
move opengl printing code from __init_fltk__.cc to gl2ps-renderer.cc
John W. Eaton <jwe@octave.org>
parents:
17822
diff
changeset
|
97 gl2ps_print (const graphics_object& fig, const std::string& cmd, |
61cc00ebac60
move opengl printing code from __init_fltk__.cc to gl2ps-renderer.cc
John W. Eaton <jwe@octave.org>
parents:
17822
diff
changeset
|
98 const std::string& term); |
61cc00ebac60
move opengl printing code from __init_fltk__.cc to gl2ps-renderer.cc
John W. Eaton <jwe@octave.org>
parents:
17822
diff
changeset
|
99 |
9798
2d6a5af744b6
printing for fltk backend using gl2ps
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
100 #endif |