Monty Montgomery
de7ffc5906
Eliminate a "C++ initialization order fiasco" for geometryregister
...
Current initialization of the global geometryregister suffers from a
classic 'initialization order fiasco'. Depending on the order the
compilation units are loaded/linked, the initialization of the global
geometryregisterarray is not guaranteed to happen (and indeed often
does not happen) before it is used. This leads to entries being
appended before it's initialized (usually 'suceeding, but potentially
causing memory corruption if the segment at that point isn't zeroed),
initialization then happening halfway through (wiping the initial
entries) and then the last entries being the only ones that show up.
The net effect is either a crash at startup, or several geometry types
seeming to be missing. Eg, step files will oad, but STL files are
just ignored. The bug is actively observed on, eg, Linux.
This patch implements a simple 'initialize at first access' convention
for the array, eliminating the ordering problem.
I've not reviewed the rest of the source for other potential examples
of the fiasco pattern; this fixes only the geometryregister, since
that was actively biting.
2022-05-22 11:29:10 -04:00
mhochsteger@cerbsim.com
cf59f297a7
use std::filesystem::path
2022-02-23 11:56:00 +01:00
Christopher Lackner
bd29763b16
Add std::any to py::object caster for archive registered types
2021-09-28 22:34:11 +02:00
Christopher Lackner
1b1c4700ad
geo GetNormal and ProjectPointEdge with geoinfo pointer
2019-11-04 11:27:01 +01:00
Christopher Lackner
6c012675aa
project point without geominfo returns new geominfo
2019-10-31 17:08:29 +01:00
Matthias Hochsteger
8659e5a3ee
some thread-safe STLGeometry projection functions
2019-10-18 13:40:53 +02:00
Matthias Hochsteger
4d98a6eb8c
STLGeometry::GetNormal only valid with PointGeomInfo
2019-10-07 15:17:03 +02:00
Matthias Hochsteger
562800babc
Clean up STLGeometry
2019-10-07 15:17:03 +02:00
Christopher Lackner
05881c0eb5
refactor a lot of the old code, stl still needs to be done
2019-10-07 15:17:03 +02:00
Matthias Hochsteger
4deffe6cbe
Button to write selected chart to separate .stlb file
2019-09-24 13:09:49 +02:00
Joachim Schöberl
c180b37ea8
more STL*Id
2019-09-22 13:15:53 +02:00
Joachim Schöberl
5332762b96
STLPointId ...
2019-09-21 02:04:50 +02:00
Joachim Schöberl
9b13bde72b
more STLPointId ...
2019-09-21 02:04:50 +02:00
Joachim Schöberl
61c9e669c3
use Point/Trig/Chart-Id in stl-meshing, more to come
2019-09-21 02:04:49 +02:00
Christopher Lackner
0e3636436d
dll header
2019-08-06 20:45:15 +02:00
Christopher Lackner
fd42f24d37
remove any again
2019-08-06 20:03:17 +02:00
Christopher Lackner
1bc2e1f5a7
global stl parameters only visible in nglib, stlparameters from python
2019-08-06 12:16:30 +02:00
Christopher Lackner
fc1a3da429
meshingparameter only visible in nglib and const ref to funcs
2019-08-06 10:42:53 +02:00
Christopher Lackner
218bd4c5d2
start work on stlparam from python, strange bad any cast exception
2019-08-02 16:22:53 +02:00
Matthias Hochsteger
cb87362f64
Rename Array to NgArray
2019-07-09 10:39:16 +02:00
Christopher Lackner
099acc9fa1
pickling for all geometry types
2018-12-14 12:01:58 +01:00
Joachim Schöberl
d7bf88e0cd
modernize STL-meshing
2018-07-29 12:03:56 +02:00
luz.paz
58002505bc
Typos
...
Found via `codespell`
2018-01-14 12:18:54 -05:00
Joachim Schöberl
af57dd1b72
improve STL makeatlas: searchtree, templetize searchtree
2017-11-10 13:22:20 +01:00
Joachim Schöberl
59dc0b6c6a
Array::Append does not return size anymore ( will be changed to last )
2016-12-11 18:22:07 +01:00
Christopher Lackner
7e4892a9e7
firststep and laststep as meshingparameters to be exported to python
2016-12-05 13:50:21 +01:00
Joachim Schöberl
5c22bd08c3
fixes for c++11 threads
2016-02-29 11:23:37 +01:00
Matthias Hochsteger
1b4f596446
get rid of OpenMP
2016-02-22 18:44:00 +01:00
Joachim Schoeberl
4dda85ac90
python, shared ptr
2014-09-25 20:23:31 +00:00
Joachim Schoeberl
f7e2953ad9
remove some warnings
2014-08-15 15:19:10 +00:00
Joachim Schoeberl
f82ea24a8a
second order elements with STL
2013-11-18 09:16:11 +00:00
Joachim Schoeberl
58cfeebca8
changed starting edge for smooth faces (for proteins)
2013-11-14 16:57:22 +00:00
Joachim Schoeberl
3d7092e8b3
fix LoadGeometry in nglib (geom2d, stl)
2013-01-17 12:41:57 +00:00
Joachim Schoeberl
c7fb4b676f
improvements for STL meshing
2012-10-22 13:13:57 +00:00
Joachim Schoeberl
052ef5db85
stl meshing
2012-10-19 08:42:19 +00:00
Joachim Schoeberl
807d091d9e
header files
2011-02-28 14:17:25 +00:00
Joachim Schoeberl
b95acb082c
geometry restructuring
2011-01-10 20:18:01 +00:00
Joachim Schoeberl
670509b52b
baseclass NetgenGeometry
2009-08-25 14:00:20 +00:00
Joachim Schoeberl
611a53801d
vector/matrix access, small optimization in CalcTetBadness
2009-06-06 19:33:32 +00:00
Joachim Schoeberl
91d5c9888d
ARRAY -> Array
2009-01-25 12:35:25 +00:00
Joachim Schoeberl
310cb00b13
autotools
2009-01-12 23:40:13 +00:00