233 Commits

Author SHA1 Message Date
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
Matthias Hochsteger
22e57a1159 Don't load gui libraries when importing netgen 2022-05-06 10:59:59 +02:00
Matthias Hochsteger
b694b4667a rework build system, separate gui and non-gui code
move fieldlines code to meshing dir

move visualization function pointers to meshing directory

DLL_HEADER -> NGGUI_API in visualization lib

move soldata.hpp to meshing

update occ, no freetype necessary anymore
2022-05-05 14:39:31 +02:00
Matthias Hochsteger
b62c7b30ef DLL_HEADER for fieldline code 2022-04-26 18:44:14 +02:00
Joachim Schoeberl
eef95eed52 more mpi from ngcore 2022-04-26 16:28:52 +02:00
Matthias Hochsteger
d165d67765 fix build 2022-04-25 20:30:27 +02:00
Matthias Hochsteger
9ceb2baeaa make fieldlines code available in non-gui builds 2022-04-25 18:42:26 +02:00
Matthias Hochsteger
5e977e819f refactor fieldlines code 2022-04-19 18:37:15 +02:00
luz paz
4033fac1b3 Fix various typos
Found via `codespell -q 3 -S ./external_dependencies/pybind11 -L alledges,allright,ane,anormal,ans,apoints,ba,boxs,cancle,childs,co-ordinate,co-ordinates,daty,enty,filld,hel,identifyable,ist,linz,lod,ned,nd,selt,statics,suround,thev,thist,thisy,timere,upto,wel`
2022-03-25 18:22:05 -04:00
mhochsteger@cerbsim.com
1a010f2e57 avoid range exceptions if no element is found on double click 2022-02-02 14:26:58 +01:00
mhochsteger@cerbsim.com
deaeeaaac5 show selected point also in solution scene 2022-02-02 14:26:28 +01:00
Christopher Lackner
f04040f409 allow changing number of colors in colorbar 2021-10-06 16:01:48 +02:00
Christopher Lackner
ec96feb7f4 occ colors also in netgen gui, also allow transparency 2021-10-03 12:58:33 +02:00
Matthias Hochsteger
e745d16c6d manually cut view vector with clipping plane (more accurate, also working when visualizing clipping plane vectors) 2021-01-13 16:48:16 +01:00
Christopher Lackner
b7fab39876 formatting of vector and complex output on click 2021-01-13 13:24:38 +01:00
Matthias Hochsteger
36aa8658b7 Print function names and surface/volume evaluation 2021-01-13 10:58:13 +01:00
Matthias Hochsteger
e5d339ed99 Print function value on double click 2021-01-08 08:30:47 +01:00
Matthias Hochsteger
94ecf8de92 Fix private linking of Python
The CMake export of Interface libraries also exports PRIVATE build
settings, which leads to build errors with non-existing include paths and .lib files for binary distributions.

Use the work-around mentioned here to circumvent this behavior:
https://gitlab.kitware.com/cmake/cmake/-/issues/15415#note_849405
2020-12-18 11:05:10 +01:00
Matthias Hochsteger
2d667a08dc move (refactored) SIMD headers from ngsolve into ngcore 2020-12-11 20:54:41 +01:00
Matthias Hochsteger
00ce0a2769 DLL_HEADER for UserVisualizationObject functions 2020-09-09 11:58:38 +02:00
Joachim Schöberl
ad525cbfb9 fix warning 2020-05-26 20:58:24 +02:00
Matthias Hochsteger
dff550a48c Curve new elements in HPRefinement
Use correct check for curvature of TRIGs in VSSolution
2020-02-11 14:42:16 +01:00
Joachim Schöberl
bac288ab56 remove double-click test-output 2020-01-29 18:19:19 +01:00
Matthias Hochsteger
2620f90f32 Redraw(blocking=True) always issues a redraw 2020-01-27 17:05:21 +01:00
Matthias Hochsteger
c8901ba46b cleanup in Snapshot() 2019-12-13 10:20:19 +01:00
Matthias Hochsteger
d6095e9364 Move global visual scene from ngpkg.cpp to mvdraw.cpp
... so it is available in Snapshot()
also rename the global variables:
vs -> visual_scene
vscross -> visual_scene_cross
2019-12-10 12:21:29 +01:00
Matthias Hochsteger
245da0ee87 Move Redraw() function from NGSolve to Netgen
- used in Snapshot
2019-12-10 12:21:29 +01:00
Matthias Hochsteger
64b1331c23 Fix build errors on Macos
- Include opengl3 headers
- Remove unneeded Opengl4.5 function call
2019-12-10 12:21:29 +01:00
Matthias Hochsteger
52b3e807a5 New Snapshot function (custom resolution) 2019-12-10 12:21:29 +01:00
Matthias Hochsteger
05e6456ec2 Vec3d to Vec<3>, comparison operator for Vec<> 2019-11-27 14:47:24 +01:00
Matthias Hochsteger
f3d9d3ad67 [cmake] Don't link python libraries in unix-conda environment
Conda links python libs statically to python executable
2019-11-26 19:26:18 +00:00
Joachim Schöberl
2bd9acdd9e delete user-vis 2019-10-11 22:23:25 +02:00
Joachim Schöberl
b65d63cf11 static array 2019-10-10 07:38:32 +02:00
Christopher Lackner
bf217b9934 change PointNd to Point<N> adfront2 2019-09-29 16:22:00 +02:00
Christopher Lackner
4eb7c1860c allow 2d plainview to be moved using meta key 2019-09-22 14:37:14 +02:00
Christopher Lackner
cd78f0e440 draw stl meshing 2d local coordinates 2019-09-21 22:08:35 +02:00
Matthias Hochsteger
1584da69ae Rename BitArray to NgBitArray 2019-08-28 14:04:05 +02:00
Joachim Schöberl
5ada92bcdb little polish 2019-08-21 18:38:26 +02:00
Joachim Schöberl
9118ddc63a preparations to switch T_POINTS to ngcore::Array 2019-08-09 15:30:58 +02:00
Joachim Schöberl
b03705c37d more use of Index types 2019-08-09 00:23:12 +02:00
Joachim Schöberl
e8960ebae1 use ngscore::Array for surface elements 2019-08-08 08:44:59 +02:00
Joachim Schöberl
bcc15fbc30 use PointIndex::INVALID 2019-08-07 18:34:43 +02:00
Christopher Lackner
dc8d96aefa move flags to ngcore 2019-08-06 14:16:13 +02:00
Matthias Hochsteger
c5acbacadb Rename ArrayMem to NgArrayMem 2019-07-09 18:00:12 +02:00
Matthias Hochsteger
2d46d21a52 Rename FlatArray to NgFlatArray 2019-07-09 10:40:35 +02:00
Matthias Hochsteger
cb87362f64 Rename Array to NgArray 2019-07-09 10:39:16 +02:00
Matthias Hochsteger
4aadd29dfc [cmake] Fix libraries privately 2019-06-30 00:54:31 +02:00
Joachim Schöberl
aeea67bc09 fix clipping plane isolines 2019-05-16 09:36:32 +02:00
Joachim Schöberl
f070ac4daf remove detail timers 2019-04-20 10:25:28 +02:00
Joachim Schöberl
e220a252d1 fixes for tet10 and trig6 elements (is_curved, clipping-plane vis) 2019-04-14 07:55:38 +02:00