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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
|
$Id: TODO,v 1.91 2005/03/14 21:19:32 geuzaine Exp $
********************************************************************
add a mode to pick a mesh element with the mouse (a la medit)
********************************************************************
add option to cutmesh to cap the mesh instead of displaying "whole"
elements
********************************************************************
use inria's mesh and solution file formats?
********************************************************************
add general extrusion along parametric curve
********************************************************************
add option to draw "filled isos" using 1D textures?
********************************************************************
add GUI for
- translate+rotate extrusions
- mesh extrusion (layer stuff)
********************************************************************
add vertex arrays for isolines in post-pro
********************************************************************
Labels:
- add dynamic variables? E.g., if a string contains %string.string,
replace it dynamically in Draw_Text2D/3D by calling
Get_OptionsCategory/Get_OptionValue. (provide a global option to
disable all replacements)
- position with the mouse
- select/move once positioned?
- add ability to add arrows
********************************************************************
Add a "bitmap" object in the views, e.g. to add a logo
********************************************************************
reduce cpu during 'sleep' by using small 'usleep' calls instead of a
simple while(1) loop
********************************************************************
add an option to enable lighting of wireframe plots?
********************************************************************
keep a table (stack) with the N last file positions when add_infile()
is called; we could then easily implement a simple (but real) UNDO
strategy
********************************************************************
add an interactive way to choose the orientation of surfaces in
surface loops and lines in line loops
(To make things simple, all line loops should be oriented "aire a
gauche", and all surface loops whould be oriented with exterior
normals...)
********************************************************************
template the view handling/drawing routines so that we can actually
use post-pro files with float values (50% file savings can be nice
for very large maps; would bring the format up to par with an
index-based format)
********************************************************************
Test and reintroduce the cylindrical surfaces (cylinder, cone, torus)
********************************************************************
fix the orientation of hexas, prisms and pyramids (reorder nodes
according to Orientation())
********************************************************************
add parameter to transformation operations to copy the meshes
********************************************************************
add transformations on volumes
********************************************************************
add/restore Parametric curve type (use MathEval!)
********************************************************************
add ternary operator and <,>,<=,>=,== tests in MathEval
********************************************************************
on Macs, datasets with a bounding box < 1.e-06 don't display properly
(probably because all the OpenGL stuff is done ineternally in single
precision...). Rescale?
********************************************************************
add the capability to mesh some entities using 1st order and some
other using 2nd order elements (in the same geometry)?
<gerard.fleury@inrs.fr>
********************************************************************
find a better way to display the time/timestep in the scale... (would
be solved if we had dynamic labels)
********************************************************************
make Recombine work the same as "Second order"? (i.e., allow for
interactive use?)
********************************************************************
The "Symmetry" operation should be renamed "Reflection" (?)
********************************************************************
Attractors in the 2D aniso algo are extremely buggy
********************************************************************
Memory leaks, memory leaks
- in the old 2D code: mesh_domain()...
- check all calls to Tree_Replace: we shouldn't use it with trees of
pointers, since we loose the original pointer when we actually do a
'replace'
- check all calls to Tree_Insert, and test the return value (if we
don't do the insert, free the data!)
********************************************************************
Rewrite the geometry module in C++: we should have
Point.cpp
Curve.cpp
Surface.cpp
Volume.cpp
It's much shorter than one may think. We could just keep a C interface
like in Vertex.cpp and Simplex.cpp.
********************************************************************
Rewrite the View and ColorTable interface in C++
********************************************************************
Include Tetgen (the same way we did it with Triangle--the license is
the same).
********************************************************************
Include the 2D Netgen algorithms and improve the integration of the 3D
algorithm (would be nice to have automatic exterior orientation of
surfaces...)
********************************************************************
All surface meshes are made in a mean plane. If your surface cannot be
projected into a plane with a 1-to-1 correspondance between the nodes,
then gmsh will fail.
We should definitely use a better projection algorithm
(e.g. intrinstic parameterization). See the work by Desbrun et al. in
CS for this.
********************************************************************
post-processing file format:
- add an integer per simplex (region num)?
- add a format similar to the msh format (node list + simplex list)?
- add a structured format?
...or implement one of the "industry-standard" formats?
********************************************************************
Create "Volume visualization" range type? (interpolate on regular grid
+ create cut planes // to viewpoint with transparency; can be done in
a straightforward way or using 3D textures)
********************************************************************
Yves Krahenbuhl wrote:
> Lors de la creation des elements du 2eme ordre, et selon la courbure
> du contour exterieur, le jacobien de l'element peut devenir negatif.
> Cependant le programme genere le maillage sans protester. Il
> faudrait peut-etre faire apparaitre un message d'erreurs / ou se
> restreindre (automatiquement ou non) a une interpolation lineaire
> entre les points en question.
********************************************************************
Pb avec View->Reload si plusieurs vues dans le meme fichier
> > Hmm, je viens de tester sous Linux et je n'arrive pas a reproduire le
> > bug. A moins que... Aurais-tu toutes tes vues stockees dans le meme
> > fichier ? Car 'reload' relit simplement le fichier duquel provient la
> > vue (et il le relit entierement).
>
> Tout a fait, toutes les vues sont dans un fichier unique.
C'est de la que vient le probleme. Le 'reload' recharge en fait le
fichier duquel provient la vue, en *forcant* sa position dans la liste
des vues chargees. Si le fichier contient plusieurs vues, il va
recharger la premiere, lui affecter la position de celle que tu veux
recharger, puis la deuxieme, en lui affectant le meme position, et
ainsi de suite. Ca fait donc un supeeer memory leak : tu recharges
bien toutes les vues, mais tu ne sais acceder qu'a la derniere... Pour
corriger ca, il faudrait que l'on garde comme info supplementaire dans
chaque vue quelle etait sa position dans le fichier.
|