netgen-mesher 6.2.2506.post35.dev0__cp314-cp314-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. netgen/NgOCC.py +7 -0
  2. netgen/__init__.py +114 -0
  3. netgen/__init__.pyi +22 -0
  4. netgen/__main__.py +53 -0
  5. netgen/cmake/NetgenConfig.cmake +79 -0
  6. netgen/cmake/netgen-targets-release.cmake +69 -0
  7. netgen/cmake/netgen-targets.cmake +146 -0
  8. netgen/config/__init__.py +1 -0
  9. netgen/config/__init__.pyi +52 -0
  10. netgen/config/__main__.py +4 -0
  11. netgen/config/config.py +68 -0
  12. netgen/config/config.pyi +54 -0
  13. netgen/csg.py +25 -0
  14. netgen/geom2d.py +178 -0
  15. netgen/gui.py +82 -0
  16. netgen/include/core/archive.hpp +1256 -0
  17. netgen/include/core/array.hpp +1760 -0
  18. netgen/include/core/autodiff.hpp +1131 -0
  19. netgen/include/core/autodiffdiff.hpp +733 -0
  20. netgen/include/core/bitarray.hpp +240 -0
  21. netgen/include/core/concurrentqueue.h +3619 -0
  22. netgen/include/core/exception.hpp +145 -0
  23. netgen/include/core/flags.hpp +199 -0
  24. netgen/include/core/hashtable.hpp +1281 -0
  25. netgen/include/core/localheap.hpp +318 -0
  26. netgen/include/core/logging.hpp +117 -0
  27. netgen/include/core/memtracer.hpp +221 -0
  28. netgen/include/core/mpi4py_pycapi.h +245 -0
  29. netgen/include/core/mpi_wrapper.hpp +643 -0
  30. netgen/include/core/ng_mpi.hpp +94 -0
  31. netgen/include/core/ng_mpi_generated_declarations.hpp +155 -0
  32. netgen/include/core/ng_mpi_native.hpp +25 -0
  33. netgen/include/core/ngcore.hpp +32 -0
  34. netgen/include/core/ngcore_api.hpp +152 -0
  35. netgen/include/core/ngstream.hpp +115 -0
  36. netgen/include/core/paje_trace.hpp +279 -0
  37. netgen/include/core/profiler.hpp +382 -0
  38. netgen/include/core/python_ngcore.hpp +457 -0
  39. netgen/include/core/ranges.hpp +109 -0
  40. netgen/include/core/register_archive.hpp +100 -0
  41. netgen/include/core/signal.hpp +82 -0
  42. netgen/include/core/simd.hpp +160 -0
  43. netgen/include/core/simd_arm64.hpp +407 -0
  44. netgen/include/core/simd_avx.hpp +394 -0
  45. netgen/include/core/simd_avx512.hpp +285 -0
  46. netgen/include/core/simd_generic.hpp +1053 -0
  47. netgen/include/core/simd_math.hpp +178 -0
  48. netgen/include/core/simd_sse.hpp +289 -0
  49. netgen/include/core/statushandler.hpp +37 -0
  50. netgen/include/core/symboltable.hpp +153 -0
  51. netgen/include/core/table.hpp +810 -0
  52. netgen/include/core/taskmanager.hpp +1161 -0
  53. netgen/include/core/type_traits.hpp +65 -0
  54. netgen/include/core/utils.hpp +385 -0
  55. netgen/include/core/version.hpp +102 -0
  56. netgen/include/core/xbool.hpp +47 -0
  57. netgen/include/csg/algprim.hpp +563 -0
  58. netgen/include/csg/brick.hpp +150 -0
  59. netgen/include/csg/csg.hpp +43 -0
  60. netgen/include/csg/csgeom.hpp +389 -0
  61. netgen/include/csg/csgparser.hpp +101 -0
  62. netgen/include/csg/curve2d.hpp +67 -0
  63. netgen/include/csg/edgeflw.hpp +112 -0
  64. netgen/include/csg/explicitcurve2d.hpp +113 -0
  65. netgen/include/csg/extrusion.hpp +185 -0
  66. netgen/include/csg/gencyl.hpp +70 -0
  67. netgen/include/csg/geoml.hpp +16 -0
  68. netgen/include/csg/identify.hpp +213 -0
  69. netgen/include/csg/manifold.hpp +29 -0
  70. netgen/include/csg/meshsurf.hpp +46 -0
  71. netgen/include/csg/polyhedra.hpp +121 -0
  72. netgen/include/csg/revolution.hpp +180 -0
  73. netgen/include/csg/singularref.hpp +84 -0
  74. netgen/include/csg/solid.hpp +295 -0
  75. netgen/include/csg/specpoin.hpp +194 -0
  76. netgen/include/csg/spline3d.hpp +99 -0
  77. netgen/include/csg/splinesurface.hpp +85 -0
  78. netgen/include/csg/surface.hpp +394 -0
  79. netgen/include/csg/triapprox.hpp +63 -0
  80. netgen/include/csg/vscsg.hpp +34 -0
  81. netgen/include/general/autodiff.hpp +356 -0
  82. netgen/include/general/autoptr.hpp +39 -0
  83. netgen/include/general/gzstream.h +121 -0
  84. netgen/include/general/hashtabl.hpp +1692 -0
  85. netgen/include/general/myadt.hpp +48 -0
  86. netgen/include/general/mystring.hpp +226 -0
  87. netgen/include/general/netgenout.hpp +205 -0
  88. netgen/include/general/ngarray.hpp +797 -0
  89. netgen/include/general/ngbitarray.hpp +149 -0
  90. netgen/include/general/ngpython.hpp +74 -0
  91. netgen/include/general/optmem.hpp +44 -0
  92. netgen/include/general/parthreads.hpp +138 -0
  93. netgen/include/general/seti.hpp +50 -0
  94. netgen/include/general/sort.hpp +47 -0
  95. netgen/include/general/spbita2d.hpp +59 -0
  96. netgen/include/general/stack.hpp +114 -0
  97. netgen/include/general/table.hpp +280 -0
  98. netgen/include/general/template.hpp +509 -0
  99. netgen/include/geom2d/csg2d.hpp +750 -0
  100. netgen/include/geom2d/geometry2d.hpp +280 -0
  101. netgen/include/geom2d/spline2d.hpp +234 -0
  102. netgen/include/geom2d/vsgeom2d.hpp +28 -0
  103. netgen/include/gprim/adtree.hpp +1392 -0
  104. netgen/include/gprim/geom2d.hpp +858 -0
  105. netgen/include/gprim/geom3d.hpp +749 -0
  106. netgen/include/gprim/geomfuncs.hpp +212 -0
  107. netgen/include/gprim/geomobjects.hpp +544 -0
  108. netgen/include/gprim/geomops.hpp +404 -0
  109. netgen/include/gprim/geomtest3d.hpp +101 -0
  110. netgen/include/gprim/gprim.hpp +33 -0
  111. netgen/include/gprim/spline.hpp +778 -0
  112. netgen/include/gprim/splinegeometry.hpp +73 -0
  113. netgen/include/gprim/transform3d.hpp +216 -0
  114. netgen/include/include/acisgeom.hpp +3 -0
  115. netgen/include/include/csg.hpp +1 -0
  116. netgen/include/include/geometry2d.hpp +1 -0
  117. netgen/include/include/gprim.hpp +1 -0
  118. netgen/include/include/incopengl.hpp +62 -0
  119. netgen/include/include/inctcl.hpp +13 -0
  120. netgen/include/include/incvis.hpp +6 -0
  121. netgen/include/include/linalg.hpp +1 -0
  122. netgen/include/include/meshing.hpp +1 -0
  123. netgen/include/include/myadt.hpp +1 -0
  124. netgen/include/include/mydefs.hpp +70 -0
  125. netgen/include/include/mystdlib.h +59 -0
  126. netgen/include/include/netgen_config.hpp +27 -0
  127. netgen/include/include/netgen_version.hpp +9 -0
  128. netgen/include/include/nginterface_v2_impl.hpp +395 -0
  129. netgen/include/include/ngsimd.hpp +1 -0
  130. netgen/include/include/occgeom.hpp +1 -0
  131. netgen/include/include/opti.hpp +1 -0
  132. netgen/include/include/parallel.hpp +1 -0
  133. netgen/include/include/stlgeom.hpp +1 -0
  134. netgen/include/include/visual.hpp +1 -0
  135. netgen/include/interface/rw_medit.hpp +11 -0
  136. netgen/include/interface/writeuser.hpp +80 -0
  137. netgen/include/linalg/densemat.hpp +414 -0
  138. netgen/include/linalg/linalg.hpp +29 -0
  139. netgen/include/linalg/opti.hpp +142 -0
  140. netgen/include/linalg/polynomial.hpp +47 -0
  141. netgen/include/linalg/vector.hpp +217 -0
  142. netgen/include/meshing/adfront2.hpp +274 -0
  143. netgen/include/meshing/adfront3.hpp +332 -0
  144. netgen/include/meshing/basegeom.hpp +370 -0
  145. netgen/include/meshing/bcfunctions.hpp +53 -0
  146. netgen/include/meshing/bisect.hpp +72 -0
  147. netgen/include/meshing/boundarylayer.hpp +113 -0
  148. netgen/include/meshing/classifyhpel.hpp +1984 -0
  149. netgen/include/meshing/clusters.hpp +46 -0
  150. netgen/include/meshing/curvedelems.hpp +274 -0
  151. netgen/include/meshing/delaunay2d.hpp +73 -0
  152. netgen/include/meshing/fieldlines.hpp +103 -0
  153. netgen/include/meshing/findip.hpp +198 -0
  154. netgen/include/meshing/findip2.hpp +103 -0
  155. netgen/include/meshing/geomsearch.hpp +69 -0
  156. netgen/include/meshing/global.hpp +54 -0
  157. netgen/include/meshing/hpref_hex.hpp +330 -0
  158. netgen/include/meshing/hpref_prism.hpp +3405 -0
  159. netgen/include/meshing/hpref_pyramid.hpp +154 -0
  160. netgen/include/meshing/hpref_quad.hpp +2082 -0
  161. netgen/include/meshing/hpref_segm.hpp +122 -0
  162. netgen/include/meshing/hpref_tet.hpp +4230 -0
  163. netgen/include/meshing/hpref_trig.hpp +848 -0
  164. netgen/include/meshing/hprefinement.hpp +366 -0
  165. netgen/include/meshing/improve2.hpp +178 -0
  166. netgen/include/meshing/improve3.hpp +151 -0
  167. netgen/include/meshing/localh.hpp +223 -0
  168. netgen/include/meshing/meshclass.hpp +1076 -0
  169. netgen/include/meshing/meshfunc.hpp +47 -0
  170. netgen/include/meshing/meshing.hpp +63 -0
  171. netgen/include/meshing/meshing2.hpp +163 -0
  172. netgen/include/meshing/meshing3.hpp +123 -0
  173. netgen/include/meshing/meshtool.hpp +90 -0
  174. netgen/include/meshing/meshtype.hpp +1930 -0
  175. netgen/include/meshing/msghandler.hpp +62 -0
  176. netgen/include/meshing/paralleltop.hpp +172 -0
  177. netgen/include/meshing/python_mesh.hpp +206 -0
  178. netgen/include/meshing/ruler2.hpp +172 -0
  179. netgen/include/meshing/ruler3.hpp +211 -0
  180. netgen/include/meshing/soldata.hpp +141 -0
  181. netgen/include/meshing/specials.hpp +17 -0
  182. netgen/include/meshing/surfacegeom.hpp +73 -0
  183. netgen/include/meshing/topology.hpp +1003 -0
  184. netgen/include/meshing/validate.hpp +21 -0
  185. netgen/include/meshing/visual_interface.hpp +71 -0
  186. netgen/include/mydefs.hpp +70 -0
  187. netgen/include/nginterface.h +474 -0
  188. netgen/include/nginterface_v2.hpp +406 -0
  189. netgen/include/nglib.h +697 -0
  190. netgen/include/nglib_occ.h +50 -0
  191. netgen/include/occ/occ_edge.hpp +47 -0
  192. netgen/include/occ/occ_face.hpp +52 -0
  193. netgen/include/occ/occ_solid.hpp +23 -0
  194. netgen/include/occ/occ_utils.hpp +376 -0
  195. netgen/include/occ/occ_vertex.hpp +30 -0
  196. netgen/include/occ/occgeom.hpp +659 -0
  197. netgen/include/occ/occmeshsurf.hpp +168 -0
  198. netgen/include/occ/vsocc.hpp +33 -0
  199. netgen/include/pybind11/LICENSE +29 -0
  200. netgen/include/pybind11/attr.h +722 -0
  201. netgen/include/pybind11/buffer_info.h +208 -0
  202. netgen/include/pybind11/cast.h +2361 -0
  203. netgen/include/pybind11/chrono.h +228 -0
  204. netgen/include/pybind11/common.h +2 -0
  205. netgen/include/pybind11/complex.h +74 -0
  206. netgen/include/pybind11/conduit/README.txt +15 -0
  207. netgen/include/pybind11/conduit/pybind11_conduit_v1.h +116 -0
  208. netgen/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
  209. netgen/include/pybind11/conduit/wrap_include_python_h.h +72 -0
  210. netgen/include/pybind11/critical_section.h +56 -0
  211. netgen/include/pybind11/detail/class.h +823 -0
  212. netgen/include/pybind11/detail/common.h +1348 -0
  213. netgen/include/pybind11/detail/cpp_conduit.h +75 -0
  214. netgen/include/pybind11/detail/descr.h +226 -0
  215. netgen/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +39 -0
  216. netgen/include/pybind11/detail/exception_translation.h +71 -0
  217. netgen/include/pybind11/detail/function_record_pyobject.h +191 -0
  218. netgen/include/pybind11/detail/init.h +538 -0
  219. netgen/include/pybind11/detail/internals.h +799 -0
  220. netgen/include/pybind11/detail/native_enum_data.h +209 -0
  221. netgen/include/pybind11/detail/pybind11_namespace_macros.h +82 -0
  222. netgen/include/pybind11/detail/struct_smart_holder.h +378 -0
  223. netgen/include/pybind11/detail/type_caster_base.h +1591 -0
  224. netgen/include/pybind11/detail/typeid.h +65 -0
  225. netgen/include/pybind11/detail/using_smart_holder.h +22 -0
  226. netgen/include/pybind11/detail/value_and_holder.h +90 -0
  227. netgen/include/pybind11/eigen/common.h +9 -0
  228. netgen/include/pybind11/eigen/matrix.h +723 -0
  229. netgen/include/pybind11/eigen/tensor.h +521 -0
  230. netgen/include/pybind11/eigen.h +12 -0
  231. netgen/include/pybind11/embed.h +320 -0
  232. netgen/include/pybind11/eval.h +161 -0
  233. netgen/include/pybind11/functional.h +147 -0
  234. netgen/include/pybind11/gil.h +199 -0
  235. netgen/include/pybind11/gil_safe_call_once.h +102 -0
  236. netgen/include/pybind11/gil_simple.h +37 -0
  237. netgen/include/pybind11/iostream.h +265 -0
  238. netgen/include/pybind11/native_enum.h +67 -0
  239. netgen/include/pybind11/numpy.h +2312 -0
  240. netgen/include/pybind11/operators.h +202 -0
  241. netgen/include/pybind11/options.h +92 -0
  242. netgen/include/pybind11/pybind11.h +3645 -0
  243. netgen/include/pybind11/pytypes.h +2680 -0
  244. netgen/include/pybind11/stl/filesystem.h +114 -0
  245. netgen/include/pybind11/stl.h +666 -0
  246. netgen/include/pybind11/stl_bind.h +858 -0
  247. netgen/include/pybind11/subinterpreter.h +299 -0
  248. netgen/include/pybind11/trampoline_self_life_support.h +65 -0
  249. netgen/include/pybind11/type_caster_pyobject_ptr.h +61 -0
  250. netgen/include/pybind11/typing.h +298 -0
  251. netgen/include/pybind11/warnings.h +75 -0
  252. netgen/include/stlgeom/meshstlsurface.hpp +67 -0
  253. netgen/include/stlgeom/stlgeom.hpp +491 -0
  254. netgen/include/stlgeom/stlline.hpp +193 -0
  255. netgen/include/stlgeom/stltool.hpp +331 -0
  256. netgen/include/stlgeom/stltopology.hpp +419 -0
  257. netgen/include/stlgeom/vsstl.hpp +58 -0
  258. netgen/include/visualization/meshdoc.hpp +42 -0
  259. netgen/include/visualization/mvdraw.hpp +325 -0
  260. netgen/include/visualization/vispar.hpp +128 -0
  261. netgen/include/visualization/visual.hpp +28 -0
  262. netgen/include/visualization/visual_api.hpp +10 -0
  263. netgen/include/visualization/vssolution.hpp +399 -0
  264. netgen/lib/libnggui.lib +0 -0
  265. netgen/lib/ngcore.lib +0 -0
  266. netgen/lib/nglib.lib +0 -0
  267. netgen/lib/togl.lib +0 -0
  268. netgen/libnggui.dll +0 -0
  269. netgen/libngguipy.lib +0 -0
  270. netgen/libngguipy.pyd +0 -0
  271. netgen/libngpy/_NgOCC.pyi +1545 -0
  272. netgen/libngpy/__init__.pyi +7 -0
  273. netgen/libngpy/_csg.pyi +259 -0
  274. netgen/libngpy/_geom2d.pyi +323 -0
  275. netgen/libngpy/_meshing.pyi +1111 -0
  276. netgen/libngpy/_stl.pyi +131 -0
  277. netgen/libngpy.lib +0 -0
  278. netgen/libngpy.pyd +0 -0
  279. netgen/meshing.py +65 -0
  280. netgen/ngcore.dll +0 -0
  281. netgen/nglib.dll +0 -0
  282. netgen/occ.py +52 -0
  283. netgen/read_gmsh.py +259 -0
  284. netgen/read_meshio.py +22 -0
  285. netgen/stl.py +2 -0
  286. netgen/togl.dll +0 -0
  287. netgen/version.py +2 -0
  288. netgen/webgui.py +529 -0
  289. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boundarycondition.geo +16 -0
  290. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boxcyl.geo +32 -0
  291. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/circle_on_cube.geo +27 -0
  292. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cone.geo +13 -0
  293. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cube.geo +16 -0
  294. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandring.geo +55 -0
  295. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandspheres.geo +21 -0
  296. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemcyl.geo +18 -0
  297. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemsphere.geo +19 -0
  298. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylinder.geo +12 -0
  299. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylsphere.geo +12 -0
  300. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/doc/ng4.pdf +0 -0
  301. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipsoid.geo +8 -0
  302. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipticcyl.geo +10 -0
  303. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/extrusion.geo +99 -0
  304. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/fichera.geo +24 -0
  305. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/frame.step +11683 -0
  306. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/hinge.stl +8486 -0
  307. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/lshape3d.geo +26 -0
  308. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes.geo +26 -0
  309. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes2.geo +26 -0
  310. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/matrix.geo +27 -0
  311. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ortho.geo +11 -0
  312. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/part1.stl +2662 -0
  313. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/period.geo +33 -0
  314. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/exportNeutral.py +26 -0
  315. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/mesh.py +19 -0
  316. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/shaft.geo +65 -0
  317. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/revolution.geo +18 -0
  318. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/screw.step +1694 -0
  319. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sculpture.geo +13 -0
  320. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shaft.geo +65 -0
  321. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shell.geo +10 -0
  322. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphere.geo +8 -0
  323. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphereincube.geo +17 -0
  324. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/square.in2d +35 -0
  325. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarecircle.in2d +48 -0
  326. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarehole.in2d +47 -0
  327. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/torus.geo +8 -0
  328. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/trafo.geo +57 -0
  329. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twobricks.geo +15 -0
  330. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocubes.geo +18 -0
  331. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocyl.geo +16 -0
  332. netgen_mesher-6.2.2506.post35.dev0.dist-info/METADATA +15 -0
  333. netgen_mesher-6.2.2506.post35.dev0.dist-info/RECORD +340 -0
  334. netgen_mesher-6.2.2506.post35.dev0.dist-info/WHEEL +5 -0
  335. netgen_mesher-6.2.2506.post35.dev0.dist-info/entry_points.txt +2 -0
  336. netgen_mesher-6.2.2506.post35.dev0.dist-info/licenses/AUTHORS +1 -0
  337. netgen_mesher-6.2.2506.post35.dev0.dist-info/licenses/LICENSE +504 -0
  338. netgen_mesher-6.2.2506.post35.dev0.dist-info/top_level.txt +2 -0
  339. pyngcore/__init__.py +1 -0
  340. pyngcore/pyngcore.cp314-win_amd64.pyd +0 -0
@@ -0,0 +1,43 @@
1
+ #ifndef FILE_CSG
2
+ #define FILE_CSG
3
+
4
+ /* *************************************************************************/
5
+ /* File: geoml.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 21. Jun. 98 */
8
+ /* *************************************************************************/
9
+
10
+ #include <myadt.hpp>
11
+ #include <gprim.hpp>
12
+ #include <meshing.hpp>
13
+ // #include <geometry2d.hpp>
14
+ #include "../gprim/spline.hpp"
15
+ #include "../gprim/splinegeometry.hpp"
16
+
17
+
18
+
19
+ #include "surface.hpp"
20
+ #include "solid.hpp"
21
+ #include "identify.hpp"
22
+ #include "singularref.hpp"
23
+ #include "splinesurface.hpp"
24
+ #include "csgeom.hpp"
25
+ #include "csgparser.hpp"
26
+
27
+ #include "triapprox.hpp"
28
+ #include "algprim.hpp"
29
+ #include "brick.hpp"
30
+ #include "spline3d.hpp"
31
+ #include "manifold.hpp"
32
+ #include "curve2d.hpp"
33
+ #include "explicitcurve2d.hpp"
34
+ #include "gencyl.hpp"
35
+ #include "polyhedra.hpp"
36
+ #include "extrusion.hpp"
37
+ #include "revolution.hpp"
38
+ #include "specpoin.hpp"
39
+ #include "edgeflw.hpp"
40
+ #include "meshsurf.hpp"
41
+
42
+
43
+ #endif
@@ -0,0 +1,389 @@
1
+ #ifndef FILE_CSGEOM
2
+ #define FILE_CSGEOM
3
+
4
+ /**************************************************************************/
5
+ /* File: csgeom.hh */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 27. Nov. 97 */
8
+ /**************************************************************************/
9
+
10
+ namespace netgen
11
+ {
12
+
13
+ /**
14
+ Constructive Solid Geometry
15
+ */
16
+
17
+
18
+ class TriangleApproximation;
19
+ class TATriangle;
20
+
21
+ /**
22
+ A top level object is an entity to be meshed.
23
+ I can be either a solid, or one surface patch of a solid.
24
+ */
25
+ class DLL_HEADER TopLevelObject
26
+ {
27
+ Solid * solid;
28
+ Surface * surface;
29
+
30
+ double red, blue, green;
31
+ bool visible, transp;
32
+ double maxh;
33
+ string material;
34
+ int layer;
35
+ int bc; // for surface patches, only
36
+ string bcname;
37
+
38
+ public:
39
+ TopLevelObject (Solid * asolid,
40
+ Surface * asurface = NULL);
41
+ // default constructor for archive
42
+ TopLevelObject() {}
43
+
44
+ void DoArchive(Archive& archive)
45
+ {
46
+ archive & solid & surface & red & blue & green & visible & transp & maxh
47
+ & material & layer & bc & bcname;
48
+ }
49
+ const Solid * GetSolid() const { return solid; }
50
+ Solid * GetSolid() { return solid; }
51
+
52
+ const Surface * GetSurface () const { return surface; }
53
+ Surface * GetSurface () { return surface; }
54
+
55
+ void GetData (ostream & ost);
56
+ void SetData (istream & ist);
57
+
58
+ void SetMaxH (double amaxh) { maxh = amaxh; }
59
+ double GetMaxH () const { return maxh; }
60
+
61
+ void SetRGB (double ared, double agreen, double ablue)
62
+ {
63
+ red = ared;
64
+ green = agreen;
65
+ blue = ablue;
66
+ }
67
+
68
+ double GetRed () const { return red; }
69
+ double GetGreen () const { return green; }
70
+ double GetBlue () const { return blue; }
71
+
72
+ void SetTransparent (bool atransp)
73
+ { transp = atransp; }
74
+ bool GetTransparent () const { return transp; }
75
+
76
+ void SetVisible (bool avisible)
77
+ { visible = avisible; }
78
+ bool GetVisible () const { return visible; }
79
+
80
+ const string GetMaterial () const { return material; }
81
+ void SetMaterial (const string & mat) { material = mat; }
82
+
83
+ int GetLayer () const { return layer; }
84
+ void SetLayer (int alayer) { layer = alayer; }
85
+
86
+ void SetBCProp (int abc) { bc = abc; }
87
+ int GetBCProp () const { return bc; }
88
+
89
+ void SetBCName (string abc) { bcname = abc; }
90
+ const string GetBCName () const { return bcname; }
91
+ };
92
+
93
+
94
+
95
+
96
+
97
+ /**
98
+ CSGeometry has the whole geometric information
99
+ */
100
+ class DLL_HEADER CSGeometry : public NetgenGeometry
101
+ {
102
+ private:
103
+ /// all surfaces
104
+ SymbolTable<Surface*> surfaces;
105
+
106
+ public:
107
+ /// primitive of surface
108
+ NgArray<const Primitive*> surf2prim;
109
+
110
+ private:
111
+ NgArray<Surface*> delete_them;
112
+
113
+ /// all named solids
114
+ SymbolTable<Solid*> solids;
115
+
116
+ /// all 2d splinecurves
117
+ SymbolTable<shared_ptr<SplineGeometry<2>>> splinecurves2d;
118
+ /// all 3d splinecurves
119
+ SymbolTable<shared_ptr<SplineGeometry<3>>> splinecurves3d;
120
+
121
+ /// all top level objects: solids and surfaces
122
+ NgArray<TopLevelObject*> toplevelobjects;
123
+
124
+ public:
125
+ /// additional points specified by user
126
+ class UserPoint : public Point<3>
127
+ {
128
+ int index;
129
+ string name;
130
+ public:
131
+ UserPoint() = default;
132
+ UserPoint (Point<3> p, int _index) : Point<3>(p), index(_index) { ; }
133
+ UserPoint (Point<3> p, const string & _name) : Point<3>(p), index(-1), name(_name) { ; }
134
+ int GetIndex() const { return index; }
135
+ const string & GetName() const { return name; }
136
+ void DoArchive(Archive& archive)
137
+ {
138
+ archive & index & name;
139
+ Point<3>::DoArchive(archive);
140
+ }
141
+ };
142
+
143
+ private:
144
+ // NgArray<Point<3> > userpoints;
145
+ NgArray<UserPoint> userpoints;
146
+ NgArray<double> userpoints_ref_factor;
147
+
148
+ mutable NgArray<Point<3> > identpoints;
149
+
150
+ /// triangular approximation of top level objects
151
+ NgArray<TriangleApproximation*> triapprox;
152
+
153
+ /// increment, if geometry is changed
154
+ static int changeval;
155
+
156
+ /// bounding box of geometry
157
+ Box<3> boundingbox;
158
+
159
+ /// bounding box, if not set by input file
160
+ static Box<3> default_boundingbox;
161
+
162
+ /// identic surfaces are stored by pair of indizes, val = inverse
163
+ INDEX_2_HASHTABLE<int> identicsurfaces;
164
+ NgArray<int> isidenticto;
165
+ /// identification of boundaries (periodic, thin domains, ...)
166
+
167
+ double ideps;
168
+
169
+ /// filename of inputfile
170
+ string filename;
171
+
172
+ /// store splinesurfaces, such that added ones do not get deleted before geometry does
173
+ NgArray<shared_ptr<SplineSurface>> spline_surfaces;
174
+
175
+ shared_ptr<BlockAllocator> solid_ball = Solid::ball;
176
+
177
+ public:
178
+ CSGeometry ();
179
+ CSGeometry (const string & afilename);
180
+ virtual ~CSGeometry ();
181
+
182
+ void Clean ();
183
+
184
+ virtual void Save (const filesystem::path & filename) const override;
185
+ void Save (ostream & ost) const;
186
+ void Load (istream & ist);
187
+
188
+ void SaveSurfaces (ostream & out) const;
189
+ void LoadSurfaces (istream & in);
190
+
191
+ virtual void SaveToMeshFile (ostream & ost) const override;
192
+
193
+ PointGeomInfo ProjectPoint(INDEX surfind, Point<3> & p) const override;
194
+ bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override;
195
+ void ProjectPointEdge(INDEX surfind, INDEX surfind2, Point<3> & p,
196
+ EdgePointGeomInfo* gi = nullptr) const override;
197
+ Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo* gi = nullptr) const override;
198
+
199
+ void PointBetween(const Point<3> & p1, const Point<3> & p2,
200
+ double secpoint, int surfi,
201
+ const PointGeomInfo & gi1,
202
+ const PointGeomInfo & gi2,
203
+ Point<3> & newp, PointGeomInfo & newgi) const override;
204
+
205
+ void PointBetweenEdge(const Point<3> & p1, const Point<3> & p2, double secpoint,
206
+ int surfi1, int surfi2,
207
+ const EdgePointGeomInfo & ap1,
208
+ const EdgePointGeomInfo & ap2,
209
+ Point<3> & newp, EdgePointGeomInfo & newgi) const override;
210
+
211
+ Vec<3> GetTangent (const Point<3> & p, int surfi1, int surfi2,
212
+ const EdgePointGeomInfo & ap1) const override;
213
+
214
+ int GetChangeVal() { return changeval; }
215
+ void Change() { changeval++; }
216
+
217
+ void AddSurface (Surface * surf);
218
+ void AddSurface (char * name, Surface * surf);
219
+ void AddSurfaces (Primitive * prim);
220
+
221
+ int GetNSurf () const { return surfaces.Size(); }
222
+ const Surface * GetSurface (const char * name) const;
223
+ const Surface * GetSurface (int i) const
224
+ { return surfaces[i]; }
225
+
226
+ void SetSolid (const char * name, Solid * sol);
227
+ const Solid * GetSolid (const char * name) const;
228
+ const Solid * GetSolid (const string & name) const;
229
+ int GetNSolids () const { return solids.Size(); }
230
+ const Solid * GetSolid (int i) const { return solids[i]; }
231
+ const SymbolTable<Solid*> & GetSolids () const { return solids; }
232
+
233
+
234
+ void SetSplineCurve (const char * name, shared_ptr<SplineGeometry<2>> spl);
235
+ void SetSplineCurve (const char * name, shared_ptr<SplineGeometry<3>> spl);
236
+ shared_ptr<SplineGeometry<2>> GetSplineCurve2d (const string & name) const;
237
+ shared_ptr<SplineGeometry<3>> GetSplineCurve3d (const string & name) const;
238
+
239
+ void DoArchive(Archive& archive) override;
240
+
241
+
242
+ void SetFlags (const char * solidname, const Flags & flags);
243
+
244
+
245
+ int GetNTopLevelObjects () const
246
+ { return toplevelobjects.Size(); }
247
+ int SetTopLevelObject (Solid * sol, Surface * surf = NULL);
248
+ void GetTopLevelObject (int nr, Solid *& sol, Surface *& surf)
249
+ {
250
+ sol = toplevelobjects[nr]->GetSolid();
251
+ surf = toplevelobjects[nr]->GetSurface();
252
+ }
253
+ void GetTopLevelObject (int nr, const Solid *& sol, const Surface *& surf) const
254
+ {
255
+ sol = toplevelobjects[nr]->GetSolid();
256
+ surf = toplevelobjects[nr]->GetSurface();
257
+ }
258
+
259
+ TopLevelObject * GetTopLevelObject (const Solid * sol, const Surface * surf = NULL);
260
+ TopLevelObject * GetTopLevelObject (int nr) const
261
+ { return toplevelobjects[nr]; }
262
+ // const TopLevelObject * GetTopLevelObject (int nr) const
263
+ // { return toplevelobjects[nr]; }
264
+ void RemoveTopLevelObject (Solid * sol, Surface * surf = NULL);
265
+
266
+
267
+ void AddUserPoint (const Point<3> & p, double ref_factor = 0)
268
+ { userpoints.Append (UserPoint(p,userpoints.Size()+1)); userpoints_ref_factor.Append (ref_factor); }
269
+ void AddUserPoint (const UserPoint up, double ref_factor = 0)
270
+ { userpoints.Append (up); userpoints_ref_factor.Append (ref_factor); }
271
+ int GetNUserPoints () const
272
+ { return userpoints.Size(); }
273
+ const UserPoint & GetUserPoint (int nr) const
274
+ { return userpoints[nr]; }
275
+ double GetUserPointRefFactor (int nr) const
276
+ { return userpoints_ref_factor[nr]; }
277
+
278
+ void AddIdentPoint (const Point<3> & p) const
279
+ { identpoints.Append(p);}
280
+ int GetNIdentPoints (void) const
281
+ { return identpoints.Size();}
282
+ const Point<3> & GetIdentPoint(int nr) const
283
+ { return identpoints[nr]; }
284
+ void DeleteIdentPoints(void) const
285
+ { identpoints.DeleteAll();}
286
+
287
+
288
+ // quick implementations:
289
+ NgArray<SingularFace*> singfaces;
290
+ NgArray<SingularEdge*> singedges;
291
+ NgArray<SingularPoint*> singpoints;
292
+ NgArray<Identification*> identifications;
293
+
294
+ int GetNIdentifications (void) const { return identifications.Size(); }
295
+ void AddIdentification (Identification * ident);
296
+
297
+
298
+ ///
299
+ void CalcTriangleApproximation(double detail, double facets);
300
+
301
+ ///
302
+ void FindIdenticSurfaces (double eps);
303
+ ///
304
+ void GetSurfaceIndices (const Solid * sol,
305
+ const BoxSphere<3> & box,
306
+ NgArray<int> & locsurf) const;
307
+ ///
308
+ void GetIndependentSurfaceIndices (const Solid * sol,
309
+ const BoxSphere<3> & box,
310
+ NgArray<int> & locsurf) const;
311
+ ///
312
+ /*
313
+ void GetIndependentSurfaceIndices (const Solid * sol,
314
+ const Point<3> & p, Vec<3> & v,
315
+ NgArray<int> & locsurf) const;
316
+ */
317
+ ///
318
+ void GetIndependentSurfaceIndices (NgArray<int> & locsurf) const;
319
+
320
+ ///
321
+ int GetSurfaceClassRepresentant (int si) const
322
+ { return isidenticto[si]; }
323
+
324
+ ///
325
+ const TriangleApproximation * GetTriApprox (int msnr)
326
+ {
327
+ if (msnr < triapprox.Size())
328
+ return triapprox[msnr];
329
+ return 0;
330
+ }
331
+
332
+
333
+ void IterateAllSolids (SolidIterator & it, bool only_once = false) const;
334
+
335
+ void RefineTriangleApprox (Solid * locsol,
336
+ int surfind,
337
+ const BoxSphere<3> & box,
338
+ double detail,
339
+ const TATriangle & tria,
340
+ TriangleApproximation & tams,
341
+ IndexSet & iset,
342
+ int level);
343
+
344
+ const Box<3> & BoundingBox () const { return boundingbox; }
345
+
346
+ void SetBoundingBox (const Box<3> & abox)
347
+ {
348
+ boundingbox = abox;
349
+ }
350
+
351
+
352
+ static void SetDefaultBoundingBox (const Box<3> & abox)
353
+ {
354
+ default_boundingbox = abox;
355
+ }
356
+
357
+ double MaxSize () const;
358
+
359
+ void SetIdEps(double eps){ideps = eps;}
360
+ double GetIdEps(void) const {return ideps;}
361
+
362
+ class BCModification {
363
+ public:
364
+ int si;
365
+ int tlonr;
366
+ int bcnr;
367
+ string * bcname;
368
+ };
369
+
370
+ NgArray<BCModification> bcmodifications;
371
+
372
+
373
+ map<tuple<Surface*,Surface*>, string> named_edges;
374
+
375
+
376
+
377
+ virtual int GenerateMesh (shared_ptr<Mesh> & mesh, MeshingParameters & mparam) override;
378
+
379
+ void AddSplineSurface (shared_ptr<SplineSurface> ss) { spline_surfaces.Append(ss); }
380
+ };
381
+
382
+
383
+
384
+
385
+
386
+ }
387
+
388
+ #endif
389
+
@@ -0,0 +1,101 @@
1
+ #ifndef _CSGPARSER_HPP
2
+ #define _CSGPARSER_HPP
3
+
4
+
5
+ namespace netgen
6
+ {
7
+
8
+ enum TOKEN_TYPE
9
+ {
10
+ TOK_MINUS = '-', TOK_LP = '(', OK_RP = ')', TOK_LSP = '[', TOK_RSP = ']',
11
+ TOK_EQU = '=', TOK_COMMA = ',', TOK_SEMICOLON = ';',
12
+ TOK_NUM = 100, TOK_STRING, TOK_NAMED_SOLID, TOK_PRIMITIVE,
13
+ TOK_OR, TOK_AND, TOK_NOT,
14
+ TOK_SINGULAR, TOK_EDGE, TOK_POINT, TOK_FACE, TOK_IDENTIFY, TOK_CLOSESURFACES,
15
+ TOK_CLOSEEDGES, TOK_PERIODIC,
16
+ TOK_SOLID, TOK_RECO, TOK_TLO, TOK_CURVE2D, TOK_CURVE3D, TOK_BOUNDINGBOX,
17
+ TOK_BOUNDARYCONDITION, TOK_BOUNDARYCONDITIONNAME,
18
+ TOK_DEFINE, TOK_CONSTANT,
19
+ TOK_END };
20
+
21
+ struct kwstruct
22
+ {
23
+ TOKEN_TYPE kw;
24
+ const char * name;
25
+ };
26
+
27
+ enum PRIMITIVE_TYPE
28
+ {
29
+ TOK_SPHERE = 1, TOK_CYLINDER, TOK_PLANE, TOK_ELLIPTICCYLINDER,
30
+ TOK_ELLIPSOID, TOK_CONE, TOK_ELLIPTICCONE,
31
+ TOK_ORTHOBRICK, TOK_POLYHEDRON,
32
+ TOK_TORUS,
33
+ TOK_TUBE, TOK_GENCYL, TOK_EXTRUSION, TOK_REVOLUTION,
34
+
35
+ TOK_TRANSLATE, TOK_MULTITRANSLATE, TOK_ROTATE, TOK_MULTIROTATE
36
+ };
37
+
38
+ struct primstruct
39
+ {
40
+ PRIMITIVE_TYPE kw;
41
+ const char * name;
42
+ };
43
+
44
+
45
+ class CSGScanner
46
+ {
47
+ TOKEN_TYPE token;
48
+ PRIMITIVE_TYPE prim_token;
49
+ double num_value;
50
+ string string_value;
51
+
52
+ int linenum;
53
+ istream * scanin;
54
+
55
+ public:
56
+
57
+ CSGScanner (istream & ascanin);
58
+
59
+ TOKEN_TYPE GetToken() const
60
+ { return token; }
61
+
62
+ double GetNumValue() const
63
+ { return num_value; }
64
+
65
+ const string & GetStringValue() const
66
+ { return string_value; }
67
+
68
+ char GetCharValue() const
69
+ { return string_value[0]; }
70
+
71
+ PRIMITIVE_TYPE GetPrimitiveToken() const
72
+ { return prim_token; }
73
+
74
+ void ReadNext();
75
+
76
+ /*
77
+ CSGScanner & Parse (char ch);
78
+ CSGScanner & Parse (int & i);
79
+ CSGScanner & Parse (double & d);
80
+ CSGScanner & Parse (Point<3> & p);
81
+ CSGScanner & Parse (Vec<3> & p);
82
+ */
83
+ void Error (const string & err);
84
+ };
85
+
86
+
87
+
88
+ CSGScanner & operator>> (CSGScanner & scan, char ch);
89
+ CSGScanner & operator>> (CSGScanner & scan, double & d);
90
+ CSGScanner & operator>> (CSGScanner & scan, int & i);
91
+ CSGScanner & operator>> (CSGScanner & scan, Point<3> & p);
92
+ CSGScanner & operator>> (CSGScanner & scan, Vec<3> & v);
93
+
94
+
95
+
96
+ }
97
+
98
+
99
+
100
+ #endif
101
+
@@ -0,0 +1,67 @@
1
+ #ifndef FILE_CURVE2D
2
+ #define FILE_CURVE2D
3
+
4
+ /**************************************************************************/
5
+ /* File: curve2d.hh */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 24. Jul. 96 */
8
+ /**************************************************************************/
9
+
10
+ namespace netgen
11
+ {
12
+
13
+
14
+ /*
15
+
16
+ 2D Curve representation
17
+
18
+ */
19
+
20
+
21
+
22
+ ///
23
+ class Curve2d : public Manifold
24
+ {
25
+ public:
26
+ ///
27
+ virtual void Project (Point<2> & p) const = 0;
28
+ ///
29
+ virtual void NormalVector (const Point<2> & p, Vec<2> & n) const = 0;
30
+ };
31
+
32
+ ///
33
+ class CircleCurve2d : public Curve2d
34
+ {
35
+ ///
36
+ Point<2> center;
37
+ ///
38
+ double rad;
39
+ public:
40
+ ///
41
+ CircleCurve2d (const Point<2> & acenter, double arad);
42
+ ///
43
+ virtual void Project (Point<2> & p) const;
44
+ ///
45
+ virtual void NormalVector (const Point<2> & p, Vec<2> & n) const;
46
+ };
47
+
48
+ ///
49
+ class QuadraticCurve2d : public Curve2d
50
+ {
51
+ ///
52
+ double cxx, cyy, cxy, cx, cy, c;
53
+ public:
54
+ ///
55
+ QuadraticCurve2d ();
56
+ ///
57
+ void Read (istream & ist);
58
+ ///
59
+ virtual void Project (Point<2> & p) const;
60
+ ///
61
+ virtual void NormalVector (const Point<2> & p, Vec<2> & n) const;
62
+ };
63
+
64
+
65
+ }
66
+
67
+ #endif
@@ -0,0 +1,112 @@
1
+ #ifndef FILE_EDGEFLW
2
+ #define FILE_EDGEFLW
3
+
4
+ /**************************************************************************/
5
+ /* File: edgeflw.hh */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 01. Okt. 95 */
8
+ /**************************************************************************/
9
+
10
+ namespace netgen
11
+ {
12
+
13
+
14
+
15
+ /*
16
+
17
+ Edge - following function and
18
+ Projection to edge of implicitly given edge
19
+
20
+ */
21
+
22
+
23
+ /**
24
+ Calculates edges.
25
+ The edges of a solid geometry are computed. Special
26
+ points have to be given.
27
+ */
28
+ extern void CalcEdges (const CSGeometry & geometry,
29
+ const NgArray<SpecialPoint> & specpoints,
30
+ double h, Mesh & mesh);
31
+
32
+
33
+
34
+
35
+
36
+ class EdgeCalculation
37
+ {
38
+ const CSGeometry & geometry;
39
+ NgArray<SpecialPoint> & specpoints;
40
+ Point3dTree * searchtree;
41
+ Point3dTree * meshpoint_tree;
42
+ int cntedge;
43
+
44
+ double ideps;
45
+ MeshingParameters & mparam;
46
+
47
+ public:
48
+ EdgeCalculation (const CSGeometry & ageometry,
49
+ NgArray<SpecialPoint> & aspecpoints,
50
+ MeshingParameters & amparam);
51
+
52
+ ~EdgeCalculation();
53
+
54
+ void SetIdEps(const double epsin) {ideps = epsin;}
55
+
56
+ void Calc(double h, Mesh & mesh);
57
+
58
+
59
+ private:
60
+ void CalcEdges1 (double h, Mesh & mesh);
61
+
62
+
63
+ void FollowEdge (int pi1, int & ep, int & pos,
64
+ // const NgArray<SpecialPoint> & hsp,
65
+ const NgArray<int> & hsp,
66
+ double h, const Mesh & mesh,
67
+ NgArray<Point<3> > & edgepoints,
68
+ NgArray<double> & curvelength);
69
+
70
+
71
+ void AnalyzeEdge (int s1, int s2, int s1_rep, int s2_rep, int pos, int layer,
72
+ const NgArray<Point<3> > & edgepoints,
73
+ NgArray<Segment> & refedges,
74
+ NgArray<bool> & refedgesinv);
75
+
76
+ void StoreEdge (const NgArray<Segment> & refedges,
77
+ const NgArray<bool> & refedgesinv,
78
+ const NgArray<Point<3> > & edgepoints,
79
+ const NgArray<double> & curvelength,
80
+ int layer,
81
+ Mesh & mesh);
82
+
83
+ void StoreShortEdge (const NgArray<Segment> & refedges,
84
+ const NgArray<bool> & refedgesinv,
85
+ const NgArray<Point<3> > & edgepoints,
86
+ const NgArray<double> & curvelength,
87
+ int layer,
88
+ Mesh & mesh);
89
+
90
+ void CopyEdge (const NgArray<Segment> & refedges,
91
+ const NgArray<bool> & refedgesinv,
92
+ int copyfromedge,
93
+ const Point<3> & fromstart, const Point<3> & fromend,
94
+ const Point<3> & tostart, const Point<3> & toend,
95
+ int copyedgeidentification,
96
+ int layer,
97
+ Mesh & mesh);
98
+
99
+
100
+ void SplitEqualOneSegEdges (Mesh & mesh);
101
+ void FindClosedSurfaces (double h, Mesh & mesh);
102
+
103
+
104
+ public:
105
+ bool point_on_edge_problem;
106
+
107
+ };
108
+
109
+ }
110
+
111
+
112
+ #endif