/usr/include/epix/picture.h is in epix 1.2.18-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | /*
* picture.h -- ePiX globals functions for picture interface
*
* This file is part of ePiX, a C++ library for creating high-quality
* figures in LaTeX
*
* Version 1.1.16
* Last Change: September 11, 2007
*/
/*
* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
* Andrew D. Hwang <rot 13 nujnat at zngupf dot ubylpebff dot rqh>
* Department of Mathematics and Computer Science
* College of the Holy Cross
* Worcester, MA, 01610-2395, USA
*/
/*
* ePiX is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* ePiX is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
* License for more details.
*
* You should have received a copy of the GNU General Public License
* along with ePiX; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef EPIX_PICTURE
#define EPIX_PICTURE
#include <string>
namespace ePiX {
class Color;
class P;
class picture_data;
class screen;
// "global" references
picture_data& the_picture();
double& xmin();
double& xmax();
double& xsize();
double& ymin();
double& ymax();
double& ysize();
double& tix();
// preferred initialization functions
// corners and dimensions, e.g. "4in x 15cm" or "4 x 6in"
// (width units take precedence, dimension string must be passed by value)
void picture(const P& arg1, const P& arg2, std::string);
// same syntax as for picture dimensions
void offset(std::string);
//// Old global functions for manipulating the page markup region ////
void bounding_box(const P&, const P&);
void picture(double, double);
void picture(const P&);
void offset(double hoff, double voff);
void offset(const P& arg);
void unitlength(const std::string& units);
// activate default screen
void begin();
// write the output file
void end_picture();
//// New global functions ////
// the_picture().the_canvas
screen& canvas();
// specify active screen; pass non-const ref only to assign/compare pointer
void activate(screen&);
void deactivate(screen&);
// add active or specified screen to the_picture
void import();
void inset(const P& sw, const P& ne);
void import(const screen& child);
void inset(const screen& child, const P& sw, const P& ne);
void inset(const screen& child); // use child's corners
// interpret child's coordinates as true pt on the page,
// place origin at P
void inlay(const screen& child, const P& loc);
// interpret stated coord as true pt, the other as Cartesian
void inlay_vertical(const screen& child, const P& loc);
void inlay_horizontal(const screen& child, const P& loc);
// set decorations on active screen
void backing(const Color&);
void border(const Color&, double); // width in pt
void border(const Color&, const std::string&);
void backing(); // use current fill style
void border(); // use current line pen
// write verbatim string to output file
void write(const std::string&);
void pre_write(const std::string&); // before picture header
void post_write(const std::string&); // after picture footer
// set output format
void eepic_format();
// void mp_format();
void tikz_format();
void pst_format();
// write in specified format to named output file
void print_eepic(const std::string& filename);
// void print_mp(const std::string& filename);
void print_tikz(const std::string& filename);
void print_pst(const std::string& filename);
// allow user to override in-file format request on the command line
inline void end()
{
#ifdef EPIX_FMT_PSTRICKS
pst_format();
#else
#ifdef EPIX_FMT_TIKZ
tikz_format();
#else
#ifdef EPIX_FMT_EEPIC
eepic_format();
#endif /* EPIX_FMT_EEPIC */
#endif /* EPIX_FMT_TIKZ */
#endif /* EPIX_FMT_PSTRICKS */
end_picture();
}
// for implementors of true-size elements
double pic_units_per_pt(); // exact
double units_per_pic_unit(); // approximate, exact at true aspect ratio
double pt_to_screen(double); // true length to screen length
////////////////////////////////////////////////////////////////
//// ////
//// DEPRECATED global variables required for backward ////
//// compatibility. Will be removed in a future release. ////
//// Use reference functions xmin() et. al. ////
//// ////
////////////////////////////////////////////////////////////////
// bounding_box corners and dimensions
extern double x_min, x_max, x_size, y_min, y_max, y_size;
} // end of namespace
#endif /* EPIX_PICTURE */
|