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,404 @@
1
+ #ifndef FILE_GEOMOPS
2
+ #define FILE_GEOMOPS
3
+
4
+ /* *************************************************************************/
5
+ /* File: geomops.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 20. Jul. 02 */
8
+ /* *************************************************************************/
9
+
10
+
11
+ namespace netgen
12
+ {
13
+
14
+ /*
15
+
16
+ Point - Vector operations
17
+
18
+ */
19
+
20
+
21
+ template <int D, typename T>
22
+ inline Vec<D,T> operator+ (Vec<D,T> a, Vec<D,T> b)
23
+ {
24
+ Vec<D,T> res;
25
+ for (int i = 0; i < D; i++)
26
+ res(i) = a(i) + b(i);
27
+ return res;
28
+ }
29
+
30
+
31
+
32
+ template <int D, typename T>
33
+ inline Point<D,T> operator+ (Point<D,T> a, Vec<D,T> b)
34
+ {
35
+ Point<D,T> res;
36
+ for (int i = 0; i < D; i++)
37
+ res(i) = a(i) + b(i);
38
+ return res;
39
+ }
40
+
41
+
42
+
43
+ template <int D, typename T>
44
+ inline Vec<D,T> operator- (Point<D,T> a, Point<D,T> b)
45
+ {
46
+ Vec<D,T> res;
47
+ for (int i = 0; i < D; i++)
48
+ res(i) = a(i) - b(i);
49
+ return res;
50
+ }
51
+
52
+ template <int D, typename T>
53
+ inline Point<D,T> operator- (Point<D,T> a, Vec<D,T> b)
54
+ {
55
+ Point<D,T> res;
56
+ for (int i = 0; i < D; i++)
57
+ res(i) = a(i) - b(i);
58
+ return res;
59
+ }
60
+
61
+ template <int D, typename T>
62
+ inline Vec<D,T> operator- (Vec<D,T> a, Vec<D,T> b)
63
+ {
64
+ Vec<D,T> res;
65
+ for (int i = 0; i < D; i++)
66
+ res(i) = a(i) - b(i);
67
+ return res;
68
+ }
69
+
70
+
71
+
72
+ template <int D, typename T>
73
+ inline Vec<D,T> operator* (T s, Vec<D,T> b)
74
+ {
75
+ Vec<D,T> res;
76
+ for (int i = 0; i < D; i++)
77
+ res(i) = s * b(i);
78
+ return res;
79
+ }
80
+
81
+ template <int D, int SW>
82
+ inline Vec<D, SIMD<double,SW>> operator* (SIMD<double,SW> s, Vec<D,double> b)
83
+ {
84
+ Vec<D,SIMD<double,SW>> res;
85
+ for (int i = 0; i < D; i++)
86
+ res(i) = s * b(i);
87
+ return res;
88
+ }
89
+
90
+
91
+ template <int D>
92
+ inline double operator* (Vec<D> a, Vec<D> b)
93
+ {
94
+ double sum = 0;
95
+ for (int i = 0; i < D; i++)
96
+ sum += a(i) * b(i);
97
+ return sum;
98
+ }
99
+
100
+
101
+
102
+ template <int D, typename T>
103
+ inline Vec<D,T> operator- (Vec<D,T> b)
104
+ {
105
+ Vec<D,T> res;
106
+ for (int i = 0; i < D; i++)
107
+ res(i) = -b(i);
108
+ return res;
109
+ }
110
+
111
+
112
+ template <int D, typename T>
113
+ inline Point<D,T> & operator+= (Point<D,T> & a, Vec<D,T> b)
114
+ {
115
+ for (int i = 0; i < D; i++)
116
+ a(i) += b(i);
117
+ return a;
118
+ }
119
+
120
+ template <int D, typename T>
121
+ inline Vec<D,T> & operator+= (Vec<D,T> & a, Vec<D> b)
122
+ {
123
+ for (int i = 0; i < D; i++)
124
+ a(i) += b(i);
125
+ return a;
126
+ }
127
+
128
+
129
+ template <int D>
130
+ inline Point<D> & operator-= (Point<D> & a, const Vec<D> & b)
131
+ {
132
+ for (int i = 0; i < D; i++)
133
+ a(i) -= b(i);
134
+ return a;
135
+ }
136
+
137
+ template <int D>
138
+ inline Vec<D> & operator-= (Vec<D> & a, const Vec<D> & b)
139
+ {
140
+ for (int i = 0; i < D; i++)
141
+ a(i) -= b(i);
142
+ return a;
143
+ }
144
+
145
+
146
+
147
+ template <int D, typename T1, typename T2>
148
+ inline Vec<D,T1> & operator*= (Vec<D,T1> & a, T2 s)
149
+ {
150
+ for (int i = 0; i < D; i++)
151
+ a(i) *= s;
152
+ return a;
153
+ }
154
+
155
+
156
+ template <int D>
157
+ inline Vec<D> & operator/= (Vec<D> & a, double s)
158
+ {
159
+ for (int i = 0; i < D; i++)
160
+ a(i) /= s;
161
+ return a;
162
+ }
163
+
164
+
165
+
166
+
167
+ // Matrix - Vector operations
168
+
169
+ /*
170
+ template <int H, int W>
171
+ inline Vec<H> operator* (const Mat<H,W> & m, const Vec<W> & v)
172
+ {
173
+ Vec<H> res;
174
+ for (int i = 0; i < H; i++)
175
+ {
176
+ res(i) = 0;
177
+ for (int j = 0; j < W; j++)
178
+ res(i) += m(i,j) * v(j);
179
+ }
180
+ return res;
181
+ }
182
+ */
183
+
184
+ // thanks to VC60 partial template specialization features !!!
185
+
186
+ inline Vec<2> operator* (const Mat<2,2> & m, const Vec<2> & v)
187
+ {
188
+ Vec<2> res;
189
+ for (int i = 0; i < 2; i++)
190
+ {
191
+ res(i) = 0;
192
+ for (int j = 0; j < 2; j++)
193
+ res(i) += m(i,j) * v(j);
194
+ }
195
+ return res;
196
+ }
197
+
198
+ inline Vec<2> operator* (const Mat<2,3> & m, const Vec<3> & v)
199
+ {
200
+ Vec<2> res;
201
+ for (int i = 0; i < 2; i++)
202
+ {
203
+ res(i) = 0;
204
+ for (int j = 0; j < 3; j++)
205
+ res(i) += m(i,j) * v(j);
206
+ }
207
+ return res;
208
+ }
209
+
210
+
211
+ inline Vec<3> operator* (const Mat<3,2> & m, const Vec<2> & v)
212
+ {
213
+ Vec<3> res;
214
+ for (int i = 0; i < 3; i++)
215
+ {
216
+ res(i) = 0;
217
+ for (int j = 0; j < 2; j++)
218
+ res(i) += m(i,j) * v(j);
219
+ }
220
+ return res;
221
+ }
222
+
223
+
224
+ inline Vec<3> operator* (const Mat<3,3> & m, const Vec<3> & v)
225
+ {
226
+ Vec<3> res;
227
+ for (int i = 0; i < 3; i++)
228
+ {
229
+ res(i) = 0;
230
+ for (int j = 0; j < 3; j++)
231
+ res(i) += m(i,j) * v(j);
232
+ }
233
+ return res;
234
+ }
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+ /*
243
+ template <int H1, int W1, int H2, int W2>
244
+ inline Mat<H1,W2> operator* (const Mat<H1,W1> & a, const Mat<H2,W2> & b)
245
+ {
246
+ Mat<H1,W2> m;
247
+ for (int i = 0; i < H1; i++)
248
+ for (int j = 0; j < W2; j++)
249
+ {
250
+ double sum = 0;
251
+ for (int k = 0; k < W1; k++)
252
+ sum += a(i,k) * b(k, j);
253
+ m(i,j) = sum;
254
+ }
255
+ return m;
256
+ }
257
+ */
258
+
259
+ template <typename T>
260
+ inline Mat<2,2,T> operator* (const Mat<2,2,T> & a, const Mat<2,2,T> & b)
261
+ {
262
+ Mat<2,2,T> m;
263
+ for (int i = 0; i < 2; i++)
264
+ for (int j = 0; j < 2; j++)
265
+ {
266
+ T sum(0);
267
+ for (int k = 0; k < 2; k++)
268
+ sum += a(i,k) * b(k, j);
269
+ m(i,j) = sum;
270
+ }
271
+ return m;
272
+ }
273
+
274
+ inline Mat<2,2> operator* (const Mat<2,3> & a, const Mat<3,2> & b)
275
+ {
276
+ Mat<2,2> m;
277
+ for (int i = 0; i < 2; i++)
278
+ for (int j = 0; j < 2; j++)
279
+ {
280
+ double sum = 0;
281
+ for (int k = 0; k < 3; k++)
282
+ sum += a(i,k) * b(k, j);
283
+ m(i,j) = sum;
284
+ }
285
+ return m;
286
+ }
287
+
288
+ template <typename T>
289
+ inline Mat<3,2,T> operator* (const Mat<3,2,T> & a, const Mat<2,2,T> & b)
290
+ {
291
+ Mat<3,2,T> m;
292
+ for (int i = 0; i < 3; i++)
293
+ for (int j = 0; j < 2; j++)
294
+ {
295
+ T sum(0.0);
296
+ for (int k = 0; k < 2; k++)
297
+ sum += a(i,k) * b(k, j);
298
+ m(i,j) = sum;
299
+ }
300
+ return m;
301
+ }
302
+
303
+
304
+
305
+ inline Mat<2,3> operator* (const Mat<2,2> & a, const Mat<2,3> & b)
306
+ {
307
+ Mat<2,3> m;
308
+ for (int i = 0; i < 2; i++)
309
+ for (int j = 0; j < 3; j++)
310
+ {
311
+ double sum = 0;
312
+ for (int k = 0; k < 2; k++)
313
+ sum += a(i,k) * b(k, j);
314
+ m(i,j) = sum;
315
+ }
316
+ return m;
317
+ }
318
+
319
+ template <typename T>
320
+ inline Mat<3,3,T> operator* (const Mat<3,3,T> & a, const Mat<3,3,T> & b)
321
+ {
322
+ Mat<3,3,T> m;
323
+ for (int i = 0; i < 3; i++)
324
+ for (int j = 0; j < 3; j++)
325
+ {
326
+ T sum = T(0);
327
+ for (int k = 0; k < 3; k++)
328
+ sum += a(i,k) * b(k, j);
329
+ m(i,j) = sum;
330
+ }
331
+ return m;
332
+ }
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+ template <int H, int W>
342
+ inline Mat<W,H> Trans (const Mat<H,W> & m)
343
+ {
344
+ Mat<W,H> res;
345
+ for (int i = 0; i < H; i++)
346
+ for (int j = 0; j < W; j++)
347
+ res(j,i) = m(i,j);
348
+ return res;
349
+ }
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+ template <int D, typename T>
362
+ inline ostream & operator<< (ostream & ost, const Vec<D,T> & a)
363
+ {
364
+ ost << "(";
365
+ for (int i = 0; i < D-1; i++)
366
+ ost << a(i) << ", ";
367
+ ost << a(D-1) << ")";
368
+ return ost;
369
+ }
370
+
371
+ template <int D, typename T>
372
+ inline ostream & operator<< (ostream & ost, const Point<D,T> & a)
373
+ {
374
+ ost << "(";
375
+ for (int i = 0; i < D-1; i++)
376
+ ost << a(i) << ", ";
377
+ ost << a(D-1) << ")";
378
+ return ost;
379
+ }
380
+
381
+ template <int D>
382
+ inline ostream & operator<< (ostream & ost, const Box<D> & b)
383
+ {
384
+ ost << b.PMin() << " - " << b.PMax();
385
+ return ost;
386
+ }
387
+
388
+ template <int H, int W, typename T>
389
+ inline ostream & operator<< (ostream & ost, const Mat<H,W,T> & m)
390
+ {
391
+ ost << "(";
392
+ for (int i = 0; i < H; i++)
393
+ {
394
+ for (int j = 0; j < W; j++)
395
+ ost << m(i,j) << " ";
396
+ ost << endl;
397
+ }
398
+ return ost;
399
+ }
400
+
401
+
402
+ }
403
+
404
+ #endif
@@ -0,0 +1,101 @@
1
+ #ifndef FILE_GEOMTEST3D
2
+ #define FILE_GEOMTEST3D
3
+
4
+ /* *************************************************************************/
5
+ /* File: geomtest3d.hh */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 13. Feb. 98 */
8
+ /* *************************************************************************/
9
+
10
+ #include "geom3d.hpp"
11
+ #include "geomobjects.hpp"
12
+
13
+ namespace netgen
14
+ {
15
+
16
+
17
+ extern int
18
+ IntersectTriangleLine (const Point<3> ** tri, const Point<3> ** line);
19
+
20
+
21
+
22
+ /**
23
+ Returns 0, iff
24
+ closure (tet) cup closure (tri) is empty, one corner point of tet,
25
+ one edge of tet or one face of tet
26
+ */
27
+ extern int
28
+ IntersectTetTriangle (const Point<3> ** tet, const Point<3> ** tri,
29
+ const int * tetpi = NULL, const int * tripi = NULL);
30
+
31
+ /**
32
+ Same test as above, but tet int reference position (0, ex, ey, ez),
33
+ tetpi = 1, 2, 4, 5
34
+ */
35
+ extern int
36
+ IntersectTetTriangleRef (const Point3d ** tri, const int * tripi = NULL);
37
+
38
+
39
+ // 1, iff not regular triangulation
40
+ extern int
41
+ IntersectTriangleTriangle (const Point<3> ** tri1, const Point<3> ** tri2);
42
+
43
+
44
+ extern void
45
+ LocalCoordinates (const Vec3d & e1, const Vec3d & e2,
46
+ const Vec3d & v, double & lam1, double & lam2);
47
+
48
+ /// return 1 = degenerated sphere
49
+ extern int
50
+ CalcSphereCenter (const Point<3> ** pts, Point<3> & c);
51
+
52
+ /// return 1 = degenerated triangle
53
+ extern int
54
+ CalcTriangleCenter (const Point3d ** pts, Point3d & c);
55
+
56
+
57
+
58
+ /*
59
+ Compute radius of cylinder fitting 4 points.
60
+ cylinder axis is in the direction of p1-p2
61
+ */
62
+ extern double ComputeCylinderRadius (const Point3d & p1, const Point3d & p2,
63
+ const Point3d & p3, const Point3d & p4);
64
+
65
+ /*
66
+ Two triangles T1 and T2 have normals n1 and n2.
67
+ The height over the common edge is h1, and h2.
68
+ Radius of cylinder fitting both triangles
69
+ */
70
+ extern double ComputeCylinderRadius (const Vec3d & n1, const Vec3d & n2,
71
+ double h1, double h2);
72
+
73
+ /// Minimal distance of point p to the line segment [lp1,lp2]
74
+ DLL_HEADER double MinDistLP2 (const Point2d & lp1, const Point2d & lp2, const Point2d & p);
75
+
76
+ /// Minimal distance of point p to the line segment [lp1,lp2]
77
+ DLL_HEADER double MinDistLP2 (const Point3d & lp1, const Point3d & lp2, const Point3d & p);
78
+
79
+ /// Minimal distance of point p to the triangle segment [tp1,tp2,pt3]
80
+ DLL_HEADER double MinDistTP2 (const Point3d & tp1, const Point3d & tp2,
81
+ const Point3d & tp3, const Point3d & p);
82
+
83
+ inline double MinDistTP2 (const Point<2> & tp1, const Point<2> & tp2,
84
+ const Point<2> & tp3, const Point<2> & p)
85
+ {
86
+ return MinDistTP2 (Point<3> (tp1(0), tp1(1),0),
87
+ Point<3> (tp2(0), tp2(1),0),
88
+ Point<3> (tp3(0), tp3(1),0),
89
+ Point<3> (p(0), p(1),0));
90
+ }
91
+
92
+ /// Minimal distance of the 2 lines [l1p1,l1p2] and [l2p1,l2p2]
93
+ extern double MinDistLL2 (const Point3d & l1p1, const Point3d & l1p2,
94
+ const Point3d & l2p1, const Point3d & l2p2);
95
+
96
+ extern double MinDistLL2 (const Point3d & l1p1, const Point3d & l1p2,
97
+ const Point3d & l2p1, const Point3d & l2p2, double & lam1, double & lam2 );
98
+
99
+ }
100
+
101
+ #endif
@@ -0,0 +1,33 @@
1
+ #ifndef FILE_GPRIM
2
+ #define FILE_GPRIM
3
+
4
+ /* *************************************************************************/
5
+ /* File: gprim.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 14. Aug. 97 */
8
+ /* *************************************************************************/
9
+
10
+
11
+ #include <myadt.hpp>
12
+ #include <linalg.hpp>
13
+
14
+
15
+
16
+
17
+ #include "geomobjects.hpp"
18
+ #include "geomops.hpp"
19
+ #include "geomfuncs.hpp"
20
+
21
+ #include "geom2d.hpp"
22
+ #include "geom3d.hpp"
23
+
24
+ #include "geomtest3d.hpp"
25
+ #include "transform3d.hpp"
26
+
27
+ #include "adtree.hpp"
28
+
29
+ #include "spline.hpp"
30
+ #include "splinegeometry.hpp"
31
+
32
+
33
+ #endif