libigl 2.6.4.dev0__cp312-abi3-win_arm64.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 (420) hide show
  1. igl/__init__.py +1 -0
  2. igl/copyleft/__init__.py +1 -0
  3. igl/copyleft/cgal/__init__.py +1 -0
  4. igl/copyleft/cgal/pyigl_copyleft_cgal.pyd +0 -0
  5. igl/copyleft/cgal/pyigl_copyleft_cgal.pyi +231 -0
  6. igl/copyleft/pyigl_copyleft_core.pyd +0 -0
  7. igl/copyleft/pyigl_copyleft_core.pyi +65 -0
  8. igl/copyleft/tetgen/__init__.py +1 -0
  9. igl/copyleft/tetgen/pyigl_copyleft_tetgen.pyd +0 -0
  10. igl/copyleft/tetgen/pyigl_copyleft_tetgen.pyi +88 -0
  11. igl/cycodebase/__init__.py +1 -0
  12. igl/cycodebase/pyigl_cycodebase.pyd +0 -0
  13. igl/cycodebase/pyigl_cycodebase.pyi +122 -0
  14. igl/predicates/__init__.py +1 -0
  15. igl/predicates/pyigl_predicates.pyd +0 -0
  16. igl/predicates/pyigl_predicates.pyi +251 -0
  17. igl/pyigl_core.pyd +0 -0
  18. igl/pyigl_core.pyi +3767 -0
  19. igl/spectra/__init__.py +1 -0
  20. igl/spectra/pyigl_spectra.pyd +0 -0
  21. igl/spectra/pyigl_spectra.pyi +62 -0
  22. igl/triangle/__init__.py +1 -0
  23. igl/triangle/pyigl_restricted_triangle.pyd +0 -0
  24. igl/triangle/pyigl_restricted_triangle.pyi +109 -0
  25. include/Eigen/Cholesky +45 -0
  26. include/Eigen/CholmodSupport +48 -0
  27. include/Eigen/Core +384 -0
  28. include/Eigen/Dense +7 -0
  29. include/Eigen/Eigen +2 -0
  30. include/Eigen/Eigenvalues +60 -0
  31. include/Eigen/Geometry +59 -0
  32. include/Eigen/Householder +29 -0
  33. include/Eigen/IterativeLinearSolvers +48 -0
  34. include/Eigen/Jacobi +32 -0
  35. include/Eigen/KLUSupport +41 -0
  36. include/Eigen/LU +47 -0
  37. include/Eigen/MetisSupport +35 -0
  38. include/Eigen/OrderingMethods +70 -0
  39. include/Eigen/PaStiXSupport +49 -0
  40. include/Eigen/PardisoSupport +35 -0
  41. include/Eigen/QR +50 -0
  42. include/Eigen/QtAlignedMalloc +39 -0
  43. include/Eigen/SPQRSupport +34 -0
  44. include/Eigen/SVD +50 -0
  45. include/Eigen/Sparse +34 -0
  46. include/Eigen/SparseCholesky +37 -0
  47. include/Eigen/SparseCore +69 -0
  48. include/Eigen/SparseLU +50 -0
  49. include/Eigen/SparseQR +36 -0
  50. include/Eigen/StdDeque +27 -0
  51. include/Eigen/StdList +26 -0
  52. include/Eigen/StdVector +27 -0
  53. include/Eigen/SuperLUSupport +64 -0
  54. include/Eigen/UmfPackSupport +40 -0
  55. include/Eigen/src/Cholesky/LDLT.h +688 -0
  56. include/Eigen/src/Cholesky/LLT.h +558 -0
  57. include/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  58. include/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  59. include/Eigen/src/Core/ArithmeticSequence.h +413 -0
  60. include/Eigen/src/Core/Array.h +417 -0
  61. include/Eigen/src/Core/ArrayBase.h +226 -0
  62. include/Eigen/src/Core/ArrayWrapper.h +209 -0
  63. include/Eigen/src/Core/Assign.h +90 -0
  64. include/Eigen/src/Core/AssignEvaluator.h +1010 -0
  65. include/Eigen/src/Core/Assign_MKL.h +178 -0
  66. include/Eigen/src/Core/BandMatrix.h +353 -0
  67. include/Eigen/src/Core/Block.h +448 -0
  68. include/Eigen/src/Core/BooleanRedux.h +162 -0
  69. include/Eigen/src/Core/CommaInitializer.h +164 -0
  70. include/Eigen/src/Core/ConditionEstimator.h +175 -0
  71. include/Eigen/src/Core/CoreEvaluators.h +1741 -0
  72. include/Eigen/src/Core/CoreIterators.h +132 -0
  73. include/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  74. include/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  75. include/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  76. include/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  77. include/Eigen/src/Core/CwiseUnaryView.h +132 -0
  78. include/Eigen/src/Core/DenseBase.h +701 -0
  79. include/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  80. include/Eigen/src/Core/DenseStorage.h +652 -0
  81. include/Eigen/src/Core/Diagonal.h +258 -0
  82. include/Eigen/src/Core/DiagonalMatrix.h +391 -0
  83. include/Eigen/src/Core/DiagonalProduct.h +28 -0
  84. include/Eigen/src/Core/Dot.h +318 -0
  85. include/Eigen/src/Core/EigenBase.h +160 -0
  86. include/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  87. include/Eigen/src/Core/Fuzzy.h +155 -0
  88. include/Eigen/src/Core/GeneralProduct.h +465 -0
  89. include/Eigen/src/Core/GenericPacketMath.h +1040 -0
  90. include/Eigen/src/Core/GlobalFunctions.h +194 -0
  91. include/Eigen/src/Core/IO.h +258 -0
  92. include/Eigen/src/Core/IndexedView.h +237 -0
  93. include/Eigen/src/Core/Inverse.h +117 -0
  94. include/Eigen/src/Core/Map.h +171 -0
  95. include/Eigen/src/Core/MapBase.h +310 -0
  96. include/Eigen/src/Core/MathFunctions.h +2057 -0
  97. include/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  98. include/Eigen/src/Core/Matrix.h +565 -0
  99. include/Eigen/src/Core/MatrixBase.h +547 -0
  100. include/Eigen/src/Core/NestByValue.h +85 -0
  101. include/Eigen/src/Core/NoAlias.h +109 -0
  102. include/Eigen/src/Core/NumTraits.h +335 -0
  103. include/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  104. include/Eigen/src/Core/PermutationMatrix.h +605 -0
  105. include/Eigen/src/Core/PlainObjectBase.h +1128 -0
  106. include/Eigen/src/Core/Product.h +191 -0
  107. include/Eigen/src/Core/ProductEvaluators.h +1179 -0
  108. include/Eigen/src/Core/Random.h +218 -0
  109. include/Eigen/src/Core/Redux.h +515 -0
  110. include/Eigen/src/Core/Ref.h +381 -0
  111. include/Eigen/src/Core/Replicate.h +142 -0
  112. include/Eigen/src/Core/Reshaped.h +454 -0
  113. include/Eigen/src/Core/ReturnByValue.h +119 -0
  114. include/Eigen/src/Core/Reverse.h +217 -0
  115. include/Eigen/src/Core/Select.h +164 -0
  116. include/Eigen/src/Core/SelfAdjointView.h +365 -0
  117. include/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  118. include/Eigen/src/Core/Solve.h +188 -0
  119. include/Eigen/src/Core/SolveTriangular.h +235 -0
  120. include/Eigen/src/Core/SolverBase.h +168 -0
  121. include/Eigen/src/Core/StableNorm.h +251 -0
  122. include/Eigen/src/Core/StlIterators.h +463 -0
  123. include/Eigen/src/Core/Stride.h +116 -0
  124. include/Eigen/src/Core/Swap.h +68 -0
  125. include/Eigen/src/Core/Transpose.h +464 -0
  126. include/Eigen/src/Core/Transpositions.h +386 -0
  127. include/Eigen/src/Core/TriangularMatrix.h +1001 -0
  128. include/Eigen/src/Core/VectorBlock.h +96 -0
  129. include/Eigen/src/Core/VectorwiseOp.h +784 -0
  130. include/Eigen/src/Core/Visitor.h +381 -0
  131. include/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  132. include/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  133. include/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  134. include/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  135. include/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  136. include/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  137. include/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  138. include/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  139. include/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  140. include/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  141. include/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  142. include/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  143. include/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  144. include/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  145. include/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  146. include/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  147. include/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  148. include/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  149. include/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  150. include/Eigen/src/Core/arch/Default/Half.h +942 -0
  151. include/Eigen/src/Core/arch/Default/Settings.h +49 -0
  152. include/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  153. include/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  154. include/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  155. include/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  156. include/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  157. include/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  158. include/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  159. include/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  160. include/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  161. include/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  162. include/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  163. include/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  164. include/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  165. include/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  166. include/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  167. include/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  168. include/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  169. include/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  170. include/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  171. include/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  172. include/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  173. include/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  174. include/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  175. include/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  176. include/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  177. include/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  178. include/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  179. include/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  180. include/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  181. include/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  182. include/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  183. include/Eigen/src/Core/functors/StlFunctors.h +166 -0
  184. include/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  185. include/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  186. include/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  187. include/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  188. include/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  189. include/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  190. include/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  191. include/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  192. include/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  193. include/Eigen/src/Core/products/Parallelizer.h +180 -0
  194. include/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  195. include/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  196. include/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  197. include/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  198. include/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  199. include/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  200. include/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  201. include/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  202. include/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  203. include/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  204. include/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  205. include/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  206. include/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  207. include/Eigen/src/Core/util/BlasUtil.h +583 -0
  208. include/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  209. include/Eigen/src/Core/util/Constants.h +563 -0
  210. include/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  211. include/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  212. include/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  213. include/Eigen/src/Core/util/IntegralConstant.h +272 -0
  214. include/Eigen/src/Core/util/MKL_support.h +137 -0
  215. include/Eigen/src/Core/util/Macros.h +1464 -0
  216. include/Eigen/src/Core/util/Memory.h +1163 -0
  217. include/Eigen/src/Core/util/Meta.h +812 -0
  218. include/Eigen/src/Core/util/NonMPL2.h +3 -0
  219. include/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  220. include/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  221. include/Eigen/src/Core/util/StaticAssert.h +221 -0
  222. include/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  223. include/Eigen/src/Core/util/XprHelper.h +856 -0
  224. include/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  225. include/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  226. include/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  227. include/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  228. include/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  229. include/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  230. include/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  231. include/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  232. include/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  233. include/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  234. include/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  235. include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  236. include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  237. include/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  238. include/Eigen/src/Geometry/AlignedBox.h +486 -0
  239. include/Eigen/src/Geometry/AngleAxis.h +247 -0
  240. include/Eigen/src/Geometry/EulerAngles.h +114 -0
  241. include/Eigen/src/Geometry/Homogeneous.h +501 -0
  242. include/Eigen/src/Geometry/Hyperplane.h +282 -0
  243. include/Eigen/src/Geometry/OrthoMethods.h +235 -0
  244. include/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  245. include/Eigen/src/Geometry/Quaternion.h +870 -0
  246. include/Eigen/src/Geometry/Rotation2D.h +199 -0
  247. include/Eigen/src/Geometry/RotationBase.h +206 -0
  248. include/Eigen/src/Geometry/Scaling.h +188 -0
  249. include/Eigen/src/Geometry/Transform.h +1563 -0
  250. include/Eigen/src/Geometry/Translation.h +202 -0
  251. include/Eigen/src/Geometry/Umeyama.h +166 -0
  252. include/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  253. include/Eigen/src/Householder/BlockHouseholder.h +110 -0
  254. include/Eigen/src/Householder/Householder.h +176 -0
  255. include/Eigen/src/Householder/HouseholderSequence.h +545 -0
  256. include/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  257. include/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  258. include/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  259. include/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  260. include/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  261. include/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  262. include/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  263. include/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  264. include/Eigen/src/Jacobi/Jacobi.h +483 -0
  265. include/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  266. include/Eigen/src/LU/Determinant.h +117 -0
  267. include/Eigen/src/LU/FullPivLU.h +877 -0
  268. include/Eigen/src/LU/InverseImpl.h +432 -0
  269. include/Eigen/src/LU/PartialPivLU.h +624 -0
  270. include/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  271. include/Eigen/src/LU/arch/InverseSize4.h +351 -0
  272. include/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  273. include/Eigen/src/OrderingMethods/Amd.h +435 -0
  274. include/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  275. include/Eigen/src/OrderingMethods/Ordering.h +153 -0
  276. include/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  277. include/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  278. include/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  279. include/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  280. include/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  281. include/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  282. include/Eigen/src/QR/HouseholderQR.h +434 -0
  283. include/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  284. include/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  285. include/Eigen/src/SVD/BDCSVD.h +1366 -0
  286. include/Eigen/src/SVD/JacobiSVD.h +812 -0
  287. include/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  288. include/Eigen/src/SVD/SVDBase.h +376 -0
  289. include/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  290. include/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  291. include/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  292. include/Eigen/src/SparseCore/AmbiVector.h +378 -0
  293. include/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  294. include/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  295. include/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  296. include/Eigen/src/SparseCore/SparseAssign.h +270 -0
  297. include/Eigen/src/SparseCore/SparseBlock.h +571 -0
  298. include/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  299. include/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  300. include/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  301. include/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  302. include/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  303. include/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  304. include/Eigen/src/SparseCore/SparseDot.h +98 -0
  305. include/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  306. include/Eigen/src/SparseCore/SparseMap.h +305 -0
  307. include/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  308. include/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  309. include/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  310. include/Eigen/src/SparseCore/SparseProduct.h +181 -0
  311. include/Eigen/src/SparseCore/SparseRedux.h +49 -0
  312. include/Eigen/src/SparseCore/SparseRef.h +397 -0
  313. include/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  314. include/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  315. include/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  316. include/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  317. include/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  318. include/Eigen/src/SparseCore/SparseUtil.h +186 -0
  319. include/Eigen/src/SparseCore/SparseVector.h +478 -0
  320. include/Eigen/src/SparseCore/SparseView.h +254 -0
  321. include/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  322. include/Eigen/src/SparseLU/SparseLU.h +923 -0
  323. include/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  324. include/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  325. include/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  326. include/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  327. include/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  328. include/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  329. include/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  330. include/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  331. include/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  332. include/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  333. include/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  334. include/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  335. include/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  336. include/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  337. include/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  338. include/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  339. include/Eigen/src/SparseQR/SparseQR.h +758 -0
  340. include/Eigen/src/StlSupport/StdDeque.h +116 -0
  341. include/Eigen/src/StlSupport/StdList.h +106 -0
  342. include/Eigen/src/StlSupport/StdVector.h +131 -0
  343. include/Eigen/src/StlSupport/details.h +84 -0
  344. include/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  345. include/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  346. include/Eigen/src/misc/Image.h +82 -0
  347. include/Eigen/src/misc/Kernel.h +79 -0
  348. include/Eigen/src/misc/RealSvd2x2.h +55 -0
  349. include/Eigen/src/misc/blas.h +440 -0
  350. include/Eigen/src/misc/lapack.h +152 -0
  351. include/Eigen/src/misc/lapacke.h +16292 -0
  352. include/Eigen/src/misc/lapacke_mangling.h +17 -0
  353. include/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  354. include/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  355. include/Eigen/src/plugins/BlockMethods.h +1442 -0
  356. include/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  357. include/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  358. include/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  359. include/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  360. include/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  361. include/Eigen/src/plugins/ReshapedMethods.h +149 -0
  362. include/Spectra/DavidsonSymEigsSolver.h +93 -0
  363. include/Spectra/GenEigsBase.h +532 -0
  364. include/Spectra/GenEigsComplexShiftSolver.h +159 -0
  365. include/Spectra/GenEigsRealShiftSolver.h +85 -0
  366. include/Spectra/GenEigsSolver.h +149 -0
  367. include/Spectra/JDSymEigsBase.h +190 -0
  368. include/Spectra/LinAlg/Arnoldi.h +315 -0
  369. include/Spectra/LinAlg/BKLDLT.h +537 -0
  370. include/Spectra/LinAlg/DoubleShiftQR.h +440 -0
  371. include/Spectra/LinAlg/Lanczos.h +171 -0
  372. include/Spectra/LinAlg/Orthogonalization.h +141 -0
  373. include/Spectra/LinAlg/RitzPairs.h +130 -0
  374. include/Spectra/LinAlg/SearchSpace.h +96 -0
  375. include/Spectra/LinAlg/TridiagEigen.h +230 -0
  376. include/Spectra/LinAlg/UpperHessenbergEigen.h +314 -0
  377. include/Spectra/LinAlg/UpperHessenbergQR.h +786 -0
  378. include/Spectra/LinAlg/UpperHessenbergSchur.h +450 -0
  379. include/Spectra/MatOp/DenseCholesky.h +125 -0
  380. include/Spectra/MatOp/DenseGenComplexShiftSolve.h +118 -0
  381. include/Spectra/MatOp/DenseGenMatProd.h +112 -0
  382. include/Spectra/MatOp/DenseGenRealShiftSolve.h +104 -0
  383. include/Spectra/MatOp/DenseSymMatProd.h +107 -0
  384. include/Spectra/MatOp/DenseSymShiftSolve.h +110 -0
  385. include/Spectra/MatOp/SparseCholesky.h +128 -0
  386. include/Spectra/MatOp/SparseGenComplexShiftSolve.h +124 -0
  387. include/Spectra/MatOp/SparseGenMatProd.h +107 -0
  388. include/Spectra/MatOp/SparseGenRealShiftSolve.h +110 -0
  389. include/Spectra/MatOp/SparseRegularInverse.h +135 -0
  390. include/Spectra/MatOp/SparseSymMatProd.h +108 -0
  391. include/Spectra/MatOp/SparseSymShiftSolve.h +114 -0
  392. include/Spectra/MatOp/SymShiftInvert.h +245 -0
  393. include/Spectra/MatOp/internal/ArnoldiOp.h +158 -0
  394. include/Spectra/MatOp/internal/SymGEigsBucklingOp.h +95 -0
  395. include/Spectra/MatOp/internal/SymGEigsCayleyOp.h +105 -0
  396. include/Spectra/MatOp/internal/SymGEigsCholeskyOp.h +87 -0
  397. include/Spectra/MatOp/internal/SymGEigsRegInvOp.h +84 -0
  398. include/Spectra/MatOp/internal/SymGEigsShiftInvertOp.h +95 -0
  399. include/Spectra/SymEigsBase.h +453 -0
  400. include/Spectra/SymEigsShiftSolver.h +200 -0
  401. include/Spectra/SymEigsSolver.h +164 -0
  402. include/Spectra/SymGEigsShiftSolver.h +463 -0
  403. include/Spectra/SymGEigsSolver.h +290 -0
  404. include/Spectra/Util/CompInfo.h +36 -0
  405. include/Spectra/Util/GEigsMode.h +28 -0
  406. include/Spectra/Util/SelectionRule.h +300 -0
  407. include/Spectra/Util/SimpleRandom.h +99 -0
  408. include/Spectra/Util/TypeTraits.h +99 -0
  409. include/Spectra/Util/Version.h +16 -0
  410. include/Spectra/contrib/LOBPCGSolver.h +551 -0
  411. include/Spectra/contrib/PartialSVDSolver.h +211 -0
  412. lib/cmake/eigen/EigenTargets.cmake +107 -0
  413. libigl-2.6.4.dev0.dist-info/METADATA +132 -0
  414. libigl-2.6.4.dev0.dist-info/RECORD +420 -0
  415. libigl-2.6.4.dev0.dist-info/WHEEL +5 -0
  416. libigl-2.6.4.dev0.dist-info/licenses/LICENSE.GPL +674 -0
  417. libigl-2.6.4.dev0.dist-info/licenses/LICENSE.MPL2 +373 -0
  418. share/spectra/cmake/Spectra-targets.cmake +123 -0
  419. share/spectra/cmake/spectra-config-version.cmake +43 -0
  420. share/spectra/cmake/spectra-config.cmake +31 -0
igl/__init__.py ADDED
@@ -0,0 +1 @@
1
+ from .pyigl_core import *
@@ -0,0 +1 @@
1
+ from .pyigl_copyleft_core import *
@@ -0,0 +1 @@
1
+ from .pyigl_copyleft_cgal import *
@@ -0,0 +1,231 @@
1
+ from typing import Annotated, overload
2
+
3
+ from numpy.typing import ArrayLike
4
+
5
+
6
+ def convex_hull(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)]) -> Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')]:
7
+ """
8
+ Compute the convex hull of a set of points, returning only the triangular faces of the hull.
9
+
10
+ @param[in] V #V by 3 matrix of input points
11
+ @return F: #F by 3 matrix of triangle indices into V
12
+ """
13
+
14
+ def coplanar(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)]) -> bool:
15
+ """
16
+ Test whether all points lie on the same plane.
17
+
18
+ @param[in] V #V by 3 list of 3D vertex positions
19
+ @return true if all points are coplanar
20
+ """
21
+
22
+ def delaunay_triangulation(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)]) -> Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')]:
23
+ """
24
+ Compute the Delaunay triangulation of a 2D point set using CGAL.
25
+
26
+ @param[in] V #V by 2 list of 2D vertex positions
27
+ @return F #F by 3 triangle indices into V
28
+ """
29
+
30
+ def extract_cells(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)]) -> tuple[int, Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')]]:
31
+ """
32
+ Extract connected 3D cells partitioned by a triangle mesh.
33
+
34
+ @param[in] V #V by 3 array of vertices
35
+ @param[in] F #F by 3 array of triangle indices
36
+ @return tuple (num_cells, cells):
37
+ - num_cells number of cells (cell 0 is the infinite outer cell)
38
+ - cells #F by 2 array of cell indices; cells[i,0] is the cell on the
39
+ positive side of face i, cells[i,1] is on the negative side
40
+ """
41
+
42
+ def fast_winding_number(P: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], N: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], Q: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], expansion_order: int = 2, beta: float = 2.0) -> Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')]:
43
+ """
44
+ Evaluate the fast winding number for point data with adjustable accuracy.
45
+
46
+ @param[in] P #P by 3 list of point locations
47
+ @param[in] N #P by 3 list of point normals
48
+ @param[in] Q #Q by 3 list of query points for the winding number
49
+ @param[in] expansion_order Order of the Taylor expansion (0, 1, or 2)
50
+ @param[in] beta Barnes-Hut style accuracy parameter (recommended: 2)
51
+ @return Vector of winding number values for each query point
52
+ """
53
+
54
+ def intersect_other(VA: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], FA: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], VB: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], FB: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], detect_only: bool = False, first_only: bool = False, stitch_all: bool = False, slow_and_more_precise_rounding: bool = False, cutoff: int = 1000) -> tuple[Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')]]:
55
+ """
56
+ Detect intersecting faces between two triangle meshes, providing detailed output.
57
+
58
+ @param[in] VA #V by 3 list of vertices for first mesh
59
+ @param[in] FA #F by 3 list of faces for first mesh
60
+ @param[in] VB #V by 3 list of vertices for second mesh
61
+ @param[in] FB #F by 3 list of faces for second mesh
62
+ @param[in] detect_only only detect intersections, do not resolve
63
+ @param[in] first_only only return first intersection
64
+ @param[in] stitch_all stitch all intersections
65
+ @param[in] slow_and_more_precise_rounding use slow and more precise rounding
66
+ @param[in] cutoff maximum number of intersections to resolve
67
+ @return Tuple containing:
68
+ - success: bool indicating if the operation succeeded
69
+ - IF: # intersecting face pairs
70
+ - VVAB: list of intersection vertex positions
71
+ - FFAB: list of triangle indices into VVAB
72
+ - JAB: list of indices into [FA;FB] denoting the birth triangle
73
+ - IMAB: indices stitching duplicates from intersections
74
+ """
75
+
76
+ @overload
77
+ def intersect_with_half_space(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], p: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)], n: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')]]:
78
+ """
79
+ Intersect a PWN mesh with a half-space using a point and normal.
80
+
81
+ @param[in] V #V by 3 list of mesh vertex positions
82
+ @param[in] F #F by 3 list of triangle indices
83
+ @param[in] p 3D point on plane
84
+ @param[in] n 3D normal vector
85
+ @return Tuple containing:
86
+ - success: bool, true if successful
87
+ - VC: vertices of resulting mesh
88
+ - FC: face indices of resulting mesh
89
+ - J: birth facet indices
90
+ """
91
+
92
+ @overload
93
+ def intersect_with_half_space(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], equ: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')]]:
94
+ """
95
+ Intersect a PWN mesh with a half-space using the plane equation.
96
+
97
+ @param[in] V #V by 3 list of mesh vertex positions
98
+ @param[in] F #F by 3 list of triangle indices
99
+ @param[in] equ Plane equation coefficients (a, b, c, d)
100
+ @return Tuple containing:
101
+ - success: bool, true if successful
102
+ - VC: vertices of resulting mesh
103
+ - FC: face indices of resulting mesh
104
+ - J: birth facet indices
105
+ """
106
+
107
+ def mesh_boolean(VA: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], FA: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], VB: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)] = ..., FB: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)] = ..., type_str: str) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')]]:
108
+ """
109
+ Compute the boolean operation (union, intersection, difference, etc.) between two meshes.
110
+
111
+ @param[in] VA #VA by dim matrix of mesh A vertices
112
+ @param[in] FA #FA by simplex_size matrix of mesh A faces
113
+ @param[in] VB #VB by dim matrix of mesh B vertices
114
+ @param[in] FB #FB by simplex_size matrix of mesh B faces
115
+ @param[in] type_str Type of boolean operation: "union", "intersection", "difference", etc.
116
+ @param[out] VC #VC by dim matrix of result vertices
117
+ @param[out] FC #FC by simplex_size matrix of result faces
118
+ @param[out] J #FC list of indices indicating which input face contributed to each result face
119
+ @return Tuple containing:
120
+ - VC: Result vertices
121
+ - FC: Result faces
122
+ - J: Face origin indices
123
+ """
124
+
125
+ def oriented_bounding_box(P: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)]) -> Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')]:
126
+ """
127
+ Given a set of points compute the rotation transformation of them such
128
+ that their axis-aligned bounding box is as small as possible.
129
+
130
+ igl::oriented_bounding_box is often faster and better
131
+
132
+ @param[in] P #P by 3 list of point locations
133
+ @param[out] R rotation matrix
134
+ """
135
+
136
+ def outer_hull(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='bool', shape=(None), order='C')]]:
137
+ """
138
+ Compute the outer hull of a piecewise-constant winding number mesh.
139
+
140
+ @param[in] V #V by 3 list of vertex positions
141
+ @param[in] F #F by 3 list of triangle indices into V
142
+ @return tuple (HV, HF, J, flip):
143
+ - HV #HV by 3 output vertex positions
144
+ - HF #HF by 3 output triangle indices into HV
145
+ - J #HF list of indices into F (birth faces)
146
+ - flip #HF list of bools, true if facet was flipped
147
+ """
148
+
149
+ def peel_outer_hull_layers(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='bool', shape=(None), order='C')], int]:
150
+ """
151
+ Successively peel outer hull layers from a mesh, useful for boolean operations.
152
+
153
+ @param[in] V #V by 3 list of vertex positions
154
+ @param[in] F #F by 3 list of triangle indices into V
155
+ @return tuple (I, flip, num_peels):
156
+ - I #F list of which peel layer each facet belongs to
157
+ - flip #F list of bools, true if facet orientation was flipped during peeling
158
+ - num_peels number of peel layers
159
+ """
160
+
161
+ def peel_winding_number_layers(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], int]:
162
+ """
163
+ Peel winding number layers from a mesh.
164
+
165
+ @param[in] V #V by 3 list of vertex positions
166
+ @param[in] F #F by 3 list of triangle indices into V
167
+ @return tuple (W, num_layers):
168
+ - W #V list of integer winding numbers per vertex
169
+ - num_layers number of winding number layers
170
+ """
171
+
172
+ def point_areas(P: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], I: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], N: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')]]:
173
+ r"""
174
+ Given a 3D set of points P, each with a list of k-nearest-neighbours,
175
+ estimate the geodesic voronoi area associated with each point.
176
+
177
+ The k nearest neighbours may be known from running igl::knn_octree on
178
+ the output data from igl::octree. We reccomend using a k value
179
+ between 15 and 20 inclusive for accurate area estimation.
180
+
181
+ N is used filter the neighbours, to ensure area estimation only occurs
182
+ using neighbors that are on the same side of the surface (ie for thin
183
+ sheets), as well as to solve the orientation ambiguity of the tangent
184
+ plane normal.
185
+
186
+ \note This function *should* be implemented by pre-filtering I, rather
187
+ than filtering in this function using N. In this case, the function
188
+ would only take P and I as input.
189
+
190
+ @param[in] P #P by 3 list of point locations
191
+ @param[in] I #P by k list of k-nearest-neighbor indices into P
192
+ @param[in] N #P by 3 list of point normals
193
+ @param[out] A #P list of estimated areas
194
+ @param[out] T #P by 3 list of tangent plane normals for each point
195
+
196
+ \see igl::knn
197
+ """
198
+
199
+ def remesh_self_intersections(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], detect_only: bool = False, first_only: bool = False, stitch_all: bool = False, slow_and_more_precise_rounding: bool = False, cutoff: int = 1000) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')]]:
200
+ """
201
+ Resolve self-intersections in a mesh, without returning unique vertex indices (IM).
202
+
203
+ @param[in] V #V by 3 list of vertex positions
204
+ @param[in] F #F by 3 list of face indices
205
+ @param[in] detect_only only detect intersections, do not resolve
206
+ @param[in] first_only only return first intersection
207
+ @param[in] stitch_all stitch all intersections
208
+ @param[in] slow_and_more_precise_rounding use slow and more precise rounding
209
+ @param[in] cutoff maximum number of intersections to resolve
210
+ @return Tuple containing:
211
+ - VV: remeshed vertex positions
212
+ - FF: remeshed face indices
213
+ - IF: intersecting face pairs
214
+ - J: birth triangle indices
215
+ - IM if stitch_all = true #VV list from 0 to #VV-1
216
+ elseif stitch_all = false #VV list of indices into VV of unique vertices.
217
+ """
218
+
219
+ def trim_with_solid(VA: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], FA: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], VB: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], FB: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='bool', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')]]:
220
+ """
221
+ Trim a mesh with another solid mesh, determining which faces lie inside or outside.
222
+
223
+ @param[in] VA Vertex positions of mesh A
224
+ @param[in] FA Triangle indices of mesh A
225
+ @param[in] VB Vertex positions of mesh B (solid)
226
+ @param[in] FB Triangle indices of mesh B
227
+ @param[out] V Output vertex positions
228
+ @param[out] F Output triangle indices
229
+ @param[out] D Boolean vector indicating if each face is inside B
230
+ @param[out] J Indices into FA showing parent triangle
231
+ """
Binary file
@@ -0,0 +1,65 @@
1
+ from typing import Annotated, overload
2
+
3
+ from numpy.typing import ArrayLike
4
+
5
+
6
+ @overload
7
+ def marching_cubes(values: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)], points: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], x_res: int, y_res: int, z_res: int, isovalue: float = 0.0) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')]]:
8
+ """
9
+ Perform marching cubes to extract an isosurface from a scalar field on a regular grid.
10
+
11
+ @param[in] values #points vector of scalar values (<0 inside, >0 outside)
12
+ @param[in] points #points by 3 grid point positions (x-fastest order:
13
+ index = x + y*x_res + z*x_res*y_res)
14
+ @param[in] x_res grid resolution in x
15
+ @param[in] y_res grid resolution in y
16
+ @param[in] z_res grid resolution in z
17
+ @param[in] isovalue isovalue to reconstruct (default: 0.0)
18
+ @return tuple (vertices, faces):
19
+ - vertices #V by 3 mesh vertex positions
20
+ - faces #F by 3 mesh triangle indices
21
+ """
22
+
23
+ @overload
24
+ def marching_cubes(values: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)], points: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], indices: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], isovalue: float = 0.0) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')]]:
25
+ """
26
+ Perform marching cubes on a sparse grid defined by explicit cube corner indices.
27
+
28
+ @param[in] values #points vector of scalar values
29
+ @param[in] points #points by 3 grid point positions
30
+ @param[in] indices #cubes by 8 array of corner indices into points/values
31
+ @param[in] isovalue isovalue to reconstruct (default: 0.0)
32
+ @return tuple (vertices, faces):
33
+ - vertices #V by 3 mesh vertex positions
34
+ - faces #F by 3 mesh triangle indices
35
+ """
36
+
37
+ def progressive_hulls(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='F')], F: Annotated[ArrayLike, dict(dtype='int32', shape=(None, None), order='F')], max_m: int = 0) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='F')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='F')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')]]:
38
+ """
39
+ Performs progressive hull simplification on a mesh, collapsing edges until a target number of faces is reached.
40
+
41
+ @param[in] V #V by dim list of vertex positions
42
+ @param[in] F #F by 3 list of face indices into V
43
+ @param[in] max_m Target number of output faces
44
+ @param[out] U Output vertex positions
45
+ @param[out] G Output face indices into U
46
+ @param[out] J Indices into F indicating the birth face for each face in G
47
+ """
48
+
49
+ def quadprog(G: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], g0: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)], CE: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)] = ..., ce0: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)] = ..., CI: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)] = ..., ci0: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)] = ...) -> Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')]:
50
+ """
51
+ Solve a dense convex quadratic program.
52
+
53
+ Minimizes: 0.5 x' G x + g0' x
54
+ Subject to: CE' x + ce0 = 0
55
+ CI' x + ci0 >= 0
56
+
57
+ @param[in] G #x by #x positive semi-definite quadratic cost matrix
58
+ @param[in] g0 #x linear cost vector
59
+ @param[in] CE #x by #ce equality constraint matrix (optional)
60
+ @param[in] ce0 #ce equality constraint rhs (optional)
61
+ @param[in] CI #x by #ci inequality constraint matrix (optional)
62
+ @param[in] ci0 #ci inequality constraint rhs (optional)
63
+ @return x #x solution vector
64
+ @raises RuntimeError if the solver fails
65
+ """
@@ -0,0 +1 @@
1
+ from .pyigl_copyleft_tetgen import *
@@ -0,0 +1,88 @@
1
+ from typing import Annotated
2
+
3
+ from numpy.typing import ArrayLike
4
+
5
+
6
+ class CDTParam:
7
+ def __init__(self) -> None: ...
8
+
9
+ @property
10
+ def use_bounding_box(self) -> bool: ...
11
+
12
+ @use_bounding_box.setter
13
+ def use_bounding_box(self, arg: bool, /) -> None: ...
14
+
15
+ @property
16
+ def bounding_box_scale(self) -> float: ...
17
+
18
+ @bounding_box_scale.setter
19
+ def bounding_box_scale(self, arg: float, /) -> None: ...
20
+
21
+ @property
22
+ def flags(self) -> str: ...
23
+
24
+ @flags.setter
25
+ def flags(self, arg: str, /) -> None: ...
26
+
27
+ def cdt(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], param: CDTParam = ...) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')]]:
28
+ """
29
+ Create a constrained Delaunay tetrahedralization of the convex hull of a mesh.
30
+
31
+ The input mesh must be non-self-intersecting.
32
+
33
+ @param[in] V #V by 3 list of input mesh vertices
34
+ @param[in] F #F by 3 list of input mesh facets
35
+ @param[in] param CDTParam struct with fields:
36
+ use_bounding_box force meshing of the bounding box (default: false)
37
+ bounding_box_scale scale factor for bounding box (default: 1.01)
38
+ flags tetgen flags, do not include "c" (default: "Y")
39
+ @return tuple (TV, TT, TF):
40
+ - TV #TV by 3 output vertex positions (input vertices come first)
41
+ - TT #TT by 4 tetrahedra indices into TV
42
+ - TF #TF by 3 surface triangle indices (facets from F, possibly subdivided)
43
+ @raises RuntimeError on failure
44
+ """
45
+
46
+ def mesh_with_skeleton(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], C: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], P: Annotated[ArrayLike, dict(dtype='int64', shape=(None), writable=False)] = ..., BE: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)] = ..., CE: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)] = ..., samples_per_bone: int = 10, tetgen_flags: str = '') -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')]]:
47
+ """
48
+ Mesh the interior of a surface with a graded tetrahedral mesh conforming to a skeleton.
49
+
50
+ @param[in] V #V by 3 list of surface mesh vertex positions
51
+ @param[in] F #F by 3 list of triangle indices
52
+ @param[in] C #C by 3 list of skeleton joint positions
53
+ @param[in] P #P list of point handle indices into C (optional)
54
+ @param[in] BE #BE by 2 list of bone edge indices into C (optional)
55
+ @param[in] CE #CE by 2 list of cage edge indices into P (optional)
56
+ @param[in] samples_per_bone number of samples added per bone (default: 10)
57
+ @param[in] tetgen_flags tetgen option string (default: "" → "pq2Y")
58
+ @return tuple (VV, TT, FF):
59
+ - VV #VV by 3 tet-mesh vertex positions
60
+ - TT #TT by 4 tetrahedra indices
61
+ - FF #FF by 3 surface triangle indices
62
+ @raises RuntimeError on failure
63
+ """
64
+
65
+ def tetrahedralize(V: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], F: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)] = ..., H: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)] = ..., VM: Annotated[ArrayLike, dict(dtype='int64', shape=(None), writable=False)] = ..., FM: Annotated[ArrayLike, dict(dtype='int64', shape=(None), writable=False)] = ..., R: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)] = ..., flags: str = '') -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), order='C')], int]:
66
+ """
67
+ Mesh the interior of a surface mesh (V,F) using tetgen
68
+
69
+ @param[in] V #V by 3 vertex position list
70
+ @param[in] F #F list of polygon face indices into V (0-indexed)
71
+ @param[in] H #H by 3 list of seed points inside holes
72
+ @param[in] VM #VM list of vertex markers
73
+ @param[in] FM #FM list of face markers
74
+ @param[in] R #R by 5 list of region attributes
75
+ @param[in] flags string of tetgen options (See tetgen documentation) e.g.
76
+ "pq1.414a0.01" tries to mesh the interior of a given surface with
77
+ quality and area constraints
78
+ "" will mesh the convex hull constrained to pass through V (ignores F)
79
+ @param[out] TV #TV by 3 vertex position list
80
+ @param[out] TT #TT by 4 list of tet face indices
81
+ @param[out] TF #TF by 3 list of triangle face indices ('f', else
82
+ `boundary_facets` is called on TT)
83
+ @param[out] TR #TT list of region ID for each tetrahedron
84
+ @param[out] TN #TT by 4 list of indices neighbors for each tetrahedron ('n')
85
+ @param[out] PT #TV list of incident tetrahedron for a vertex ('m')
86
+ @param[out] FT #TF by 2 list of tetrahedrons sharing a triface ('nn')
87
+ @param[out] num_regions Number of regions in output mesh
88
+ """
@@ -0,0 +1 @@
1
+ from .pyigl_cycodebase import *
Binary file
@@ -0,0 +1,122 @@
1
+ from typing import Annotated, overload
2
+
3
+ from numpy.typing import ArrayLike
4
+
5
+
6
+ @overload
7
+ def box_cubic(C: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')]]:
8
+ """
9
+ Compute the min/max box corners tightly containing a cubic Bézier curve.
10
+
11
+ @param[in] C 4 by dim matrix of control points defining the cubic Bézier curve
12
+ @return Tuple (B1, B2) where
13
+ B1 1 by dim min corner of the bounding box
14
+ B2 1 by dim max corner of the bounding box
15
+ """
16
+
17
+ @overload
18
+ def box_cubic(P: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], C: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')]]:
19
+ """
20
+ Compute bounding boxes for a collection of indexed cubic Bézier curves.
21
+
22
+ @param[in] P #P by dim matrix of control point locations
23
+ @param[in] C #C by 4 matrix of indices into P defining the cubics
24
+ @return Tuple (B1, B2) where
25
+ B1 #C by dim matrix of min corners of the bounding boxes
26
+ B2 #C by dim matrix of max corners of the bounding boxes
27
+ """
28
+
29
+ @overload
30
+ def point_cubic_squared_distance(Q: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], C: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')]]:
31
+ """
32
+ Squared distance from each query point to a cubic Bézier curve.
33
+
34
+ @param[in] Q #Q by dim matrix of query points
35
+ @param[in] C 4 by dim matrix of control points for the cubic Bézier curve
36
+ @return Tuple (sqrD, S, K) where
37
+ sqrD #Q vector of smallest squared distances
38
+ S #Q vector of parameters of the closest points on the curve
39
+ K #Q by dim matrix of closest points on the curve
40
+ """
41
+
42
+ @overload
43
+ def point_cubic_squared_distance(Q: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], C: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], D: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], B: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')]]:
44
+ """
45
+ Squared distance to a cubic Bézier curve, reusing precomputed monomial bases.
46
+
47
+ Compute the bases once with igl.cubic_monomial_bases(C) -> (M, D, B) and pass
48
+ (D, B) here so repeated queries against the same curve skip recomputing them.
49
+ The result matches the two-argument overload.
50
+
51
+ @param[in] Q #Q by dim matrix of query points
52
+ @param[in] C 4 by dim matrix of control points for the cubic Bézier curve
53
+ @param[in] D 3 by dim matrix of monomial coefficients for dC/dt (from cubic_monomial_bases)
54
+ @param[in] B 6-vector of inner products of the monomial bases (from cubic_monomial_bases)
55
+ @return Tuple (sqrD, S, K) where
56
+ sqrD #Q vector of smallest squared distances
57
+ S #Q vector of parameters of the closest points on the curve
58
+ K #Q by dim matrix of closest points on the curve
59
+ """
60
+
61
+ @overload
62
+ def point_spline_squared_distance(Q: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], P: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], C: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')]]:
63
+ """
64
+ Squared distance from each query point to a spline of cubic Bézier curves.
65
+
66
+ @param[in] Q #Q by dim matrix of query points
67
+ @param[in] P #P by dim matrix of spline control points
68
+ @param[in] C #C by 4 matrix of indices into P defining the cubic Bézier curves
69
+ @return Tuple (sqrD, I, S, K) where
70
+ sqrD #Q vector of smallest squared distances
71
+ I #Q vector of indices of the closest cubic (row of C)
72
+ S #Q vector of parameters of the closest points on that cubic
73
+ K #Q by dim matrix of closest points on the spline
74
+ """
75
+
76
+ @overload
77
+ def point_spline_squared_distance(Q: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], P: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], C: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)], B1: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], B2: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], leaf: Annotated[ArrayLike, dict(dtype='int64', shape=(None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')]]:
78
+ """
79
+ Squared distance to a spline, reusing a prebuilt Eytzinger AABB.
80
+
81
+ Build the AABB once with igl.cycodebase.spline_eytzinger_aabb(P, C) and pass its
82
+ (B1, B2, leaf) here so repeated queries against the same spline skip rebuilding
83
+ the acceleration structure. The result matches the unaccelerated overload.
84
+
85
+ @param[in] Q #Q by dim matrix of query points
86
+ @param[in] P #P by dim matrix of spline control points
87
+ @param[in] C #C by 4 matrix of indices into P defining the cubic Bézier curves
88
+ @param[in] B1 #B by dim matrix of AABB min box corners (from spline_eytzinger_aabb)
89
+ @param[in] B2 #B by dim matrix of AABB max box corners (from spline_eytzinger_aabb)
90
+ @param[in] leaf #B vector of AABB leaf node indices/flags (from spline_eytzinger_aabb)
91
+ @return Tuple (sqrD, I, S, K) where
92
+ sqrD #Q vector of smallest squared distances
93
+ I #Q vector of indices of the closest cubic (row of C)
94
+ S #Q vector of parameters of the closest points on that cubic
95
+ K #Q by dim matrix of closest points on the spline
96
+ """
97
+
98
+ def roots(coef: Annotated[ArrayLike, dict(dtype='float64', shape=(None), writable=False)], xmin: float, xmax: float) -> tuple[int, Annotated[ArrayLike, dict(dtype='float64', shape=(None), order='C')]]:
99
+ """
100
+ Find the real roots of a polynomial within an interval [xmin, xmax].
101
+
102
+ @param[in] coef #coef list of monomial coefficients (low to high order); the
103
+ polynomial degree is len(coef)-1
104
+ @param[in] xmin lower bound of the search interval
105
+ @param[in] xmax upper bound of the search interval
106
+ @return Tuple (n, R) where
107
+ n number of roots found in [xmin, xmax]
108
+ R degree-length vector whose first n entries are the roots (ascending); the
109
+ remaining entries are NaN
110
+ """
111
+
112
+ def spline_eytzinger_aabb(P: Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), writable=False)], C: Annotated[ArrayLike, dict(dtype='int64', shape=(None, None), writable=False)]) -> tuple[Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='float64', shape=(None, None), order='C')], Annotated[ArrayLike, dict(dtype='int64', shape=(None), order='C')]]:
113
+ """
114
+ Compute an Eytzinger-layout AABB tree for a spline of cubic Bézier curves.
115
+
116
+ @param[in] P #P by dim matrix of spline control points
117
+ @param[in] C #C by 4 matrix of indices into P defining the cubic Bézier curves
118
+ @return Tuple (B1, B2, leaf) where
119
+ B1 #B by dim matrix of AABB min box corners
120
+ B2 #B by dim matrix of AABB max box corners
121
+ leaf #B vector of AABB leaf node indices/flags
122
+ """
@@ -0,0 +1 @@
1
+ from .pyigl_predicates import *
Binary file