-
Notifications
You must be signed in to change notification settings - Fork 7
/
visualization.h
172 lines (153 loc) · 5.48 KB
/
visualization.h
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
171
172
///////////////////////////////////////////////////////////////////////////////
///
/// \file visualization.c
///
/// \brief Visulization features
///
/// \author Wangda Zuo
/// University of Miami
///
/// \date 8/3/2013
///
///////////////////////////////////////////////////////////////////////////////
#ifndef _VISUALIZATION_H
#define _VISUALIZATION_H
#endif
#ifndef _DATA_STRUCTURE_H
#define _DATA_STRUCTURE_H
#include "data_structure.h"
#endif
#ifndef _DATA_WRITER_H
#define _DATA_WRITER_H
#include "data_writer.h"
#endif
#ifndef _INITIALIZATION_H
#define _INITIALIZATION_H
#include "initialization.h"
#endif
#ifndef _SOLVER_H
#define _SOLVER_H
#include "solver.h"
#endif
#ifndef _UTILITY_H
#define _UTILITY_H
#include "utility.h"
#endif
///////////////////////////////////////////////////////////////////////////////
/// OpenGL specific drawing routines for a 2D plane
///
///\param para Pointer to FFD parameters
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void pre_2d_display(PARA_DATA *para);
///////////////////////////////////////////////////////////////////////////////
/// Function after the display
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void post_display(void);
///////////////////////////////////////////////////////////////////////////////
/// FFD routines for GLUT display callback routines
///
///\param para Pointer to FFD parameters
///\param var Pointer to all variables
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void ffd_display_func(PARA_DATA *para, REAL **var);
///////////////////////////////////////////////////////////////////////////////
/// FFD routine for GLUT idle callback
///
///\param para Pointer to FFD parameters
///\param var Pointer to all variables
///\param BINDEX Pointer to bounary index
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void ffd_idle_func(PARA_DATA *para, REAL **var, int **BINDEX);
///////////////////////////////////////////////////////////////////////////////
/// FFD routines for GLUT keyboard callback routines
///
///\param para Pointer to FFD parameters
///\param var Pointer to all variables
///\param BINDEX Pointer to bounary index
///\param key Character of the key
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void ffd_key_func(PARA_DATA *para, REAL **var, int **BINDEX,
unsigned char key);
///////////////////////////////////////////////////////////////////////////////
/// FFD routines for GLUT mouse callback routines
///
///\param para Pointer to FFD parameters
///\param button Button of the mouse
///\param state State of the button
///\param x X-coordinate
///\param y Y-coordinate
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void ffd_mouse_func(PARA_DATA *para, int button, int state, int x, int y);
///////////////////////////////////////////////////////////////////////////////
/// FFD routines for setting the position
///
///\param para Pointer to FFD parameters
///\param x X-coordinate
///\param y Y-coordinate
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void ffd_motion_func(PARA_DATA *para, int x, int y);
///////////////////////////////////////////////////////////////////////////////
/// FFD routines for reshaping the window
///
///\param para Pointer to FFD parameters
///\param width Width of the window
///\param height Height of the window
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void ffd_reshape_func(PARA_DATA *para, int width, int height);
///////////////////////////////////////////////////////////////////////////////
/// Relate mouse movements to forces & sources in XY plane
///
///\param para Pointer to FFD parameters
///\param var Pointer to all variables
///\param k K-index of the plane
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void get_xy_UI(PARA_DATA *para, REAL **var, int k);
///////////////////////////////////////////////////////////////////////////////
/// Draw density distribution in XY plane
///
///\param para Pointer to FFD parameters
///\param var Pointer to all variables
///\param k K-index of the plane
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void draw_xy_density(PARA_DATA *para, REAL **var, int k);
///////////////////////////////////////////////////////////////////////////////
/// Draw temperature contour in XY plane
///
///\param para Pointer to FFD parameters
///\param var Pointer to all variables
///\param k K-index of the plane
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void draw_xy_temperature(PARA_DATA *para, REAL **var, int k);
///////////////////////////////////////////////////////////////////////////////
/// Draw velocity in XY plane
///
///\param para Pointer to FFD parameters
///\param var Pointer to all variables
///\param k K-index of the plane
///
///\return No return needed
///////////////////////////////////////////////////////////////////////////////
void draw_xy_velocity(PARA_DATA *para, REAL **var, int k);