Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/post/src/elmerpost.h
3196 views
1
/*****************************************************************************
2
*
3
* Elmer, A Finite Element Software for Multiphysical Problems
4
*
5
* Copyright 1st April 1995 - , CSC - IT Center for Science Ltd., Finland
6
*
7
* This program is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU General Public License
9
* as published by the Free Software Foundation; either version 2
10
* of the License, or (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program (in file fem/GPL-2); if not, write to the
19
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20
* Boston, MA 02110-1301, USA.
21
*
22
*****************************************************************************/
23
24
/*******************************************************************************
25
*
26
* Main include file of ElmerPost. Mainly includes other include files ;-)
27
*
28
*******************************************************************************
29
*
30
* Author: Juha Ruokolainen
31
*
32
* Address: CSC - IT Center for Science Ltd.
33
* Keilaranta 14, P.O. BOX 405
34
* 02101 Espoo, Finland
35
* Tel. +358 0 457 2723
36
* Telefax: +358 0 457 2302
37
* EMail: [email protected]
38
*
39
* Date: 26 Sep 1995
40
*
41
* Modified by:
42
*
43
* Date of modification:
44
*
45
******************************************************************************/
46
47
#include "../config.h"
48
49
#if defined(WIN32) || defined(MINGW32)
50
#include <windows.h>
51
#endif
52
53
#include <stdlib.h>
54
#include <stdio.h>
55
56
/* #include <malloc.h> */
57
#include <math.h>
58
59
#include <sys/types.h>
60
61
#include <signal.h>
62
63
#include <elmer/matc.h>
64
65
66
#if defined(MINGW32) || defined(WIN32)
67
68
#include "tk/tk.h"
69
70
#endif
71
72
73
#ifdef MODULE_MAIN
74
#define EXT
75
#else
76
#define EXT extern
77
#endif
78
79
#ifndef MIN
80
#define MIN(x,y) ( (x)>(y) ? (y) : (x) )
81
#endif
82
83
#ifndef MAX
84
#define MAX(x,y) ( (x)>(y) ? (x) : (y) )
85
#endif
86
87
#ifndef ABS
88
#define ABS(x) ( (x)>(0) ? (x) : (-(x)) )
89
#endif
90
91
#define FALSE 0
92
#define TRUE 1
93
94
#ifndef DBL_MAX
95
#define DBL_MAX 1.79769313486231570e+308
96
#endif
97
98
#ifndef M_PI
99
#define M_PI (3.1415926535897931)
100
#endif
101
102
typedef unsigned char logical_t;
103
104
typedef struct
105
{
106
char *name;
107
double *f;
108
double min,max;
109
} scalar_t;
110
111
typedef struct
112
{
113
char *name;
114
double *f;
115
double min[3],max[3];
116
} vector_t;
117
118
typedef struct
119
{
120
int VolumeSides;
121
int VolumeEdges;
122
int SurfaceSides;
123
int StereoMode;
124
int OutputPS, FitToPagePS;
125
double StereoTran,StereoRot;
126
} global_options_t;
127
128
#ifdef MODULE_MAIN
129
global_options_t GlobalOptions = { FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,0.03,5.00 };
130
#else
131
extern global_options_t GlobalOptions;
132
#endif
133
134
extern double RealTime(),CPUTime();
135
136
#include "geometry.h"
137
#include "elements/elements.h"
138
#include "graphics/graphics.h"
139
#include "visuals/visual.h"
140
#include "objects/objects.h"
141
#include "camera/camera.h"
142
143
EXT unsigned int epMouseDown,epMouseDownTakesTooLong;
144
EXT double GraphicsAspect;
145
EXT unsigned int GraphicsXSize,GraphicsYSize;
146
147
#ifndef WIN32
148
EXT XFontStruct *CurrentXFont;
149
#endif
150
151
EXT int BreakLoop;
152
153
#ifdef MODULE_MAIN
154
void (*user_hook_before_all)() = NULL;
155
void (*user_hook_after_all)() = NULL;
156
157
void (*user_hook_camera_before)() = NULL;
158
void (*user_hook_camera_after)() = NULL;
159
160
void (*user_hook_object_before)() = NULL;
161
void (*user_hook_object_after)() = NULL;
162
#else
163
extern void (*user_hook_before_all)();
164
extern void (*user_hook_after_all)();
165
166
extern void (*user_hook_camera_before)();
167
extern void (*user_hook_camera_after)();
168
169
extern void (*user_hook_object_before)();
170
extern void (*user_hook_object_after)();
171
#endif
172
173