source: Sophya/trunk/SophyaPI/PIGcont/gp_graph3d.h@ 3486

Last change on this file since 3486 was 1844, checked in by ansari, 24 years ago

changement de nom des fichiers (ajout de gp_ ou gpc_ ) pour eviter les confusions - Reza 30/12/2001

File size: 4.4 KB
Line 
1/* GNUPLOT - graph3d.h */
2
3/*[
4 * Copyright 1999 Thomas Williams, Colin Kelley
5 *
6 * Permission to use, copy, and distribute this software and its
7 * documentation for any purpose with or without fee is hereby granted,
8 * provided that the above copyright notice appear in all copies and
9 * that both that copyright notice and this permission notice appear
10 * in supporting documentation.
11 *
12 * Permission to modify the software is granted, but not the right to
13 * distribute the complete modified source code. Modifications are to
14 * be distributed as patches to the released version. Permission to
15 * distribute binaries produced by compiling modified sources is granted,
16 * provided you
17 * 1. distribute the corresponding source modifications from the
18 * released version in the form of a patch file along with the binaries,
19 * 2. add special version identification to distinguish your version
20 * in addition to the base release version number,
21 * 3. provide your name and address as the primary contact for the
22 * support of your modified version, and
23 * 4. retain our contact information in regard to use of the base
24 * software.
25 * Permission to distribute the released version of the source code along
26 * with corresponding source modifications in the form of a patch file is
27 * granted with same provisions 2 through 4 for binary distributions.
28 *
29 * This software is provided "as is" without express or implied warranty
30 * to the extent permitted by applicable law.
31]*/
32
33#ifndef GNUPLOT_GRAPH3D_H
34# define GNUPLOT_GRAPH3D_H
35
36/* #if... / #include / #define collection: */
37
38/***
39#include "syscfg.h"
40
41#include "gadgets.h"
42#include "term_api.h"
43****/
44
45#include <stdio.h>
46#include <stdlib.h>
47#include "gp_types.h"
48#include "gpc_misc.h"
49/* Function macros to map from user 3D space into normalized -1..1 */
50#define map_x3d(x) ((x-X_AXIS.min)*xscale3d-1.0)
51#define map_y3d(y) ((y-Y_AXIS.min)*yscale3d-1.0)
52#define map_z3d(z) ((z-floor_z)*zscale3d-1.0)
53
54/* Type definitions */
55
56typedef enum en_contour_placement {
57 /* Where to place contour maps if at all. */
58 CONTOUR_NONE,
59 CONTOUR_BASE,
60 CONTOUR_SRF,
61 CONTOUR_BOTH
62} t_contour_placement;
63
64typedef double transform_matrix[4][4]; /* HBB 990826: added */
65
66typedef struct gnuplot_contours {
67 struct gnuplot_contours *next;
68 struct coordinate *coords;
69 char isNewLevel;
70 char label[32];
71 int num_pts;
72#ifdef PM3D
73 double z;
74#endif
75} gnuplot_contours;
76
77typedef struct iso_curve {
78 struct iso_curve *next;
79 int p_max; /* how many points are allocated */
80 int p_count; /* count of points in points */
81 struct coordinate *points;
82} iso_curve;
83
84typedef struct surface_points {
85 struct surface_points *next_sp; /* linked list */
86 int token; /* last token nr, for second pass */
87 enum PLOT_TYPE plot_type;
88 enum PLOT_STYLE plot_style;
89 char *title;
90 int title_no_enhanced; /* don't typeset title in enhanced mode */
91 /*struct lp_style_type lp_properties;*/
92 int has_grid_topology;
93
94 /* Data files only - num of isolines read from file. For
95 * functions, num_iso_read is the number of 'primary' isolines (in
96 * x direction) */
97 int num_iso_read;
98 struct gnuplot_contours *contours; /* NULL if not doing contours. */
99 struct iso_curve *iso_crvs; /* the actual data */
100
101#ifdef PM3D_COLUMN
102 int pm3d_color_from_column;
103 coordval color_min;
104 coordval color_max;
105#endif
106
107} surface_points;
108
109/* Variables of graph3d.c needed by other modules: */
110
111extern int xmiddle, ymiddle, xscaler, yscaler;
112extern double floor_z;
113extern double ceiling_z, base_z; /* made exportable for PM3D */
114extern transform_matrix trans_mat;
115extern double xscale3d, yscale3d, zscale3d;
116
117extern t_contour_placement draw_contour;
118extern TBOOLEAN label_contours;
119
120extern TBOOLEAN draw_surface;
121
122/* is hidden3d display wanted? */
123extern TBOOLEAN hidden3d;
124
125extern float surface_rot_z;
126extern float surface_rot_x;
127extern float surface_scale;
128extern float surface_zscale;
129
130extern float ticslevel;
131
132#define ISO_SAMPLES 10 /* default number of isolines per splot */
133extern int iso_samples_1;
134extern int iso_samples_2;
135
136#ifdef USE_MOUSE
137extern int axis3d_o_x, axis3d_o_y, axis3d_x_dx, axis3d_x_dy, axis3d_y_dx, axis3d_y_dy;
138#endif
139
140/* Prototypes from file "graph3d.c" */
141
142void do_3dplot (struct surface_points *plots, int pcount, int quick);
143void map3d_position (struct position * pos, unsigned int *x,
144 unsigned int *y, const char *what);
145
146
147#endif /* GNUPLOT_GRAPH3D_H */
Note: See TracBrowser for help on using the repository browser.