Reduced usage of typdefs.h
[alexxy/gromacs.git] / src / gromacs / legacyheaders / types / matrix.h
1 /*
2  * This file is part of the GROMACS molecular simulation package.
3  *
4  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
5  * Copyright (c) 2001-2004, The GROMACS development team.
6  * Copyright (c) 2011,2014, by the GROMACS development team, led by
7  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
8  * and including many others, as listed in the AUTHORS file in the
9  * top-level source directory and at http://www.gromacs.org.
10  *
11  * GROMACS is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public License
13  * as published by the Free Software Foundation; either version 2.1
14  * of the License, or (at your option) any later version.
15  *
16  * GROMACS is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19  * Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public
22  * License along with GROMACS; if not, see
23  * http://www.gnu.org/licenses, or write to the Free Software Foundation,
24  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
25  *
26  * If you want to redistribute modifications to GROMACS, please
27  * consider that scientific software is very special. Version
28  * control is crucial - bugs must be traceable. We will be happy to
29  * consider code for inclusion in the official distribution, but
30  * derived work must not be called official GROMACS. Details are found
31  * in the README & COPYING files - if they are missing, get the
32  * official version at http://www.gromacs.org.
33  *
34  * To help us fund GROMACS development, we humbly ask that you cite
35  * the research papers on the package. Check out http://www.gromacs.org.
36  */
37 #ifndef GMX_LEGACYHEADERS_TYPES_MATRIX_H
38 #define GMX_LEGACYHEADERS_TYPES_MATRIX_H
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 #include "../../utility/basedefinitions.h"
45 #include "../../utility/real.h"
46
47 typedef struct {
48     real r, g, b;
49 } t_rgb;
50
51 typedef struct {
52     char c1; /* should all be non-zero (and printable and not '"') */
53     char c2; /*
54               * should all be zero (single char color names: smaller xpm's)
55               * or should all be non-zero (double char color names: more colors)
56               */
57 } t_xpmelmt;
58
59 typedef short t_matelmt;
60
61 typedef struct {
62     t_xpmelmt   code; /* see comment for t_xpmelmt */
63     const char *desc;
64     t_rgb       rgb;
65 } t_mapping;
66
67 #define MAT_SPATIAL_X (1<<0)
68 #define MAT_SPATIAL_Y (1<<1)
69 /* Defines if x and y are spatial dimensions,
70  * when not, there are n axis ticks at the middle of the elements,
71  * when set, there are n+1 axis ticks at the edges of the elements.
72  */
73
74 typedef struct {
75     unsigned int flags; /* The possible flags are defined above */
76     int          nx, ny;
77     int          y0;
78     char         title[256];
79     char         legend[256];
80     char         label_x[256];
81     char         label_y[256];
82     gmx_bool     bDiscrete;
83     real        *axis_x;
84     real        *axis_y;
85     t_matelmt  **matrix;
86     int          nmap;
87     t_mapping   *map;
88 } t_matrix;
89 /* title      matrix title
90  * legend     label for the continuous legend
91  * label_x    label for the x-axis
92  * label_y    label for the y-axis
93  * nx, ny     size of the matrix
94  * axis_x[]   the x-ticklabels
95  * axis_y[]   the y-ticklables
96  * *matrix[]  element x,y is matrix[x][y]
97  * nmap       number of color levels for the output(?)
98  */
99
100 #ifdef __cplusplus
101 }
102 #endif
103
104 #endif