Icons are changed
[gnuplot] / src / contour.h
1 /*
2  * $Id: contour.h,v 1.9 2004/08/09 00:51:29 sfeam Exp $
3  */
4
5 /* GNUPLOT - contour.h */
6
7 /*[
8  * Copyright 1999, 2004   Thomas Williams, Colin Kelley
9  *
10  * Permission to use, copy, and distribute this software and its
11  * documentation for any purpose with or without fee is hereby granted,
12  * provided that the above copyright notice appear in all copies and
13  * that both that copyright notice and this permission notice appear
14  * in supporting documentation.
15  *
16  * Permission to modify the software is granted, but not the right to
17  * distribute the complete modified source code.  Modifications are to
18  * be distributed as patches to the released version.  Permission to
19  * distribute binaries produced by compiling modified sources is granted,
20  * provided you
21  *   1. distribute the corresponding source modifications from the
22  *    released version in the form of a patch file along with the binaries,
23  *   2. add special version identification to distinguish your version
24  *    in addition to the base release version number,
25  *   3. provide your name and address as the primary contact for the
26  *    support of your modified version, and
27  *   4. retain our contact information in regard to use of the base
28  *    software.
29  * Permission to distribute the released version of the source code along
30  * with corresponding source modifications in the form of a patch file is
31  * granted with same provisions 2 through 4 for binary distributions.
32  *
33  * This software is provided "as is" without express or implied warranty
34  * to the extent permitted by applicable law.
35 ]*/
36
37 #ifndef GNUPLOT_CONTOUR_H
38 # define GNUPLOT_CONTOUR_H
39
40 /* #if... / #include / #define collection: */
41
42 #include "syscfg.h"
43 #include "gp_types.h"
44
45 #include "dynarray.h"
46 #include "graph3d.h"
47
48 #define DEFAULT_CONTOUR_LEVELS 5
49 #define DEFAULT_NUM_APPROX_PTS 5
50 #define DEFAULT_CONTOUR_ORDER  4
51 #define MAX_BSPLINE_ORDER      10
52
53 /* Type definitions */
54
55 typedef enum en_contour_kind {
56     /* Method of drawing the contour lines found */
57     CONTOUR_KIND_LINEAR,
58     CONTOUR_KIND_CUBIC_SPL,
59     CONTOUR_KIND_BSPLINE
60 } t_contour_kind;
61
62 typedef enum en_contour_levels_kind {
63     /* How contour levels are set */
64     LEVELS_AUTO,                /* automatically selected */
65     LEVELS_INCREMENTAL,         /* user specified start & incremnet */
66     LEVELS_DISCRETE             /* user specified discrete levels */
67 } t_contour_levels_kind;
68
69
70 /* Used to allocate the tri-diag matrix. */
71 typedef double tri_diag[3];
72
73 /* Variables of contour.c needed by other modules: */
74
75 extern char contour_format[32];
76 extern t_contour_kind contour_kind;
77 extern t_contour_levels_kind contour_levels_kind;
78 extern int contour_levels;
79 extern int contour_order;
80 extern int contour_pts;
81
82 /* storage for z levels to draw contours at */
83 extern dynarray dyn_contour_levels_list;
84 #define contour_levels_list ((double *)dyn_contour_levels_list.v)
85
86 /* Prototypes of functions exported by contour.c */
87
88 struct gnuplot_contours *contour __PROTO((int num_isolines, struct iso_curve *iso_lines));
89 int solve_tri_diag __PROTO((tri_diag m[], double r[], double x[], int n));
90
91
92 #endif /* GNUPLOT_CONTOUR_H */