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,50 @@
1
+ #ifndef NGLIB_OCC_HPP_INCLUDED
2
+ #define NGLIB_OCC_HPP_INCLUDED
3
+
4
+ /// Data type for NETGEN OpenCascade geometry
5
+ typedef void * Ng_OCC_Geometry;
6
+ typedef void * Ng_OCC_TopTools_IndexedMapOfShape;
7
+
8
+ // **********************************************************
9
+ // ** OpenCascade Geometry / Meshing Utilities **
10
+ // **********************************************************
11
+
12
+ // Create new OCC Geometry Object
13
+ NGLIB_API Ng_OCC_Geometry * Ng_OCC_NewGeometry ();
14
+
15
+ // Delete an OCC Geometry Object
16
+ NGLIB_API Ng_Result Ng_OCC_DeleteGeometry (Ng_OCC_Geometry * geom);
17
+
18
+ // Loads geometry from STEP file
19
+ NGLIB_API Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename);
20
+
21
+ // Loads geometry from IGES file
22
+ NGLIB_API Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename);
23
+
24
+ // Loads geometry from BREP file
25
+ NGLIB_API Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename);
26
+
27
+ // Set the local mesh size based on geometry / topology
28
+ NGLIB_API Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
29
+ Ng_Mesh * mesh,
30
+ Ng_Meshing_Parameters * mp);
31
+
32
+ // Mesh the edges and add Face descriptors to prepare for surface meshing
33
+ NGLIB_API Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
34
+ Ng_Mesh * mesh,
35
+ Ng_Meshing_Parameters * mp);
36
+
37
+ // Mesh the surfaces of an OCC geometry
38
+ NGLIB_API Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
39
+ Ng_Mesh * mesh,
40
+ Ng_Meshing_Parameters * mp);
41
+
42
+ // Get the face map of an already loaded OCC geometry
43
+ NGLIB_API Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom,
44
+ Ng_OCC_TopTools_IndexedMapOfShape * FMap);
45
+
46
+ NGLIB_API void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
47
+ Ng_Mesh * mesh);
48
+ NGLIB_API void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
49
+ Ng_Mesh * mesh);
50
+ #endif // NGLIB_OCC_HPP_INCLUDED
@@ -0,0 +1,47 @@
1
+ #ifndef FILE_OCC_EDGE_INCLUDED
2
+ #define FILE_OCC_EDGE_INCLUDED
3
+
4
+
5
+ // #pragma clang diagnostic push
6
+ // #pragma clang diagnostic ignored "-Wdeprecated-declarations"
7
+
8
+ #include <GProp_GProps.hxx>
9
+ #include <TopoDS.hxx>
10
+ #include <TopoDS_Edge.hxx>
11
+ #include <Geom_Curve.hxx>
12
+ #include <BRep_TEdge.hxx>
13
+ #include <BRep_Tool.hxx>
14
+
15
+ // #pragma clang diagnostic pop
16
+
17
+ #include "occ_vertex.hpp"
18
+ #include "meshing.hpp"
19
+
20
+ namespace netgen
21
+ {
22
+ class OCCEdge : public GeometryEdge
23
+ {
24
+ public:
25
+ TopoDS_Edge edge;
26
+ Handle(Geom_Curve) curve;
27
+ double s0, s1;
28
+ GProp_GProps props;
29
+
30
+ public:
31
+ OCCEdge(TopoDS_Shape edge_, GeometryVertex & start_, GeometryVertex & end_);
32
+
33
+ auto Shape() const { return edge; }
34
+
35
+ double GetLength() const override;
36
+ Point<3> GetCenter() const override;
37
+ Point<3> GetPoint(double t) const override;
38
+ double CalcStep(double t, double sag) const override;
39
+ void ProjectPoint(Point<3>& p, EdgePointGeomInfo* gi) const override;
40
+ Vec<3> GetTangent(double t) const override;
41
+ bool IsDegenerated(double) const override {
42
+ return BRep_Tool::Degenerated(edge);
43
+ }
44
+ };
45
+ }
46
+
47
+ #endif // FILE_OCCEDGE_INCLUDED
@@ -0,0 +1,52 @@
1
+ #ifndef FILE_OCC_FACE_INCLUDED
2
+ #define FILE_OCC_FACE_INCLUDED
3
+
4
+ // #pragma clang diagnostic push
5
+ // #pragma clang diagnostic ignored "-Wdeprecated-declarations"
6
+
7
+ #include <GProp_GProps.hxx>
8
+ #include <TopoDS.hxx>
9
+ #include <TopoDS_Face.hxx>
10
+ #include <ShapeAnalysis_Surface.hxx>
11
+
12
+ // #pragma clang diagnostic pop
13
+
14
+ #include "occ_vertex.hpp"
15
+ #include "meshing.hpp"
16
+
17
+ namespace netgen
18
+ {
19
+ class OCCFace : public GeometryFace
20
+ {
21
+ TopoDS_Face face;
22
+ GProp_GProps props;
23
+ Box<3> bbox;
24
+
25
+ Handle( Geom_Surface ) surface;
26
+ Handle( ShapeAnalysis_Surface ) shape_analysis;
27
+ double tolerance;
28
+
29
+ public:
30
+ OCCFace(TopoDS_Shape dshape);
31
+
32
+ const TopoDS_Face Shape() const { return face; }
33
+
34
+ Point<3> GetCenter() const override;
35
+ virtual size_t GetNBoundaries() const override;
36
+ virtual Array<Segment> GetBoundary(const Mesh& mesh) const override;
37
+ virtual PointGeomInfo Project(Point<3>& p) const override;
38
+ virtual bool ProjectPointGI(Point<3>& p, PointGeomInfo& gi) const override;
39
+ virtual Point<3> GetPoint(const PointGeomInfo& gi) const override;
40
+ virtual void CalcEdgePointGI(const GeometryEdge& edge,
41
+ double t,
42
+ EdgePointGeomInfo& egi) const override;
43
+ virtual Box<3> GetBoundingBox() const override;
44
+
45
+ virtual double GetCurvature(const PointGeomInfo& gi) const override;
46
+
47
+ virtual void RestrictH(Mesh& mesh, const MeshingParameters& mparam) const override;
48
+ virtual Vec<3> GetNormal(const Point<3>& p, const PointGeomInfo* gi = nullptr) const override;
49
+ };
50
+ }
51
+
52
+ #endif // FILE_OCC_FACE_INCLUDED
@@ -0,0 +1,23 @@
1
+ #ifndef FILE_OCC_SOLID_INCLUDED
2
+ #define FILE_OCC_SOLID_INCLUDED
3
+
4
+ #include <TopoDS.hxx>
5
+ #include <TopoDS_Solid.hxx>
6
+
7
+ #include "meshing.hpp"
8
+
9
+ namespace netgen
10
+ {
11
+ class OCCSolid : public GeometrySolid
12
+ {
13
+ TopoDS_Solid solid;
14
+
15
+ public:
16
+ OCCSolid(TopoDS_Shape dshape)
17
+ : solid(TopoDS::Solid(dshape))
18
+ { }
19
+ TopoDS_Solid& GetShape() { return solid; }
20
+ };
21
+ }
22
+
23
+ #endif // FILE_OCC_SOLID_INCLUDED
@@ -0,0 +1,376 @@
1
+ #ifndef FILE_OCC_UTILS_INCLUDED
2
+ #define FILE_OCC_UTILS_INCLUDED
3
+
4
+
5
+
6
+ #include <variant>
7
+
8
+ // #pragma clang diagnostic push
9
+ // #pragma clang diagnostic ignored "-Wdeprecated-declarations"
10
+
11
+ #include <Standard_Version.hxx>
12
+ #include <BRepGProp.hxx>
13
+ #include <BRep_Tool.hxx>
14
+ #include <GProp_GProps.hxx>
15
+ #include <TopExp_Explorer.hxx>
16
+ #include <TopTools_IndexedMapOfShape.hxx>
17
+ #include <TopoDS.hxx>
18
+ #include <TopoDS_Vertex.hxx>
19
+ #include <gp_Trsf.hxx>
20
+ #include <gp_GTrsf.hxx>
21
+
22
+ #define NETGEN_OCC_VERSION_AT_LEAST(MAJOR, MINOR) \
23
+ ((OCC_VERSION_MAJOR > MAJOR) || \
24
+ ((OCC_VERSION_MAJOR == MAJOR) && (OCC_VERSION_MINOR >= MINOR)))
25
+ #define NETGEN_OCC_VERSION_AT_LEAST_MAJOR(MAJOR) \
26
+ (NETGEN_OCC_VERSION_AT_LEAST(MAJOR, 0))
27
+
28
+ // #pragma clang diagnostic pop
29
+
30
+ #include "meshing.hpp"
31
+
32
+ #if NETGEN_OCC_VERSION_AT_LEAST(7, 4)
33
+ #define OCC_HAVE_DUMP_JSON
34
+ #endif
35
+
36
+ namespace netgen
37
+ {
38
+ inline Point<3> occ2ng (const gp_Pnt & p)
39
+ {
40
+ return Point<3> (p.X(), p.Y(), p.Z());
41
+ }
42
+
43
+ inline Point<2> occ2ng (const gp_Pnt2d & p)
44
+ {
45
+ return Point<2> (p.X(), p.Y());
46
+ }
47
+
48
+ inline Vec<3> occ2ng (const gp_Vec & v)
49
+ {
50
+ return Vec<3> (v.X(), v.Y(), v.Z());
51
+ }
52
+
53
+ DLL_HEADER Point<3> occ2ng (const TopoDS_Shape & s);
54
+
55
+ inline Point<3> occ2ng (const TopoDS_Vertex & v)
56
+ {
57
+ return occ2ng (BRep_Tool::Pnt (v));
58
+ }
59
+
60
+ DLL_HEADER Transformation<3> occ2ng (const gp_Trsf & t);
61
+ DLL_HEADER Transformation<3> occ2ng (const gp_GTrsf & t);
62
+ inline Transformation<3> occ2ng (const variant<gp_Trsf, gp_GTrsf> & t)
63
+ {
64
+ if(auto t1 = get_if<gp_Trsf>(&t))
65
+ return occ2ng(*t1);
66
+ return occ2ng(get<gp_GTrsf>(t));
67
+ }
68
+
69
+ inline gp_Pnt ng2occ (const Point<3> & p)
70
+ {
71
+ return gp_Pnt(p(0), p(1), p(2));
72
+ }
73
+
74
+ inline void CheckValidPropertyType(const TopoDS_Shape & shape)
75
+ {
76
+ switch (shape.ShapeType())
77
+ {
78
+ case TopAbs_SOLID:
79
+ case TopAbs_FACE:
80
+ case TopAbs_EDGE:
81
+ case TopAbs_VERTEX:
82
+ break;
83
+ default:
84
+ throw Exception("Cannot query properties of compound shapes - setting properties sets property on all highest dimension subshape type");
85
+ }
86
+ }
87
+
88
+ DLL_HEADER Box<3> GetBoundingBox( const TopoDS_Shape & shape );
89
+
90
+ struct OCCIdentification
91
+ {
92
+ TopoDS_Shape from;
93
+ TopoDS_Shape to;
94
+ optional<Transformation<3>> trafo = nullopt;
95
+ string name;
96
+ Identifications::ID_TYPE type;
97
+ bool opposite_direction = false;
98
+ };
99
+
100
+ Standard_Integer BuildTriangulation( const TopoDS_Shape & shape );
101
+
102
+
103
+ class MyExplorer
104
+ {
105
+ class Iterator
106
+ {
107
+ TopExp_Explorer exp;
108
+ public:
109
+ Iterator (TopoDS_Shape ashape, TopAbs_ShapeEnum atoFind, TopAbs_ShapeEnum atoAvoid)
110
+ : exp(ashape, atoFind, atoAvoid) { }
111
+ auto operator*() { return exp.Current(); }
112
+ Iterator & operator++() { exp.Next(); return *this; }
113
+ bool operator!= (nullptr_t nu) { return exp.More(); }
114
+ };
115
+
116
+ public:
117
+ TopoDS_Shape shape;
118
+ TopAbs_ShapeEnum toFind;
119
+ TopAbs_ShapeEnum toAvoid;
120
+ MyExplorer (TopoDS_Shape ashape, TopAbs_ShapeEnum atoFind, TopAbs_ShapeEnum atoAvoid = TopAbs_SHAPE)
121
+ : shape(ashape), toFind(atoFind), toAvoid(atoAvoid) { ; }
122
+ Iterator begin() { return Iterator(shape, toFind, toAvoid); }
123
+ auto end() { return nullptr; }
124
+ };
125
+
126
+ inline auto Explore (TopoDS_Shape shape, TopAbs_ShapeEnum toFind, TopAbs_ShapeEnum toAvoid = TopAbs_SHAPE)
127
+ {
128
+ return MyExplorer (shape, toFind, toAvoid);
129
+ }
130
+
131
+
132
+ class IndexMapIterator
133
+ {
134
+ class Iterator
135
+ {
136
+ const TopTools_IndexedMapOfShape & indmap;
137
+ int i;
138
+ public:
139
+ Iterator (const TopTools_IndexedMapOfShape & aindmap, int ai)
140
+ : indmap(aindmap), i(ai) { ; }
141
+ auto operator*() { return tuple(i, indmap(i)); }
142
+ Iterator & operator++() { i++; return *this; }
143
+ bool operator!= (const Iterator & i2) { return i != i2.i; }
144
+ };
145
+
146
+ public:
147
+ const TopTools_IndexedMapOfShape & indmap;
148
+ IndexMapIterator (const TopTools_IndexedMapOfShape & aindmap) : indmap(aindmap) { }
149
+ Iterator begin() { return Iterator(indmap, 1); }
150
+ Iterator end() { return Iterator(indmap, indmap.Extent()+1); }
151
+ };
152
+
153
+ inline auto Enumerate (const TopTools_IndexedMapOfShape & indmap)
154
+ {
155
+ return IndexMapIterator(indmap);
156
+ }
157
+
158
+ class ListOfShapes : public std::vector<TopoDS_Shape>
159
+ {
160
+ public:
161
+ DLL_HEADER TopoDS_Shape Max(gp_Vec dir);
162
+ DLL_HEADER TopoDS_Shape Nearest(gp_Pnt pnt);
163
+ DLL_HEADER ListOfShapes SubShapes(TopAbs_ShapeEnum type) const;
164
+
165
+ ListOfShapes Solids() const
166
+ {
167
+ return SubShapes(TopAbs_SOLID);
168
+ }
169
+ ListOfShapes Shells() const
170
+ {
171
+ return SubShapes(TopAbs_SHELL);
172
+ }
173
+ ListOfShapes Faces() const
174
+ {
175
+ return SubShapes(TopAbs_FACE);
176
+ }
177
+ ListOfShapes Wires() const
178
+ {
179
+ return SubShapes(TopAbs_WIRE);
180
+ }
181
+ ListOfShapes Edges() const
182
+ {
183
+ return SubShapes(TopAbs_EDGE);
184
+ }
185
+ ListOfShapes Vertices() const
186
+ {
187
+ return SubShapes(TopAbs_VERTEX);
188
+ }
189
+
190
+ ListOfShapes operator*(const ListOfShapes& other) const
191
+ {
192
+ ListOfShapes common;
193
+ for(const auto& shape : (*this))
194
+ for(const auto& shape_o : other)
195
+ if(shape.IsSame(shape_o))
196
+ common.push_back(shape);
197
+ return common;
198
+ }
199
+
200
+ ListOfShapes GetHighestDimShapes() const
201
+ {
202
+ for (auto type : {TopAbs_SOLID, TopAbs_FACE, TopAbs_EDGE, TopAbs_VERTEX})
203
+ {
204
+ auto ret = SubShapes(type);
205
+ if (ret.size() > 0)
206
+ return ret;
207
+ }
208
+ return ListOfShapes();
209
+ }
210
+ };
211
+
212
+ inline ListOfShapes GetSolids(const TopoDS_Shape & shape)
213
+ {
214
+ ListOfShapes sub;
215
+ for (TopExp_Explorer e(shape, TopAbs_SOLID); e.More(); e.Next())
216
+ sub.push_back(e.Current());
217
+ return sub;
218
+ }
219
+
220
+ inline ListOfShapes GetShells(const TopoDS_Shape & shape)
221
+ {
222
+ ListOfShapes sub;
223
+ for (TopExp_Explorer e(shape, TopAbs_SHELL); e.More(); e.Next())
224
+ sub.push_back(e.Current());
225
+ return sub;
226
+ }
227
+
228
+ inline ListOfShapes GetFaces(const TopoDS_Shape & shape)
229
+ {
230
+ ListOfShapes sub;
231
+ for (TopExp_Explorer e(shape, TopAbs_FACE); e.More(); e.Next())
232
+ sub.push_back(e.Current());
233
+ return sub;
234
+ }
235
+
236
+ inline ListOfShapes GetWires(const TopoDS_Shape & shape)
237
+ {
238
+ ListOfShapes sub;
239
+ for (TopExp_Explorer e(shape, TopAbs_WIRE); e.More(); e.Next())
240
+ sub.push_back(e.Current());
241
+ return sub;
242
+ }
243
+
244
+ inline ListOfShapes GetEdges(const TopoDS_Shape & shape)
245
+ {
246
+ ListOfShapes sub;
247
+ for (TopExp_Explorer e(shape, TopAbs_EDGE); e.More(); e.Next())
248
+ sub.push_back(e.Current());
249
+ return sub;
250
+ }
251
+
252
+ inline ListOfShapes GetVertices(const TopoDS_Shape & shape)
253
+ {
254
+ ListOfShapes sub;
255
+ for (TopExp_Explorer e(shape, TopAbs_VERTEX); e.More(); e.Next())
256
+ sub.push_back(e.Current());
257
+ return sub;
258
+ }
259
+
260
+ inline ListOfShapes GetHighestDimShapes(const TopoDS_Shape & shape)
261
+ {
262
+ auto ret = GetSolids(shape); if(ret.size() > 0) return ret;
263
+ ret = GetFaces(shape); if(ret.size() > 0) return ret;
264
+ ret = GetEdges(shape); if(ret.size() > 0) return ret;
265
+ ret = GetVertices(shape); if(ret.size() > 0) return ret;
266
+ return ListOfShapes();
267
+ }
268
+
269
+
270
+ class DirectionalInterval
271
+ {
272
+ public:
273
+ gp_Vec dir;
274
+ double minval = -1e99;
275
+ double maxval = 1e99;
276
+ bool openmin = false, openmax = false;
277
+
278
+ DirectionalInterval (gp_Vec adir) : dir(adir) { ; }
279
+ DirectionalInterval (const DirectionalInterval & i2) = default;
280
+
281
+ DirectionalInterval operator< (double val) const
282
+ {
283
+ DirectionalInterval i2 = *this;
284
+ i2.maxval = val;
285
+ i2.openmax = true;
286
+ return i2;
287
+ }
288
+
289
+ DirectionalInterval operator> (double val) const
290
+ {
291
+ DirectionalInterval i2 = *this;
292
+ i2.minval = val;
293
+ i2.openmin = true;
294
+ return i2;
295
+ }
296
+
297
+ DirectionalInterval operator<= (double val) const
298
+ {
299
+ DirectionalInterval i2 = *this;
300
+ i2.maxval = val;
301
+ i2.openmax = false;
302
+ return i2;
303
+ }
304
+
305
+ DirectionalInterval operator>= (double val) const
306
+ {
307
+ DirectionalInterval i2 = *this;
308
+ i2.minval = val;
309
+ i2.openmin = false;
310
+ return i2;
311
+ }
312
+
313
+ DirectionalInterval Intersect (const DirectionalInterval & i2)
314
+ {
315
+ DirectionalInterval res = *this;
316
+ res.minval = max(res.minval, i2.minval);
317
+ res.maxval = min(res.maxval, i2.maxval);
318
+ return res;
319
+ }
320
+
321
+ bool Contains (gp_Pnt p, double eps = 1e-8)
322
+ {
323
+ // cout << "Contains point " << p.X() << "," << p.Y() << "," << p.Z() << " ? " << endl;
324
+ double val = dir.X()*p.X() + dir.Y()*p.Y() + dir.Z() * p.Z();
325
+ // cout << "minval = " << minval << ", val = " << val << " maxval = " << maxval << endl;
326
+ if (openmin) {
327
+ if (val < minval+eps) return false;
328
+ } else {
329
+ if (val < minval-eps) return false;
330
+ }
331
+ if (openmax) {
332
+ if (val > maxval-eps) return false;
333
+ } else {
334
+ if (val > maxval+eps) return false;
335
+ }
336
+ return true;
337
+ }
338
+ };
339
+
340
+ inline auto Properties (TopoDS_Shape shape)
341
+ {
342
+ GProp_GProps props;
343
+ double tol;
344
+ switch (shape.ShapeType())
345
+ {
346
+ case TopAbs_SOLID:
347
+ case TopAbs_COMPOUND:
348
+ case TopAbs_COMPSOLID:
349
+ tol = 1e-2 * BRep_Tool::MaxTolerance(shape, TopAbs_FACE);
350
+ BRepGProp::VolumeProperties (shape, props, tol); break;
351
+ case TopAbs_FACE:
352
+ case TopAbs_SHELL:
353
+ tol = 1e-2 * BRep_Tool::MaxTolerance(shape, TopAbs_FACE);
354
+ BRepGProp::SurfaceProperties (shape, props, tol); break;
355
+ case TopAbs_WIRE:
356
+ case TopAbs_EDGE:
357
+ tol = 1e-2 * BRep_Tool::MaxTolerance(shape, TopAbs_EDGE);
358
+ BRepGProp::LinearProperties(shape, props, tol); break;
359
+ default:
360
+ BRepGProp::LinearProperties(shape, props);
361
+ }
362
+ return props;
363
+ }
364
+
365
+ inline gp_Pnt Center (TopoDS_Shape shape)
366
+ {
367
+ return Properties(shape).CentreOfMass();
368
+ }
369
+
370
+ inline double Mass (TopoDS_Shape shape)
371
+ {
372
+ return Properties(shape).Mass();
373
+ }
374
+
375
+ }
376
+ #endif // FILE_OCC_UTILS_INCLUDED
@@ -0,0 +1,30 @@
1
+ #ifndef FILE_OCC_VERTEX_INCLUDED
2
+ #define FILE_OCC_VERTEX_INCLUDED
3
+
4
+ // #pragma clang diagnostic push
5
+ // #pragma clang diagnostic ignored "-Wdeprecated-declarations"
6
+
7
+ #include <TopoDS.hxx>
8
+ #include <BRep_TVertex.hxx>
9
+
10
+ // #pragma clang diagnostic pop
11
+
12
+ #include "meshing.hpp"
13
+ #include "occ_utils.hpp"
14
+
15
+ namespace netgen
16
+ {
17
+ class OCCVertex : public GeometryVertex
18
+ {
19
+ TopoDS_Vertex vertex;
20
+ Point<3> p;
21
+
22
+ public:
23
+ OCCVertex( ) = default;
24
+ OCCVertex( TopoDS_Shape s );
25
+ ~OCCVertex() {}
26
+ Point<3> GetPoint() const override;
27
+ };
28
+ }
29
+
30
+ #endif // FILE_OCC_VERTEX_INCLUDED