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
|
/*
* constants.h -- ePiX's hidden compile-time constants
*
* This file is part of ePiX, a C++ library for creating high-quality
* figures in LaTeX
*
* Version 1.1.15
* Last Change: September 08, 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.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef EPIX_CONSTANTS
#define EPIX_CONSTANTS
#include "length.h"
namespace ePiX {
// See lengths.cc for units conversion factors
//// Style Parameters -- min, default, max ////
// standard pen widths
const length PLAIN_WIDTH("0.4pt");
const length BOLD_WIDTH("0.8pt");
const length BBOLD_WIDTH("1.2pt");
// dot diam in pt
const double MIN_DOT(1);
const double AVG_DOT(4);
const double MAX_DOT(36);
// page length of dash pattern in pt
const double MIN_SEP(4);
const double AVG_SEP(12);
const double MAX_SEP(36);
// axis tick half-lengths
const double MIN_TICK(1);
const double AVG_TICK(3);
const double MAX_TICK(8);
// arrow head parameters
const double MIN_AWIDTH(1);
const double AVG_AWIDTH(3);
const double MAX_AWIDTH(12);
const double MIN_ARATIO(1);
const double AVG_ARATIO(5.5);
const double MAX_ARATIO(8);
const double MIN_INSET(-1);
const double AVG_INSET(0);
const double MAX_INSET(0.95); // not 1, so head can be hatched
// too small/large
const double EPIX_EPSILON(0.0001); // 10^-4 (prints as decimal)
const double EPIX_INFTY(100000.0); // 10^5
// Numerical constants
const double PI_180(0.01745329251994329577);
const double TWO_PI(6.28318530717958647692);
// smallest distance from camera to clipping plane
const double MIN_CLIP(0.01);
// No more than this many minor ticks per segment in log axis
const unsigned int MAX_LOG_BASE(100);
// For output
const unsigned int DEF_PRECISION(6);
const unsigned int MAX_PRECISION(20);
// In calculus plotting, the interval between adjacent points is too large
// for accuracy. Divide each such interval into this many subintervals
const unsigned int EPIX_ITERATIONS(200);
// Output-formatting constants:
const unsigned int EPIX_NUM_PTS(120); // # of points in ellipses, splines
const unsigned int EPIX_FILE_WIDTH(70); // Width of output file
} // end of namespace
#endif /* EPIX_CONSTANTS */
|