PyGEL3D 0.8.0__tar.gz
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.
- pygel3d-0.8.0/CMakeLists.txt +223 -0
- pygel3d-0.8.0/LICENSE.md +27 -0
- pygel3d-0.8.0/MANIFEST.in +15 -0
- pygel3d-0.8.0/PKG-INFO +159 -0
- pygel3d-0.8.0/README.md +135 -0
- pygel3d-0.8.0/VERSION +1 -0
- pygel3d-0.8.0/cmake/GELConfig.cmake.in +13 -0
- pygel3d-0.8.0/pyproject.toml +67 -0
- pygel3d-0.8.0/setup.cfg +4 -0
- pygel3d-0.8.0/setup.py +202 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithMatFloat.h +445 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithQuat.h +283 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithSqMat2x2Float.h +79 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithSqMat3x3Float.h +116 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithSqMat4x4Float.cpp +211 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithSqMat4x4Float.h +169 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithSqMatFloat.h +140 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVec.h +552 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVec2Float.cpp +43 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVec2Float.h +60 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVec3Float.cpp +77 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVec3Float.h +74 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVec3Int.h +46 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVec4Float.h +45 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVec4Int.h +34 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVecFloat.h +112 -0
- pygel3d-0.8.0/src/GEL/CGLA/ArithVecInt.h +37 -0
- pygel3d-0.8.0/src/GEL/CGLA/BitMask.h +117 -0
- pygel3d-0.8.0/src/GEL/CGLA/CGLA-util.h +173 -0
- pygel3d-0.8.0/src/GEL/CGLA/CGLA.h +18 -0
- pygel3d-0.8.0/src/GEL/CGLA/Definitions.h +115 -0
- pygel3d-0.8.0/src/GEL/CGLA/ExceptionStandard.h +42 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat.h +228 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat2x2d.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat2x2f.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat2x3d.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat2x3f.h +18 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat3x3d.cpp +52 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat3x3d.h +18 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat3x3f.cpp +52 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat3x3f.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat4x4d.cpp +72 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat4x4d.h +18 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat4x4f.cpp +141 -0
- pygel3d-0.8.0/src/GEL/CGLA/Mat4x4f.h +18 -0
- pygel3d-0.8.0/src/GEL/CGLA/Quatd.h +85 -0
- pygel3d-0.8.0/src/GEL/CGLA/Quaternion.h +19 -0
- pygel3d-0.8.0/src/GEL/CGLA/Quatf.h +85 -0
- pygel3d-0.8.0/src/GEL/CGLA/TableTrigonometry.cpp +22 -0
- pygel3d-0.8.0/src/GEL/CGLA/TableTrigonometry.h +91 -0
- pygel3d-0.8.0/src/GEL/CGLA/UnitVector.h +76 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec.h +194 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec2d.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec2f.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec2i.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec2ui.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec3d.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec3f.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec3i.h +18 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec3uc.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec3usi.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec4d.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec4f.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec4i.h +17 -0
- pygel3d-0.8.0/src/GEL/CGLA/Vec4uc.h +18 -0
- pygel3d-0.8.0/src/GEL/CGLA/eigensolution.cpp +97 -0
- pygel3d-0.8.0/src/GEL/CGLA/eigensolution.h +37 -0
- pygel3d-0.8.0/src/GEL/CGLA/gel_rand.cpp +44 -0
- pygel3d-0.8.0/src/GEL/CGLA/ls_solve.h +77 -0
- pygel3d-0.8.0/src/GEL/CGLA/statistics.cpp +52 -0
- pygel3d-0.8.0/src/GEL/CGLA/statistics.h +47 -0
- pygel3d-0.8.0/src/GEL/GL/glew.c +18123 -0
- pygel3d-0.8.0/src/GEL/GL/glew.h +18062 -0
- pygel3d-0.8.0/src/GEL/GL/glxew.h +1669 -0
- pygel3d-0.8.0/src/GEL/GL/wglew.h +1421 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/Console.cpp +1359 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/Console.h +548 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/GLViewController.cpp +163 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/GLViewController.h +114 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/IDBufferWireFrameRenderer.cpp +528 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/IDBufferWireFrameRenderer.h +66 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/ManifoldRenderer.cpp +877 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/ManifoldRenderer.h +304 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/MeshEditor.cpp +2081 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/MeshEditor.h +207 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/QuatTrackBall.cpp +202 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/QuatTrackBall.h +152 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/SOIL.c +2050 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/SOIL.h +456 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/ShadowBuffer.cpp +75 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/ShadowBuffer.h +47 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/SimpleTrackBall.cpp +94 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/SimpleTrackBall.h +105 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/SinglePassWireframeRenderer.cpp +137 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/SinglePassWireframeRenderer.h +36 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/VisObj.cpp +399 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/VisObj.h +158 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/draw.cpp +395 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/draw.h +101 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/glsl_shader.cpp +98 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/glsl_shader.h +103 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/image_DXT.c +632 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/image_DXT.h +127 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/image_helper.c +435 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/image_helper.h +119 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/stb_image.c +4747 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/stb_image.h +337 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/stb_image_write.c +475 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/stb_image_write.h +71 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/stbi_DDS_aug.h +25 -0
- pygel3d-0.8.0/src/GEL/GLGraphics/stbi_DDS_aug_c.h +515 -0
- pygel3d-0.8.0/src/GEL/Geometry/AABox.cpp +151 -0
- pygel3d-0.8.0/src/GEL/Geometry/AABox.h +62 -0
- pygel3d-0.8.0/src/GEL/Geometry/AncestorGrid.h +114 -0
- pygel3d-0.8.0/src/GEL/Geometry/BBox.cpp +222 -0
- pygel3d-0.8.0/src/GEL/Geometry/BBox.h +76 -0
- pygel3d-0.8.0/src/GEL/Geometry/BSPTree.cpp +647 -0
- pygel3d-0.8.0/src/GEL/Geometry/BSPTree.h +123 -0
- pygel3d-0.8.0/src/GEL/Geometry/BoundingINode.cpp +62 -0
- pygel3d-0.8.0/src/GEL/Geometry/BoundingINode.h +46 -0
- pygel3d-0.8.0/src/GEL/Geometry/BoundingLNode.cpp +15 -0
- pygel3d-0.8.0/src/GEL/Geometry/BoundingLNode.h +112 -0
- pygel3d-0.8.0/src/GEL/Geometry/BoundingNode.cpp +68 -0
- pygel3d-0.8.0/src/GEL/Geometry/BoundingNode.h +48 -0
- pygel3d-0.8.0/src/GEL/Geometry/BoundingTree.cpp +195 -0
- pygel3d-0.8.0/src/GEL/Geometry/BoundingTree.h +57 -0
- pygel3d-0.8.0/src/GEL/Geometry/Cell.h +179 -0
- pygel3d-0.8.0/src/GEL/Geometry/DynCon.h +707 -0
- pygel3d-0.8.0/src/GEL/Geometry/GradientFilter.cpp +52 -0
- pygel3d-0.8.0/src/GEL/Geometry/GradientFilter.h +46 -0
- pygel3d-0.8.0/src/GEL/Geometry/Graph.cpp +434 -0
- pygel3d-0.8.0/src/GEL/Geometry/Graph.h +363 -0
- pygel3d-0.8.0/src/GEL/Geometry/GridAlgorithm.h +527 -0
- pygel3d-0.8.0/src/GEL/Geometry/HGrid.h +135 -0
- pygel3d-0.8.0/src/GEL/Geometry/Implicit.cpp +95 -0
- pygel3d-0.8.0/src/GEL/Geometry/Implicit.h +42 -0
- pygel3d-0.8.0/src/GEL/Geometry/IndexedFaceSet.h +107 -0
- pygel3d-0.8.0/src/GEL/Geometry/KDTree.h +479 -0
- pygel3d-0.8.0/src/GEL/Geometry/Material.h +82 -0
- pygel3d-0.8.0/src/GEL/Geometry/NeighborUtil.h +120 -0
- pygel3d-0.8.0/src/GEL/Geometry/Neighbours.cpp +163 -0
- pygel3d-0.8.0/src/GEL/Geometry/Neighbours.h +32 -0
- pygel3d-0.8.0/src/GEL/Geometry/OBox.cpp +222 -0
- pygel3d-0.8.0/src/GEL/Geometry/OBox.h +58 -0
- pygel3d-0.8.0/src/GEL/Geometry/QEM.cpp +50 -0
- pygel3d-0.8.0/src/GEL/Geometry/QEM.h +87 -0
- pygel3d-0.8.0/src/GEL/Geometry/RGrid.h +149 -0
- pygel3d-0.8.0/src/GEL/Geometry/Ray.h +141 -0
- pygel3d-0.8.0/src/GEL/Geometry/SphereDelaunay.cpp +184 -0
- pygel3d-0.8.0/src/GEL/Geometry/SphereDelaunay.h +18 -0
- pygel3d-0.8.0/src/GEL/Geometry/ThreeDDDA.cpp +155 -0
- pygel3d-0.8.0/src/GEL/Geometry/ThreeDDDA.h +201 -0
- pygel3d-0.8.0/src/GEL/Geometry/TriMesh.cpp +160 -0
- pygel3d-0.8.0/src/GEL/Geometry/TriMesh.h +95 -0
- pygel3d-0.8.0/src/GEL/Geometry/Triangle.cpp +153 -0
- pygel3d-0.8.0/src/GEL/Geometry/Triangle.h +91 -0
- pygel3d-0.8.0/src/GEL/Geometry/TrilinFilter.cpp +107 -0
- pygel3d-0.8.0/src/GEL/Geometry/TrilinFilter.h +41 -0
- pygel3d-0.8.0/src/GEL/Geometry/XForm.h +100 -0
- pygel3d-0.8.0/src/GEL/Geometry/bounding_sphere.cpp +122 -0
- pygel3d-0.8.0/src/GEL/Geometry/bounding_sphere.h +26 -0
- pygel3d-0.8.0/src/GEL/Geometry/build_bbtree.cpp +98 -0
- pygel3d-0.8.0/src/GEL/Geometry/build_bbtree.h +33 -0
- pygel3d-0.8.0/src/GEL/Geometry/etf.h +225 -0
- pygel3d-0.8.0/src/GEL/Geometry/geo_load.cpp +36 -0
- pygel3d-0.8.0/src/GEL/Geometry/geo_obj_load.cpp +270 -0
- pygel3d-0.8.0/src/GEL/Geometry/graph_io.cpp +351 -0
- pygel3d-0.8.0/src/GEL/Geometry/graph_io.h +85 -0
- pygel3d-0.8.0/src/GEL/Geometry/graph_skeletonize.cpp +1381 -0
- pygel3d-0.8.0/src/GEL/Geometry/graph_skeletonize.h +195 -0
- pygel3d-0.8.0/src/GEL/Geometry/graph_util.cpp +742 -0
- pygel3d-0.8.0/src/GEL/Geometry/graph_util.h +151 -0
- pygel3d-0.8.0/src/GEL/Geometry/jrs_triangle.c +16009 -0
- pygel3d-0.8.0/src/GEL/Geometry/jrs_triangle.h +299 -0
- pygel3d-0.8.0/src/GEL/Geometry/load.h +26 -0
- pygel3d-0.8.0/src/GEL/Geometry/load_raw.cpp +36 -0
- pygel3d-0.8.0/src/GEL/Geometry/load_raw.h +27 -0
- pygel3d-0.8.0/src/GEL/Geometry/normal.h +243 -0
- pygel3d-0.8.0/src/GEL/Geometry/obj_load.h +28 -0
- pygel3d-0.8.0/src/GEL/Geometry/ply_load.h +25 -0
- pygel3d-0.8.0/src/GEL/Geometry/rply.c +1497 -0
- pygel3d-0.8.0/src/GEL/Geometry/rply.h +369 -0
- pygel3d-0.8.0/src/GEL/Geometry/rply_load.cpp +83 -0
- pygel3d-0.8.0/src/GEL/Geometry/save_raw.h +123 -0
- pygel3d-0.8.0/src/GEL/Geometry/tessellate.cpp +637 -0
- pygel3d-0.8.0/src/GEL/Geometry/tessellate.h +45 -0
- pygel3d-0.8.0/src/GEL/Geometry/verification.cpp +237 -0
- pygel3d-0.8.0/src/GEL/Geometry/verification.h +20 -0
- pygel3d-0.8.0/src/GEL/HMesh/AttributeVector.h +63 -0
- pygel3d-0.8.0/src/GEL/HMesh/Circulators.h +143 -0
- pygel3d-0.8.0/src/GEL/HMesh/ConnectivityKernel.cpp +49 -0
- pygel3d-0.8.0/src/GEL/HMesh/ConnectivityKernel.h +338 -0
- pygel3d-0.8.0/src/GEL/HMesh/Delaunay_triangulate.cpp +92 -0
- pygel3d-0.8.0/src/GEL/HMesh/Delaunay_triangulate.h +18 -0
- pygel3d-0.8.0/src/GEL/HMesh/HMesh.h +29 -0
- pygel3d-0.8.0/src/GEL/HMesh/HierarchicalReconstruction.cpp +1673 -0
- pygel3d-0.8.0/src/GEL/HMesh/HierarchicalReconstruction.h +188 -0
- pygel3d-0.8.0/src/GEL/HMesh/ItemID.h +65 -0
- pygel3d-0.8.0/src/GEL/HMesh/ItemVector.h +240 -0
- pygel3d-0.8.0/src/GEL/HMesh/Iterators.h +132 -0
- pygel3d-0.8.0/src/GEL/HMesh/Manifold.cpp +1786 -0
- pygel3d-0.8.0/src/GEL/HMesh/Manifold.h +1241 -0
- pygel3d-0.8.0/src/GEL/HMesh/RSRExperimental.cpp +2307 -0
- pygel3d-0.8.0/src/GEL/HMesh/RSRExperimental.h +95 -0
- pygel3d-0.8.0/src/GEL/HMesh/RsR.cpp +2464 -0
- pygel3d-0.8.0/src/GEL/HMesh/RsR.h +449 -0
- pygel3d-0.8.0/src/GEL/HMesh/Walker.h +150 -0
- pygel3d-0.8.0/src/GEL/HMesh/cleanup.cpp +359 -0
- pygel3d-0.8.0/src/GEL/HMesh/cleanup.h +65 -0
- pygel3d-0.8.0/src/GEL/HMesh/curvature.cpp +373 -0
- pygel3d-0.8.0/src/GEL/HMesh/curvature.h +165 -0
- pygel3d-0.8.0/src/GEL/HMesh/dual.cpp +55 -0
- pygel3d-0.8.0/src/GEL/HMesh/dual.h +22 -0
- pygel3d-0.8.0/src/GEL/HMesh/face_loop.cpp +861 -0
- pygel3d-0.8.0/src/GEL/HMesh/face_loop.h +96 -0
- pygel3d-0.8.0/src/GEL/HMesh/graph_algorithm.cpp +77 -0
- pygel3d-0.8.0/src/GEL/HMesh/graph_algorithm.h +31 -0
- pygel3d-0.8.0/src/GEL/HMesh/load.cpp +56 -0
- pygel3d-0.8.0/src/GEL/HMesh/load.h +28 -0
- pygel3d-0.8.0/src/GEL/HMesh/mesh_optimization.cpp +785 -0
- pygel3d-0.8.0/src/GEL/HMesh/mesh_optimization.h +151 -0
- pygel3d-0.8.0/src/GEL/HMesh/obj_load.cpp +96 -0
- pygel3d-0.8.0/src/GEL/HMesh/obj_load.h +29 -0
- pygel3d-0.8.0/src/GEL/HMesh/obj_save.cpp +98 -0
- pygel3d-0.8.0/src/GEL/HMesh/obj_save.h +27 -0
- pygel3d-0.8.0/src/GEL/HMesh/off_load.cpp +61 -0
- pygel3d-0.8.0/src/GEL/HMesh/off_load.h +25 -0
- pygel3d-0.8.0/src/GEL/HMesh/off_save.cpp +59 -0
- pygel3d-0.8.0/src/GEL/HMesh/off_save.h +25 -0
- pygel3d-0.8.0/src/GEL/HMesh/ply_load.cpp +82 -0
- pygel3d-0.8.0/src/GEL/HMesh/ply_load.h +26 -0
- pygel3d-0.8.0/src/GEL/HMesh/polygonize.cpp +132 -0
- pygel3d-0.8.0/src/GEL/HMesh/polygonize.h +45 -0
- pygel3d-0.8.0/src/GEL/HMesh/quad_valencify.cpp +553 -0
- pygel3d-0.8.0/src/GEL/HMesh/quad_valencify.h +30 -0
- pygel3d-0.8.0/src/GEL/HMesh/quadric_simplify.cpp +221 -0
- pygel3d-0.8.0/src/GEL/HMesh/quadric_simplify.h +24 -0
- pygel3d-0.8.0/src/GEL/HMesh/refine_edges.cpp +64 -0
- pygel3d-0.8.0/src/GEL/HMesh/refine_edges.h +32 -0
- pygel3d-0.8.0/src/GEL/HMesh/skeleton_to_FEQ.cpp +897 -0
- pygel3d-0.8.0/src/GEL/HMesh/skeleton_to_FEQ.h +11 -0
- pygel3d-0.8.0/src/GEL/HMesh/smooth.cpp +282 -0
- pygel3d-0.8.0/src/GEL/HMesh/smooth.h +58 -0
- pygel3d-0.8.0/src/GEL/HMesh/stable_marriage_registration.cpp +259 -0
- pygel3d-0.8.0/src/GEL/HMesh/stable_marriage_registration.h +16 -0
- pygel3d-0.8.0/src/GEL/HMesh/subdivision.cpp +284 -0
- pygel3d-0.8.0/src/GEL/HMesh/subdivision.h +51 -0
- pygel3d-0.8.0/src/GEL/HMesh/triangulate.cpp +129 -0
- pygel3d-0.8.0/src/GEL/HMesh/triangulate.h +29 -0
- pygel3d-0.8.0/src/GEL/HMesh/x3d_load.cpp +119 -0
- pygel3d-0.8.0/src/GEL/HMesh/x3d_load.h +23 -0
- pygel3d-0.8.0/src/GEL/HMesh/x3d_save.cpp +88 -0
- pygel3d-0.8.0/src/GEL/HMesh/x3d_save.h +22 -0
- pygel3d-0.8.0/src/GEL/Util/ArgExtracter.h +133 -0
- pygel3d-0.8.0/src/GEL/Util/Assert.h +220 -0
- pygel3d-0.8.0/src/GEL/Util/AssociativeContainers.h +85 -0
- pygel3d-0.8.0/src/GEL/Util/AttribVec.h +120 -0
- pygel3d-0.8.0/src/GEL/Util/Grid2D.h +78 -0
- pygel3d-0.8.0/src/GEL/Util/InplaceVector.h +286 -0
- pygel3d-0.8.0/src/GEL/Util/ParallelAdapters.h +815 -0
- pygel3d-0.8.0/src/GEL/Util/Parse.cpp +180 -0
- pygel3d-0.8.0/src/GEL/Util/Parse.h +37 -0
- pygel3d-0.8.0/src/GEL/Util/RSRTimer.h +86 -0
- pygel3d-0.8.0/src/GEL/Util/Range.h +55 -0
- pygel3d-0.8.0/src/GEL/Util/Serialization.h +74 -0
- pygel3d-0.8.0/src/GEL/Util/SparseGraph.h +276 -0
- pygel3d-0.8.0/src/GEL/Util/ThreadPool.h +104 -0
- pygel3d-0.8.0/src/GEL/Util/Timer.h +63 -0
- pygel3d-0.8.0/src/GEL/Util/XmlParser.cpp +261 -0
- pygel3d-0.8.0/src/GEL/Util/XmlParser.h +85 -0
- pygel3d-0.8.0/src/GEL/Util/math_utils.h +14 -0
- pygel3d-0.8.0/src/GEL/Util/string_utils.cpp +93 -0
- pygel3d-0.8.0/src/GEL/Util/string_utils.h +30 -0
- pygel3d-0.8.0/src/PyGEL/Graph.cpp +116 -0
- pygel3d-0.8.0/src/PyGEL/Graph.h +52 -0
- pygel3d-0.8.0/src/PyGEL/I3DTree.cpp +74 -0
- pygel3d-0.8.0/src/PyGEL/I3DTree.h +43 -0
- pygel3d-0.8.0/src/PyGEL/IntVector.cpp +31 -0
- pygel3d-0.8.0/src/PyGEL/IntVector.h +34 -0
- pygel3d-0.8.0/src/PyGEL/Manifold.cpp +395 -0
- pygel3d-0.8.0/src/PyGEL/Manifold.h +113 -0
- pygel3d-0.8.0/src/PyGEL/MeshDistance.cpp +127 -0
- pygel3d-0.8.0/src/PyGEL/MeshDistance.h +54 -0
- pygel3d-0.8.0/src/PyGEL/PyGEL3D.egg-info/SOURCES.txt +297 -0
- pygel3d-0.8.0/src/PyGEL/Vec3dVector.cpp +34 -0
- pygel3d-0.8.0/src/PyGEL/Vec3dVector.h +35 -0
- pygel3d-0.8.0/src/PyGEL/Viewer.cpp +482 -0
- pygel3d-0.8.0/src/PyGEL/Viewer.h +53 -0
- pygel3d-0.8.0/src/PyGEL/graph_functions.cpp +180 -0
- pygel3d-0.8.0/src/PyGEL/graph_functions.h +54 -0
- pygel3d-0.8.0/src/PyGEL/hmesh_functions.cpp +415 -0
- pygel3d-0.8.0/src/PyGEL/hmesh_functions.h +151 -0
- pygel3d-0.8.0/src/PyGEL/pygel3d/__init__.py +389 -0
- pygel3d-0.8.0/src/PyGEL/pygel3d/experimental/__init__.py +1 -0
- pygel3d-0.8.0/src/PyGEL/pygel3d/experimental/hmesh.py +32 -0
- pygel3d-0.8.0/src/PyGEL/pygel3d/gl_display.py +127 -0
- pygel3d-0.8.0/src/PyGEL/pygel3d/graph.py +290 -0
- pygel3d-0.8.0/src/PyGEL/pygel3d/hmesh.py +1112 -0
- pygel3d-0.8.0/src/PyGEL/pygel3d/jupyter_display.py +91 -0
- pygel3d-0.8.0/src/PyGEL/pygel3d/spatial.py +40 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.25)
|
|
2
|
+
if(APPLE)
|
|
3
|
+
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING
|
|
4
|
+
"Minimum macOS version" FORCE)
|
|
5
|
+
endif()
|
|
6
|
+
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" GEL_VERSION)
|
|
7
|
+
string(STRIP "${GEL_VERSION}" GEL_VERSION)
|
|
8
|
+
project(GEL VERSION ${GEL_VERSION} LANGUAGES C CXX)
|
|
9
|
+
|
|
10
|
+
include(GNUInstallDirs)
|
|
11
|
+
include(CMakePackageConfigHelpers)
|
|
12
|
+
|
|
13
|
+
# Default to a user-local prefix so headers and libraries land in
|
|
14
|
+
# ~/.local/{include,lib} without sudo. Override with -DCMAKE_INSTALL_PREFIX.
|
|
15
|
+
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND NOT WIN32
|
|
16
|
+
AND DEFINED ENV{HOME} AND NOT "$ENV{HOME}" STREQUAL "")
|
|
17
|
+
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH
|
|
18
|
+
"Install path prefix, prepended onto install directories." FORCE)
|
|
19
|
+
endif()
|
|
20
|
+
|
|
21
|
+
find_package(Threads REQUIRED)
|
|
22
|
+
set(CMAKE_CXX_STANDARD 20)
|
|
23
|
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
24
|
+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
25
|
+
|
|
26
|
+
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
27
|
+
set(CMAKE_BUILD_TYPE Release)
|
|
28
|
+
endif()
|
|
29
|
+
|
|
30
|
+
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|
31
|
+
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "Build architectures for MacOS" FORCE)
|
|
32
|
+
endif ()
|
|
33
|
+
|
|
34
|
+
option(Use_GLGraphics "Compile the OpenGL Viewer" ON)
|
|
35
|
+
if (Use_GLGraphics)
|
|
36
|
+
if (UNIX AND NOT APPLE)
|
|
37
|
+
# libGL.so.1 is a manylinux-allowed driver interface. GLVND's
|
|
38
|
+
# libOpenGL.so / libGLdispatch.so are not portable in a wheel.
|
|
39
|
+
set(OpenGL_GL_PREFERENCE "LEGACY" CACHE STRING
|
|
40
|
+
"Prefer libGL.so.1 over GLVND libOpenGL" FORCE)
|
|
41
|
+
endif ()
|
|
42
|
+
find_package(OpenGL REQUIRED)
|
|
43
|
+
include(FetchContent)
|
|
44
|
+
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
|
|
45
|
+
set(GLFW_INSTALL OFF CACHE BOOL "" FORCE)
|
|
46
|
+
FetchContent_Declare(
|
|
47
|
+
glfw
|
|
48
|
+
GIT_REPOSITORY https://github.com/glfw/glfw.git
|
|
49
|
+
GIT_TAG 3.3.10
|
|
50
|
+
)
|
|
51
|
+
FetchContent_MakeAvailable(glfw)
|
|
52
|
+
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|
53
|
+
SET(CMAKE_INSTALL_RPATH "@loader_path/")
|
|
54
|
+
# SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
|
55
|
+
endif ()
|
|
56
|
+
endif ()
|
|
57
|
+
|
|
58
|
+
# Define the GEL library
|
|
59
|
+
add_library(GEL STATIC)
|
|
60
|
+
add_library(GEL::GEL ALIAS GEL)
|
|
61
|
+
|
|
62
|
+
target_compile_features(GEL PUBLIC cxx_std_20)
|
|
63
|
+
|
|
64
|
+
# Consumers include headers as <GEL/HMesh/Manifold.h>, so the include root
|
|
65
|
+
# is src/ in the build tree and ${CMAKE_INSTALL_INCLUDEDIR} after install.
|
|
66
|
+
target_include_directories(GEL
|
|
67
|
+
PUBLIC
|
|
68
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
|
|
69
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
# Define source lists for GEL library
|
|
73
|
+
file(GLOB_RECURSE CGLA_SRC_LIST_CPP ./src/GEL/CGLA/*.cpp)
|
|
74
|
+
file(GLOB_RECURSE CGLA_SRC_LIST_C ./src/GEL/CGLA/*.c)
|
|
75
|
+
list(APPEND CGLA_SRC_LIST ${CGLA_SRC_LIST_CPP} ${CGLA_SRC_LIST_C})
|
|
76
|
+
|
|
77
|
+
file(GLOB_RECURSE GEO_SRC_LIST_CPP ./src/GEL/Geometry/*.cpp)
|
|
78
|
+
file(GLOB_RECURSE GEO_SRC_LIST_C ./src/GEL/Geometry/*.c)
|
|
79
|
+
list(APPEND GEO_SRC_LIST ${GEO_SRC_LIST_CPP} ${GEO_SRC_LIST_C})
|
|
80
|
+
|
|
81
|
+
file(GLOB_RECURSE MESH_SRC_LIST_CPP ./src/GEL/HMesh/*.cpp)
|
|
82
|
+
file(GLOB_RECURSE MESH_SRC_LIST_C ./src/GEL/HMesh/*.c)
|
|
83
|
+
list(APPEND MESH_SRC_LIST ${MESH_SRC_LIST_CPP} ${MESH_SRC_LIST_C})
|
|
84
|
+
|
|
85
|
+
file(GLOB_RECURSE UTIL_SRC_LIST_CPP ./src/GEL/Util/*.cpp)
|
|
86
|
+
file(GLOB_RECURSE UTIL_SRC_LIST_C ./src/GEL/Util/*.c)
|
|
87
|
+
list(APPEND UTIL_SRC_LIST ${UTIL_SRC_LIST_CPP} ${UTIL_SRC_LIST_C})
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# Add source files to GEL library (depending on use of GLGraphics)
|
|
91
|
+
if (Use_GLGraphics)
|
|
92
|
+
file(GLOB_RECURSE GL_SRC_LIST_CPP ./src/GEL/GL/*.cpp)
|
|
93
|
+
file(GLOB_RECURSE GL_SRC_LIST_C ./src/GEL/GL/*.c)
|
|
94
|
+
list(APPEND GL_SRC_LIST ${GL_SRC_LIST_CPP} ${GL_SRC_LIST_C})
|
|
95
|
+
|
|
96
|
+
file(GLOB_RECURSE GLG_SRC_LIST_CPP ./src/GEL/GLGraphics/*.cpp)
|
|
97
|
+
file(GLOB_RECURSE GLG_SRC_LIST_C ./src/GEL/GLGraphics/*.c)
|
|
98
|
+
list(APPEND GLG_SRC_LIST ${GLG_SRC_LIST_CPP} ${GLG_SRC_LIST_C})
|
|
99
|
+
target_sources(GEL PRIVATE ${GL_SRC_LIST} ${GLG_SRC_LIST} ${CGLA_SRC_LIST} ${GEO_SRC_LIST} ${MESH_SRC_LIST} ${UTIL_SRC_LIST})
|
|
100
|
+
target_link_libraries(GEL PUBLIC Threads::Threads OpenGL::GLU OpenGL::GL)
|
|
101
|
+
if (APPLE)
|
|
102
|
+
target_link_libraries(GEL PUBLIC "-framework Cocoa")
|
|
103
|
+
target_compile_definitions(GEL PUBLIC GL_SILENCE_DEPRECATION)
|
|
104
|
+
endif ()
|
|
105
|
+
if (NOT APPLE)
|
|
106
|
+
# Match the previous Linux/Windows GLEW build; consumers that include
|
|
107
|
+
# <GEL/GL/glew.h> need the same definition.
|
|
108
|
+
target_compile_definitions(GEL PUBLIC GLEW_STATIC)
|
|
109
|
+
endif ()
|
|
110
|
+
else ()
|
|
111
|
+
target_sources(GEL PRIVATE ${CGLA_SRC_LIST} ${GEO_SRC_LIST} ${MESH_SRC_LIST} ${UTIL_SRC_LIST})
|
|
112
|
+
target_link_libraries(GEL PUBLIC Threads::Threads)
|
|
113
|
+
endif ()
|
|
114
|
+
|
|
115
|
+
# Locate the sources for PyGEL
|
|
116
|
+
file(GLOB_RECURSE PYG_SRC_LIST ./src/PyGEL/*.cpp)
|
|
117
|
+
|
|
118
|
+
# Define the PyGEL library. Again two versions depending on use of GLGraphics
|
|
119
|
+
if (Use_GLGraphics)
|
|
120
|
+
add_library(PyGEL SHARED ${PYG_SRC_LIST})
|
|
121
|
+
target_include_directories(PyGEL PRIVATE ./src)
|
|
122
|
+
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
123
|
+
target_include_directories(PyGEL PRIVATE ${glfw_SOURCE_DIR}/include)
|
|
124
|
+
endif ()
|
|
125
|
+
target_link_libraries(PyGEL PRIVATE GEL glfw ${GLFW_LIBRARIES})
|
|
126
|
+
else ()
|
|
127
|
+
list(FILTER PYG_SRC_LIST EXCLUDE REGEX ".*/Viewer\\.cpp$")
|
|
128
|
+
add_library(PyGEL SHARED ${PYG_SRC_LIST})
|
|
129
|
+
target_include_directories(PyGEL PRIVATE ./src)
|
|
130
|
+
target_link_libraries(PyGEL PRIVATE GEL)
|
|
131
|
+
endif ()
|
|
132
|
+
|
|
133
|
+
if (APPLE)
|
|
134
|
+
set_target_properties(PyGEL PROPERTIES
|
|
135
|
+
BUILD_RPATH "@loader_path"
|
|
136
|
+
INSTALL_RPATH "@loader_path"
|
|
137
|
+
BUILD_WITH_INSTALL_RPATH TRUE)
|
|
138
|
+
elseif (UNIX)
|
|
139
|
+
set_target_properties(PyGEL PROPERTIES
|
|
140
|
+
BUILD_RPATH "$ORIGIN"
|
|
141
|
+
INSTALL_RPATH "$ORIGIN"
|
|
142
|
+
BUILD_WITH_INSTALL_RPATH TRUE)
|
|
143
|
+
endif ()
|
|
144
|
+
|
|
145
|
+
# TODO: this one needs to be specifically modified so we do not install it globally, but rather
|
|
146
|
+
# TODO: inside our own directories. It should probably live in include/GEL/Util/phmap
|
|
147
|
+
## Include the parallel-hashmap library
|
|
148
|
+
#include(FetchContent)
|
|
149
|
+
## Our headers depend on it, so we need to it alongside GEL
|
|
150
|
+
#set(PHMAP_INSTALL TRUE CACHE INTERNAL "Install parallel_hashmap")
|
|
151
|
+
#FetchContent_Declare(
|
|
152
|
+
# parallel-hashmap
|
|
153
|
+
# GIT_REPOSITORY https://github.com/greg7mdp/parallel-hashmap.git
|
|
154
|
+
# GIT_TAG v2.0.0 # adjust tag/branch/commit as needed
|
|
155
|
+
#)
|
|
156
|
+
#FetchContent_MakeAvailable(parallel-hashmap)
|
|
157
|
+
## Pass the directory to GEL during a build
|
|
158
|
+
#target_include_directories(
|
|
159
|
+
# GEL PUBLIC
|
|
160
|
+
# $<BUILD_INTERFACE:${parallel-hashmap_SOURCE_DIR}>
|
|
161
|
+
# $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
162
|
+
# )
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
# ---------------------------------------------------------------------------
|
|
166
|
+
# Install GEL as a CMake package (find_package(GEL))
|
|
167
|
+
# ---------------------------------------------------------------------------
|
|
168
|
+
set(GEL_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/GEL")
|
|
169
|
+
|
|
170
|
+
install(TARGETS GEL
|
|
171
|
+
EXPORT GELTargets
|
|
172
|
+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
173
|
+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
174
|
+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/GEL
|
|
178
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
179
|
+
FILES_MATCHING PATTERN "*.h"
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
install(EXPORT GELTargets
|
|
183
|
+
FILE GELTargets.cmake
|
|
184
|
+
NAMESPACE GEL::
|
|
185
|
+
DESTINATION ${GEL_INSTALL_CMAKEDIR}
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
configure_package_config_file(
|
|
189
|
+
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/GELConfig.cmake.in"
|
|
190
|
+
"${CMAKE_CURRENT_BINARY_DIR}/GELConfig.cmake"
|
|
191
|
+
INSTALL_DESTINATION ${GEL_INSTALL_CMAKEDIR}
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
write_basic_package_version_file(
|
|
195
|
+
"${CMAKE_CURRENT_BINARY_DIR}/GELConfigVersion.cmake"
|
|
196
|
+
VERSION ${PROJECT_VERSION}
|
|
197
|
+
COMPATIBILITY SameMajorVersion
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
install(FILES
|
|
201
|
+
"${CMAKE_CURRENT_BINARY_DIR}/GELConfig.cmake"
|
|
202
|
+
"${CMAKE_CURRENT_BINARY_DIR}/GELConfigVersion.cmake"
|
|
203
|
+
DESTINATION ${GEL_INSTALL_CMAKEDIR}
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
# Also export a build-tree package so find_package(GEL) works with
|
|
207
|
+
# -DCMAKE_PREFIX_PATH=<build-dir> before a full install.
|
|
208
|
+
export(EXPORT GELTargets
|
|
209
|
+
FILE "${CMAKE_CURRENT_BINARY_DIR}/GELTargets.cmake"
|
|
210
|
+
NAMESPACE GEL::
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
# Add test projects
|
|
214
|
+
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
|
215
|
+
include(CTest)
|
|
216
|
+
endif()
|
|
217
|
+
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING)
|
|
218
|
+
add_subdirectory(src/test)
|
|
219
|
+
endif()
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
# No install instructions for PyGEL. It is left in the build directory and
|
|
223
|
+
# included in the wheel package.
|
pygel3d-0.8.0/LICENSE.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Andreas Bærentzen
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
**Acknowledgment**: Contributions to this project are documented in the CONTRIBUTORS.md file.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
**Note**: This project was previously licensed under a different license that was functionally equivalent to the MIT License. The change to the MIT License was made on February 23, 2025.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
include VERSION
|
|
2
|
+
include CMakeLists.txt
|
|
3
|
+
include LICENSE.md
|
|
4
|
+
include README.md
|
|
5
|
+
include pyproject.toml
|
|
6
|
+
recursive-include cmake *
|
|
7
|
+
recursive-include src/GEL *
|
|
8
|
+
recursive-include src/PyGEL *.cpp *.h *.py
|
|
9
|
+
|
|
10
|
+
global-exclude *.pyc
|
|
11
|
+
global-exclude libPyGEL.so libPyGEL.dylib PyGEL.dll
|
|
12
|
+
global-exclude .DS_Store
|
|
13
|
+
prune **/__pycache__
|
|
14
|
+
prune **/.ipynb_checkpoints
|
|
15
|
+
prune **/*.egg-info
|
pygel3d-0.8.0/PKG-INFO
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: PyGEL3D
|
|
3
|
+
Version: 0.8.0
|
|
4
|
+
Summary: PyGEL 3D (Python Bindings for GEL) contains tools for polygonal mesh based geometry processing
|
|
5
|
+
Author-email: Andreas Baerentzen <janba@dtu.dk>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/janba/GEL
|
|
8
|
+
Project-URL: Repository, https://github.com/janba/GEL
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
14
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
15
|
+
Classifier: Operating System :: MacOS
|
|
16
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
17
|
+
Requires-Python: >=3.11
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE.md
|
|
20
|
+
Requires-Dist: numpy
|
|
21
|
+
Requires-Dist: plotly<6,>=5.24.1
|
|
22
|
+
Requires-Dist: scipy
|
|
23
|
+
Dynamic: license-file
|
|
24
|
+
|
|
25
|
+
# GEL
|
|
26
|
+
GEL is a C++ library of geometry processing tools mostly intended for computer graphics applications. Python bindings for GEL are found in the included PyGEL library which is also available from PyPI under the package name PyGEL3D.
|
|
27
|
+

|
|
28
|
+
|
|
29
|
+
GEL contains
|
|
30
|
+
- a fairly mature half-edge based polygonal mesh data structure which includes functions for traversing a mesh and a rich library of methods for modifying meshes,
|
|
31
|
+
- a graph data structure which is also specialized for spatial graphs,
|
|
32
|
+
- voxel grid data structures,
|
|
33
|
+
- spatial data structures for triangles and points: BSP tree, bounding box hierarchy, and a kD-Tree in particular,
|
|
34
|
+
- a linear algebra library for small vectors and matrices (2D, 3D, and 4D),
|
|
35
|
+
- tools for visualization based on OpenGL and tools based on Plotly for visualization in Jupyter notebooks, and
|
|
36
|
+
- various utilities.
|
|
37
|
+
|
|
38
|
+
Unique functionality includes
|
|
39
|
+
- Local Separator Skeletonization: our graph-based skeletonization method that works on both meshes, voxel data, and point clouds, although you need to specify the connectivity for the latter two.
|
|
40
|
+
- Inverse skeletonization: Face extrusion quad meshes (FEQ) from graphs.
|
|
41
|
+
- Rotation System Reconstruction: a combinatorial method for reconstruction from point clouds.
|
|
42
|
+
|
|
43
|
+
There are several less unique but important features:
|
|
44
|
+
- Garland-Heckbert simplification of triangle meshes,
|
|
45
|
+
- signed distance field (SDF) computation from triangle meshes,
|
|
46
|
+
- iso-surface polygonization for regular voxel grids: can produce both dual and primal connectivity,
|
|
47
|
+
- edge flipping-based optimization for triangle meshes,
|
|
48
|
+
- mesh smoothing: we include anisotropic smoothing, Taubin smoohing, and more.
|
|
49
|
+
- topological analysis: a single (Python) function splits a mesh into components and analyses each.
|
|
50
|
+
|
|
51
|
+
GEL requires a recent C++ compiler but has very few dependencies. For visualization, OpenGL and GLFW are required, but these dependencies can be omitted if visualization is not needed. The basic philosophy is that GEL should have few dependencies itself since it is better that projects which use GEL can choose for themselves, say, which linear algebra package to use.
|
|
52
|
+
|
|
53
|
+
### PyGEL
|
|
54
|
+
PyGEL is a set of Python bindings for a _subset_ of the features in GEL. In particular, PyGEL covers almost all the mesh features. In addition PyGEL has its own viewer based on OpenGL, and PyGEL can be used from Jupyter notebooks. In this case, it is possible to visualize meshes using a plotly widget. A significant benefit here is that when the notebook is exported to HTML, the 3D view comes along. In fact, this makes PyGEL a useful tool for teaching geometry processing since work can be carried out in a Jupyter notebook and assignments submitted as HTML files. Moreover, PyGEL works in Google [colab](https://colab.research.google.com) notebooks.
|
|
55
|
+
|
|
56
|
+
## DOCUMENTATION
|
|
57
|
+
Some installation instructions below. But for more documentation please see the doc directory. There is a doxygen script for creating a reference manual and a latex file intro.tex which explains the basics. Please doxygen or pdflatex your documentation. A license is also found in the intro document.
|
|
58
|
+
|
|
59
|
+
## INSTALLING PYGEL WITH PIP
|
|
60
|
+
|
|
61
|
+
PyGEL is on PyPI and can be installed with pip. For most potential users, there is no reason to look further than:
|
|
62
|
+
```
|
|
63
|
+
pip install PyGEL3D
|
|
64
|
+
```
|
|
65
|
+
The PyPI package is called PyGEL3D and not PyGEL. pip installs a wheel for your platform:
|
|
66
|
+
|
|
67
|
+
- Linux x86_64 and ARM64 (manylinux, glibc 2.28+: Ubuntu 20.04, Debian 10, RHEL 8, Fedora, Colab, and similar)
|
|
68
|
+
- macOS 11+ (universal2: Intel and Apple Silicon)
|
|
69
|
+
- 64-bit Windows
|
|
70
|
+
|
|
71
|
+
The compiled library links against OpenGL (`libGL`). A normal desktop already has this. A minimal Linux system (container, CI, server, Colab) usually does not, and `import pygel3d` will then fail even though pip succeeded.
|
|
72
|
+
|
|
73
|
+
On Ubuntu/Debian install the OpenGL runtime:
|
|
74
|
+
```
|
|
75
|
+
sudo apt-get install libgl1
|
|
76
|
+
```
|
|
77
|
+
`libgl1` is a virtual package. Apt will pull in whatever implementation the distribution ships — typically Mesa. That is not a request to use software rendering; your GPU driver still provides the actual OpenGL implementation.
|
|
78
|
+
|
|
79
|
+
On Google Colab, use this as the first cell:
|
|
80
|
+
```
|
|
81
|
+
!apt-get install libgl1
|
|
82
|
+
!pip install PyGEL3D
|
|
83
|
+
```
|
|
84
|
+
If there is no wheel for your platform (for example Alpine/musl), build from source as discussed below.
|
|
85
|
+
|
|
86
|
+
## BUILDING AND INSTALLING GEL AND PYGEL
|
|
87
|
+
|
|
88
|
+
If you need or wish to build GEL/PyGEL from source, please download or clone it from [https://github.com/janba/GEL](https://github.com/janba/GEL). Below you will find instructions for how to build and create a package for PyGEL that can be installed via pip. If you look around you will find some other build options for Windows, Mac and Linux. Since GEL is primarily developed on Mac OS, the Xcode projects are actively maintained and cover everything. **The two last build options are not actively maintained**. However, they may prove of some use and hence not removed.
|
|
89
|
+
|
|
90
|
+
### Building with CMake
|
|
91
|
+
If you are using a unix-like command line, build and install with
|
|
92
|
+
```
|
|
93
|
+
cmake -S . -B build
|
|
94
|
+
cmake --build build -j 8
|
|
95
|
+
cmake --install build
|
|
96
|
+
```
|
|
97
|
+
This installs the GEL library, headers, and a CMake package config into
|
|
98
|
+
`~/.local` (`~/.local/include/GEL`, `~/.local/lib`) so other projects can
|
|
99
|
+
locate GEL with `find_package(GEL)`. No sudo is required. Override the
|
|
100
|
+
location with `-DCMAKE_INSTALL_PREFIX=<prefix>` if needed.
|
|
101
|
+
|
|
102
|
+
Note that this process is automated by the `build_install.sh` script.
|
|
103
|
+
|
|
104
|
+
### Using GEL from CMake
|
|
105
|
+
After installing GEL, a consumer project only needs:
|
|
106
|
+
|
|
107
|
+
```cmake
|
|
108
|
+
find_package(GEL REQUIRED HINTS "$ENV{HOME}/.local")
|
|
109
|
+
target_link_libraries(my_app PRIVATE GEL::GEL)
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
If GEL is not in `~/.local` or another default search path, point CMake at
|
|
113
|
+
the install (or build) tree:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
cmake -S . -B build -DCMAKE_PREFIX_PATH=<gel-install-prefix>
|
|
117
|
+
```
|
|
118
|
+
### Creating a PyGEL3D package and installing it
|
|
119
|
+
From a source checkout, build a **platform** wheel (it compiles `libPyGEL` with CMake and tags the wheel for this OS/architecture):
|
|
120
|
+
```
|
|
121
|
+
python -m build --wheel
|
|
122
|
+
pip install dist/pygel3d-*.whl
|
|
123
|
+
```
|
|
124
|
+
You need CMake ≥ 3.25, a C++20 compiler, and the Python packages `build` and `setuptools`. Isolated builds also pull in the `cmake` and `ninja` packages automatically.
|
|
125
|
+
|
|
126
|
+
Alternatively,
|
|
127
|
+
```
|
|
128
|
+
pip install .
|
|
129
|
+
```
|
|
130
|
+
or the one-stop script
|
|
131
|
+
```
|
|
132
|
+
sh build_install.sh
|
|
133
|
+
```
|
|
134
|
+
builds GEL, installs the C++ library to `~/.local`, and pip-installs a local PyGEL3D wheel (replacing any previous install).
|
|
135
|
+
|
|
136
|
+
PyPI releases are produced by GitHub Actions (`.github/workflows/wheels.yml`). Pushing a tag `v*` builds manylinux, macOS, and Windows wheels plus an sdist and publishes them. There is no local step of downloading binaries from CI.
|
|
137
|
+
|
|
138
|
+
## Compilation of Demos and Tests
|
|
139
|
+
|
|
140
|
+
GEL comes with some test scripts and also demos. You can find these in `GEL/src/test` and `GEL/src/demo`. Tests are optional and built with the main project when `BUILD_TESTING` is on.
|
|
141
|
+
|
|
142
|
+
The philosophy behind the demos is that they require GEL and PyGEL3D (for the Python demos) have been installed and do not try to find header files, binaries, or Python packages in the GEL source tree.
|
|
143
|
+
|
|
144
|
+
In fact, the C++ demos are standalone CMake projects. They call `find_package(GEL)` and therefore expect an installed GEL package rather than a library sitting in the source tree. After a standard install to `~/.local`:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
cmake -S src/demo/MeshDistance -B src/demo/MeshDistance/build
|
|
148
|
+
cmake --build src/demo/MeshDistance/build
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
All C++ demos can also be configured together from `src/demo` and there is a script `run_demos.py` that runs all of them. Since many are interactive, you will frequently need to hit escape or quit a program if you run this script.
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
## Practical Issues
|
|
155
|
+
Compiling both GEL and PyGEL requires that you have OpenGL installed unless you choose not to compile graphics support which you can do by setting `Use_GLGraphics` to `OFF` in the CMake file. GLFW is also needed, but CMake fetches GLFW from github and compiles it along with the GEL code. If you compile in some of the other ways (e.g. using XCode, Visual Studio) there is no simple way to avoid the dependency on graphics libraries. Thus, if you need to avoid the OpenGL requirements, CMake is the way to go.
|
|
156
|
+
|
|
157
|
+
GEL comes with a few demo applications. In addition to the requirements above, several of these also require GLUT to be installed. Going forward, we should remove the GLUT dependency and move to GLFW for the applications.
|
|
158
|
+
|
|
159
|
+
PyGEL has a module called `jupyter_display` which produces graphics suitable for Jupyter notebooks. This module is based on `plotly` which must then be installed for it to work. You will also need `numpy`. However, if you use `pip`, these required libraries will be downloaded automatically when you install PyGEL.
|
pygel3d-0.8.0/README.md
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# GEL
|
|
2
|
+
GEL is a C++ library of geometry processing tools mostly intended for computer graphics applications. Python bindings for GEL are found in the included PyGEL library which is also available from PyPI under the package name PyGEL3D.
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
GEL contains
|
|
6
|
+
- a fairly mature half-edge based polygonal mesh data structure which includes functions for traversing a mesh and a rich library of methods for modifying meshes,
|
|
7
|
+
- a graph data structure which is also specialized for spatial graphs,
|
|
8
|
+
- voxel grid data structures,
|
|
9
|
+
- spatial data structures for triangles and points: BSP tree, bounding box hierarchy, and a kD-Tree in particular,
|
|
10
|
+
- a linear algebra library for small vectors and matrices (2D, 3D, and 4D),
|
|
11
|
+
- tools for visualization based on OpenGL and tools based on Plotly for visualization in Jupyter notebooks, and
|
|
12
|
+
- various utilities.
|
|
13
|
+
|
|
14
|
+
Unique functionality includes
|
|
15
|
+
- Local Separator Skeletonization: our graph-based skeletonization method that works on both meshes, voxel data, and point clouds, although you need to specify the connectivity for the latter two.
|
|
16
|
+
- Inverse skeletonization: Face extrusion quad meshes (FEQ) from graphs.
|
|
17
|
+
- Rotation System Reconstruction: a combinatorial method for reconstruction from point clouds.
|
|
18
|
+
|
|
19
|
+
There are several less unique but important features:
|
|
20
|
+
- Garland-Heckbert simplification of triangle meshes,
|
|
21
|
+
- signed distance field (SDF) computation from triangle meshes,
|
|
22
|
+
- iso-surface polygonization for regular voxel grids: can produce both dual and primal connectivity,
|
|
23
|
+
- edge flipping-based optimization for triangle meshes,
|
|
24
|
+
- mesh smoothing: we include anisotropic smoothing, Taubin smoohing, and more.
|
|
25
|
+
- topological analysis: a single (Python) function splits a mesh into components and analyses each.
|
|
26
|
+
|
|
27
|
+
GEL requires a recent C++ compiler but has very few dependencies. For visualization, OpenGL and GLFW are required, but these dependencies can be omitted if visualization is not needed. The basic philosophy is that GEL should have few dependencies itself since it is better that projects which use GEL can choose for themselves, say, which linear algebra package to use.
|
|
28
|
+
|
|
29
|
+
### PyGEL
|
|
30
|
+
PyGEL is a set of Python bindings for a _subset_ of the features in GEL. In particular, PyGEL covers almost all the mesh features. In addition PyGEL has its own viewer based on OpenGL, and PyGEL can be used from Jupyter notebooks. In this case, it is possible to visualize meshes using a plotly widget. A significant benefit here is that when the notebook is exported to HTML, the 3D view comes along. In fact, this makes PyGEL a useful tool for teaching geometry processing since work can be carried out in a Jupyter notebook and assignments submitted as HTML files. Moreover, PyGEL works in Google [colab](https://colab.research.google.com) notebooks.
|
|
31
|
+
|
|
32
|
+
## DOCUMENTATION
|
|
33
|
+
Some installation instructions below. But for more documentation please see the doc directory. There is a doxygen script for creating a reference manual and a latex file intro.tex which explains the basics. Please doxygen or pdflatex your documentation. A license is also found in the intro document.
|
|
34
|
+
|
|
35
|
+
## INSTALLING PYGEL WITH PIP
|
|
36
|
+
|
|
37
|
+
PyGEL is on PyPI and can be installed with pip. For most potential users, there is no reason to look further than:
|
|
38
|
+
```
|
|
39
|
+
pip install PyGEL3D
|
|
40
|
+
```
|
|
41
|
+
The PyPI package is called PyGEL3D and not PyGEL. pip installs a wheel for your platform:
|
|
42
|
+
|
|
43
|
+
- Linux x86_64 and ARM64 (manylinux, glibc 2.28+: Ubuntu 20.04, Debian 10, RHEL 8, Fedora, Colab, and similar)
|
|
44
|
+
- macOS 11+ (universal2: Intel and Apple Silicon)
|
|
45
|
+
- 64-bit Windows
|
|
46
|
+
|
|
47
|
+
The compiled library links against OpenGL (`libGL`). A normal desktop already has this. A minimal Linux system (container, CI, server, Colab) usually does not, and `import pygel3d` will then fail even though pip succeeded.
|
|
48
|
+
|
|
49
|
+
On Ubuntu/Debian install the OpenGL runtime:
|
|
50
|
+
```
|
|
51
|
+
sudo apt-get install libgl1
|
|
52
|
+
```
|
|
53
|
+
`libgl1` is a virtual package. Apt will pull in whatever implementation the distribution ships — typically Mesa. That is not a request to use software rendering; your GPU driver still provides the actual OpenGL implementation.
|
|
54
|
+
|
|
55
|
+
On Google Colab, use this as the first cell:
|
|
56
|
+
```
|
|
57
|
+
!apt-get install libgl1
|
|
58
|
+
!pip install PyGEL3D
|
|
59
|
+
```
|
|
60
|
+
If there is no wheel for your platform (for example Alpine/musl), build from source as discussed below.
|
|
61
|
+
|
|
62
|
+
## BUILDING AND INSTALLING GEL AND PYGEL
|
|
63
|
+
|
|
64
|
+
If you need or wish to build GEL/PyGEL from source, please download or clone it from [https://github.com/janba/GEL](https://github.com/janba/GEL). Below you will find instructions for how to build and create a package for PyGEL that can be installed via pip. If you look around you will find some other build options for Windows, Mac and Linux. Since GEL is primarily developed on Mac OS, the Xcode projects are actively maintained and cover everything. **The two last build options are not actively maintained**. However, they may prove of some use and hence not removed.
|
|
65
|
+
|
|
66
|
+
### Building with CMake
|
|
67
|
+
If you are using a unix-like command line, build and install with
|
|
68
|
+
```
|
|
69
|
+
cmake -S . -B build
|
|
70
|
+
cmake --build build -j 8
|
|
71
|
+
cmake --install build
|
|
72
|
+
```
|
|
73
|
+
This installs the GEL library, headers, and a CMake package config into
|
|
74
|
+
`~/.local` (`~/.local/include/GEL`, `~/.local/lib`) so other projects can
|
|
75
|
+
locate GEL with `find_package(GEL)`. No sudo is required. Override the
|
|
76
|
+
location with `-DCMAKE_INSTALL_PREFIX=<prefix>` if needed.
|
|
77
|
+
|
|
78
|
+
Note that this process is automated by the `build_install.sh` script.
|
|
79
|
+
|
|
80
|
+
### Using GEL from CMake
|
|
81
|
+
After installing GEL, a consumer project only needs:
|
|
82
|
+
|
|
83
|
+
```cmake
|
|
84
|
+
find_package(GEL REQUIRED HINTS "$ENV{HOME}/.local")
|
|
85
|
+
target_link_libraries(my_app PRIVATE GEL::GEL)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
If GEL is not in `~/.local` or another default search path, point CMake at
|
|
89
|
+
the install (or build) tree:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
cmake -S . -B build -DCMAKE_PREFIX_PATH=<gel-install-prefix>
|
|
93
|
+
```
|
|
94
|
+
### Creating a PyGEL3D package and installing it
|
|
95
|
+
From a source checkout, build a **platform** wheel (it compiles `libPyGEL` with CMake and tags the wheel for this OS/architecture):
|
|
96
|
+
```
|
|
97
|
+
python -m build --wheel
|
|
98
|
+
pip install dist/pygel3d-*.whl
|
|
99
|
+
```
|
|
100
|
+
You need CMake ≥ 3.25, a C++20 compiler, and the Python packages `build` and `setuptools`. Isolated builds also pull in the `cmake` and `ninja` packages automatically.
|
|
101
|
+
|
|
102
|
+
Alternatively,
|
|
103
|
+
```
|
|
104
|
+
pip install .
|
|
105
|
+
```
|
|
106
|
+
or the one-stop script
|
|
107
|
+
```
|
|
108
|
+
sh build_install.sh
|
|
109
|
+
```
|
|
110
|
+
builds GEL, installs the C++ library to `~/.local`, and pip-installs a local PyGEL3D wheel (replacing any previous install).
|
|
111
|
+
|
|
112
|
+
PyPI releases are produced by GitHub Actions (`.github/workflows/wheels.yml`). Pushing a tag `v*` builds manylinux, macOS, and Windows wheels plus an sdist and publishes them. There is no local step of downloading binaries from CI.
|
|
113
|
+
|
|
114
|
+
## Compilation of Demos and Tests
|
|
115
|
+
|
|
116
|
+
GEL comes with some test scripts and also demos. You can find these in `GEL/src/test` and `GEL/src/demo`. Tests are optional and built with the main project when `BUILD_TESTING` is on.
|
|
117
|
+
|
|
118
|
+
The philosophy behind the demos is that they require GEL and PyGEL3D (for the Python demos) have been installed and do not try to find header files, binaries, or Python packages in the GEL source tree.
|
|
119
|
+
|
|
120
|
+
In fact, the C++ demos are standalone CMake projects. They call `find_package(GEL)` and therefore expect an installed GEL package rather than a library sitting in the source tree. After a standard install to `~/.local`:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
cmake -S src/demo/MeshDistance -B src/demo/MeshDistance/build
|
|
124
|
+
cmake --build src/demo/MeshDistance/build
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
All C++ demos can also be configured together from `src/demo` and there is a script `run_demos.py` that runs all of them. Since many are interactive, you will frequently need to hit escape or quit a program if you run this script.
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
## Practical Issues
|
|
131
|
+
Compiling both GEL and PyGEL requires that you have OpenGL installed unless you choose not to compile graphics support which you can do by setting `Use_GLGraphics` to `OFF` in the CMake file. GLFW is also needed, but CMake fetches GLFW from github and compiles it along with the GEL code. If you compile in some of the other ways (e.g. using XCode, Visual Studio) there is no simple way to avoid the dependency on graphics libraries. Thus, if you need to avoid the OpenGL requirements, CMake is the way to go.
|
|
132
|
+
|
|
133
|
+
GEL comes with a few demo applications. In addition to the requirements above, several of these also require GLUT to be installed. Going forward, we should remove the GLUT dependency and move to GLFW for the applications.
|
|
134
|
+
|
|
135
|
+
PyGEL has a module called `jupyter_display` which produces graphics suitable for Jupyter notebooks. This module is based on `plotly` which must then be installed for it to work. You will also need `numpy`. However, if you use `pip`, these required libraries will be downloaded automatically when you install PyGEL.
|
pygel3d-0.8.0/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.8.0
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@PACKAGE_INIT@
|
|
2
|
+
|
|
3
|
+
include(CMakeFindDependencyMacro)
|
|
4
|
+
|
|
5
|
+
# GEL PUBLIC-links these, so consumers need the same imported targets.
|
|
6
|
+
find_dependency(Threads)
|
|
7
|
+
if(@Use_GLGraphics@)
|
|
8
|
+
find_dependency(OpenGL)
|
|
9
|
+
endif()
|
|
10
|
+
|
|
11
|
+
include("${CMAKE_CURRENT_LIST_DIR}/GELTargets.cmake")
|
|
12
|
+
|
|
13
|
+
check_required_components(GEL)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77", "cmake>=3.25", "ninja"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "PyGEL3D"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "PyGEL 3D (Python Bindings for GEL) contains tools for polygonal mesh based geometry processing"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
license-files = ["LICENSE.md"]
|
|
13
|
+
authors = [
|
|
14
|
+
{name = "Andreas Baerentzen", email = "janba@dtu.dk"},
|
|
15
|
+
]
|
|
16
|
+
dependencies = [
|
|
17
|
+
"numpy",
|
|
18
|
+
"plotly>=5.24.1,<6",
|
|
19
|
+
"scipy",
|
|
20
|
+
]
|
|
21
|
+
classifiers = [
|
|
22
|
+
"Programming Language :: Python :: 3",
|
|
23
|
+
"Programming Language :: Python :: 3.11",
|
|
24
|
+
"Programming Language :: Python :: 3.12",
|
|
25
|
+
"Programming Language :: Python :: 3.13",
|
|
26
|
+
"Programming Language :: Python :: 3.14",
|
|
27
|
+
"Operating System :: Microsoft :: Windows",
|
|
28
|
+
"Operating System :: MacOS",
|
|
29
|
+
"Operating System :: POSIX :: Linux",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.urls]
|
|
33
|
+
Homepage = "https://github.com/janba/GEL"
|
|
34
|
+
Repository = "https://github.com/janba/GEL"
|
|
35
|
+
|
|
36
|
+
[tool.setuptools]
|
|
37
|
+
# Do not pull package-data from MANIFEST.in: that file excludes the native
|
|
38
|
+
# library from the sdist (it is compiled during the wheel build).
|
|
39
|
+
include-package-data = false
|
|
40
|
+
|
|
41
|
+
[tool.setuptools.dynamic]
|
|
42
|
+
version = {file = "VERSION"}
|
|
43
|
+
|
|
44
|
+
[tool.setuptools.packages.find]
|
|
45
|
+
where = ["src/PyGEL"]
|
|
46
|
+
include = ["pygel3d*"]
|
|
47
|
+
|
|
48
|
+
[tool.cibuildwheel]
|
|
49
|
+
# ctypes library: one py3-none-<platform> wheel, tested on each CPython.
|
|
50
|
+
build = ["cp311-*", "cp312-*", "cp313-*", "cp314-*"]
|
|
51
|
+
skip = ["pp*", "cp3??t-*", "*-win32", "*-win_arm64", "*_i686", "*musllinux*"]
|
|
52
|
+
build-verbosity = 1
|
|
53
|
+
test-command = "python {project}/tools/cibw_smoke.py"
|
|
54
|
+
|
|
55
|
+
[tool.cibuildwheel.linux]
|
|
56
|
+
manylinux-x86_64-image = "manylinux_2_28"
|
|
57
|
+
manylinux-aarch64-image = "manylinux_2_28"
|
|
58
|
+
before-all = "dnf install -y mesa-libGL-devel mesa-libGLU-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel libXxf86vm-devel libXfixes-devel libXrender-devel"
|
|
59
|
+
# Vendor X11 helpers and libGLU; libGL must come from the system/driver.
|
|
60
|
+
repair-wheel-command = "auditwheel repair --exclude libGL.so.1 -w {dest_dir} {wheel}"
|
|
61
|
+
|
|
62
|
+
[tool.cibuildwheel.macos]
|
|
63
|
+
archs = ["universal2"]
|
|
64
|
+
environment = { MACOSX_DEPLOYMENT_TARGET = "11.0" }
|
|
65
|
+
|
|
66
|
+
[tool.cibuildwheel.windows]
|
|
67
|
+
# delvewheel (cibuildwheel default) bundles extra DLLs; OpenGL32/glu32 stay system.
|
pygel3d-0.8.0/setup.cfg
ADDED