meshlib 3.0.0.40__py311-none-manylinux_2_31_aarch64.whl → 3.0.2.183__py311-none-manylinux_2_31_aarch64.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.
Potentially problematic release.
This version of meshlib might be problematic. Click here for more details.
- meshlib/MRDarkTheme.json +12 -0
- meshlib/MRLightTheme.json +12 -0
- meshlib/__init__.py +3 -56
- meshlib/mrcudapy.pyi +127 -0
- meshlib/mrcudapy.so +0 -0
- meshlib/mrmeshnumpy.pyi +1 -1
- meshlib/mrmeshnumpy.so +0 -0
- meshlib/mrmeshpy.pyi +19952 -12827
- meshlib/mrmeshpy.so +0 -0
- meshlib/mrviewerpy.pyi +5 -5
- meshlib/mrviewerpy.so +0 -0
- meshlib-3.0.2.183.dist-info/METADATA +237 -0
- meshlib-3.0.2.183.dist-info/RECORD +93 -0
- {meshlib-3.0.0.40.dist-info → meshlib-3.0.2.183.dist-info}/WHEEL +1 -1
- meshlib.libs/libE57Format-5d24dabf.so.3.2.0 +0 -0
- meshlib.libs/libMRCuda-b4670994.so +0 -0
- meshlib.libs/libMRIOExtras-c6c1dea2.so +0 -0
- meshlib.libs/{libMRMesh-aa15fd6e.so → libMRMesh-712962c4.so} +0 -0
- meshlib.libs/libMRPython-36fc64c9.so +0 -0
- meshlib.libs/libMRSymbolMesh-3ecf119c.so +0 -0
- meshlib.libs/{libMRViewer-31aa1aa6.so → libMRViewer-bf2ef4cb.so} +0 -0
- meshlib.libs/libMRVoxels-560acdaf.so +0 -0
- meshlib.libs/libgdcmMSFF-ece750c0.so.3.0.5 +0 -0
- meshlib.libs/{liblazperf-6599ba9c.so → liblazperf-82e64120.so} +0 -0
- meshlib.libs/{libopenjp2-c99ee6c6.so.2.3.1 → libopenjp2-09467980.so.2.3.1} +0 -0
- meshlib-3.0.0.40.dist-info/METADATA +0 -517
- meshlib-3.0.0.40.dist-info/RECORD +0 -179
- meshlib.libs/libE57Format-bcce663d.so +0 -0
- meshlib.libs/libMRIOExtras-73b100ab.so +0 -0
- meshlib.libs/libMRPython-47e814d4.so +0 -0
- meshlib.libs/libMRSymbolMesh-8e953cf8.so +0 -0
- meshlib.libs/libMRVoxels-2f97f97b.so +0 -0
- meshlib.libs/libXcomposite-76377e6f.so.1.0.0 +0 -0
- meshlib.libs/libXcursor-b40c8314.so.1.0.2 +0 -0
- meshlib.libs/libXdamage-46a8e720.so.1.1.0 +0 -0
- meshlib.libs/libXfixes-3d5c8c62.so.3.1.0 +0 -0
- meshlib.libs/libXi-48035246.so.6.1.0 +0 -0
- meshlib.libs/libXinerama-6d2b7f28.so.1.0.0 +0 -0
- meshlib.libs/libXrandr-69d0ef07.so.2.2.0 +0 -0
- meshlib.libs/libasn1-abb8a846.so.8.0.0 +0 -0
- meshlib.libs/libatk-1-f6bde1c1.0.so.0.23510.1 +0 -0
- meshlib.libs/libatk-bridge-2-5814194a.0.so.0.0.0 +0 -0
- meshlib.libs/libatkmm-1-2a8c721e.6.so.1.1.0 +0 -0
- meshlib.libs/libatspi-67c61c29.so.0.0.1 +0 -0
- meshlib.libs/libblkid-e4430204.so.1.1.0 +0 -0
- meshlib.libs/libbrotlicommon-5f23fdbe.so.1.0.7 +0 -0
- meshlib.libs/libbrotlidec-9c34295a.so.1.0.7 +0 -0
- meshlib.libs/libcairo-6a8712a6.so.2.11600.0 +0 -0
- meshlib.libs/libcairo-gobject-5f9fb202.so.2.11600.0 +0 -0
- meshlib.libs/libcairomm-1-bfefa54c.0.so.1.4.0 +0 -0
- meshlib.libs/libcom_err-68ec2731.so.2.1 +0 -0
- meshlib.libs/libcrypt-be793443.so.1.1.0 +0 -0
- meshlib.libs/libcurl-gnutls-07d93f73.so.4.6.0 +0 -0
- meshlib.libs/libdatrie-959615bc.so.1.3.5 +0 -0
- meshlib.libs/libdbus-1-f6dbd10e.so.3.19.11 +0 -0
- meshlib.libs/libepoxy-6cabc8da.so.0.0.0 +0 -0
- meshlib.libs/libffi-f7b659d2.so.7.1.0 +0 -0
- meshlib.libs/libfontconfig-8ee924d8.so.1.12.0 +0 -0
- meshlib.libs/libfribidi-8c829d72.so.0.4.0 +0 -0
- meshlib.libs/libgcrypt-d00669d1.so.20.2.5 +0 -0
- meshlib.libs/libgdk-3-b4662d1b.so.0.2404.16 +0 -0
- meshlib.libs/libgdk_pixbuf-2-738d5c9f.0.so.0.4000.0 +0 -0
- meshlib.libs/libgdkmm-3-66d0389a.0.so.1.1.0 +0 -0
- meshlib.libs/libgio-2-0b9e95ac.0.so.0.6400.6 +0 -0
- meshlib.libs/libgiomm-2-72b2d066.4.so.1.3.0 +0 -0
- meshlib.libs/libglibmm-2-acf1f041.4.so.1.3.0 +0 -0
- meshlib.libs/libgmodule-2-ab671fe5.0.so.0.6400.6 +0 -0
- meshlib.libs/libgmp-47793dba.so.10.4.0 +0 -0
- meshlib.libs/libgnutls-0b5a71d2.so.30.27.0 +0 -0
- meshlib.libs/libgpg-error-1fe52347.so.0.28.0 +0 -0
- meshlib.libs/libgraphite2-bf5a5809.so.3.2.1 +0 -0
- meshlib.libs/libgssapi-2535d001.so.3.0.0 +0 -0
- meshlib.libs/libgssapi_krb5-56ebb0c1.so.2.2 +0 -0
- meshlib.libs/libgtk-3-36a37653.so.0.2404.16 +0 -0
- meshlib.libs/libgtkmm-3-ab382dcc.0.so.1.1.0 +0 -0
- meshlib.libs/libharfbuzz-9dd66f18.so.0.20600.4 +0 -0
- meshlib.libs/libhcrypto-2024eb34.so.4.1.0 +0 -0
- meshlib.libs/libheimbase-a8d7ba3c.so.1.0.0 +0 -0
- meshlib.libs/libheimntlm-e8b3b1dd.so.0.1.0 +0 -0
- meshlib.libs/libhogweed-65c63b86.so.5.0 +0 -0
- meshlib.libs/libhx509-883f6b8c.so.5.0.0 +0 -0
- meshlib.libs/libicudata-2678dca0.so.66.1 +0 -0
- meshlib.libs/libicuuc-712d28f7.so.66.1 +0 -0
- meshlib.libs/libidn2-d8e281ae.so.0.3.6 +0 -0
- meshlib.libs/libk5crypto-1558d63e.so.3.1 +0 -0
- meshlib.libs/libkeyutils-26028e2f.so.1.8 +0 -0
- meshlib.libs/libkrb5-6e476c41.so.3.3 +0 -0
- meshlib.libs/libkrb5-939788a5.so.26.0.0 +0 -0
- meshlib.libs/libkrb5support-b05099e6.so.0.1 +0 -0
- meshlib.libs/liblber-2-56000e78.4.so.2.10.12 +0 -0
- meshlib.libs/libldap_r-2-82990c47.4.so.2.10.12 +0 -0
- meshlib.libs/libmount-67a34322.so.1.1.0 +0 -0
- meshlib.libs/libnettle-b4069eee.so.7.0 +0 -0
- meshlib.libs/libnghttp2-86366dd1.so.14.19.0 +0 -0
- meshlib.libs/libp11-kit-6e0d458f.so.0.3.0 +0 -0
- meshlib.libs/libpango-1-f280ad48.0.so.0.4400.7 +0 -0
- meshlib.libs/libpangocairo-1-a91304e1.0.so.0.4400.7 +0 -0
- meshlib.libs/libpangoft2-1-e5cce629.0.so.0.4400.7 +0 -0
- meshlib.libs/libpangomm-1-c26ed57e.4.so.1.0.30 +0 -0
- meshlib.libs/libpcre2-8-eb8611b9.so.0.9.0 +0 -0
- meshlib.libs/libpixman-1-06771588.so.0.38.4 +0 -0
- meshlib.libs/libpsl-ebe03d65.so.5.3.2 +0 -0
- meshlib.libs/libroken-c5c8068a.so.18.1.0 +0 -0
- meshlib.libs/librtmp-153ae61a.so.1 +0 -0
- meshlib.libs/libsasl2-da441969.so.2.0.25 +0 -0
- meshlib.libs/libselinux-199f3da0.so.1 +0 -0
- meshlib.libs/libsigc-2-105ca23d.0.so.0.0.0 +0 -0
- meshlib.libs/libsqlite3-5ec045b4.so.0.8.6 +0 -0
- meshlib.libs/libssh-6dc155ae.so.4.8.4 +0 -0
- meshlib.libs/libsystemd-5899be19.so.0.28.0 +0 -0
- meshlib.libs/libtasn1-94a50201.so.6.6.0 +0 -0
- meshlib.libs/libthai-f6ae431d.so.0.3.1 +0 -0
- meshlib.libs/libunistring-7dd61636.so.2.1.0 +0 -0
- meshlib.libs/libwayland-client-e6efd6a6.so.0.3.0 +0 -0
- meshlib.libs/libwayland-cursor-8cb525b9.so.0.0.0 +0 -0
- meshlib.libs/libwayland-egl-4f6efb3e.so.1.0.0 +0 -0
- meshlib.libs/libwind-abf8d43a.so.0.0.0 +0 -0
- meshlib.libs/libxcb-render-810d9f86.so.0.0.0 +0 -0
- meshlib.libs/libxcb-shm-9f158d64.so.0.0.0 +0 -0
- meshlib.libs/libxerces-c-3-ff49ae3e.2.so +0 -0
- meshlib.libs/libxkbcommon-d82d52b0.so.0.0.0 +0 -0
- {meshlib-3.0.0.40.dist-info → meshlib-3.0.2.183.dist-info}/LICENSE +0 -0
- {meshlib-3.0.0.40.dist-info → meshlib-3.0.2.183.dist-info}/top_level.txt +0 -0
|
@@ -1,517 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: meshlib
|
|
3
|
-
Version: 3.0.0.40
|
|
4
|
-
Summary: 3d processing library
|
|
5
|
-
Author-email: MeshLib Team <support@meshinspector.com>
|
|
6
|
-
License: NON-COMMERCIAL & education LICENSE AGREEMENT
|
|
7
|
-
|
|
8
|
-
This agreement is between the individual below (User) and AMV Consulting, LLC, a
|
|
9
|
-
Nevada limited liability company (AMV). The AMV source code library software, and all
|
|
10
|
-
modifications, enhancements, technical documentation provided by AMV as part of the
|
|
11
|
-
Software (Software) are licensed and are not sold. By receiving or using this
|
|
12
|
-
Software, User indicates its acceptance of the terms of this agreement.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
TRIAL LICENSE.
|
|
16
|
-
|
|
17
|
-
Subject to the terms of this agreement, AMV grants User a terminable, non-exclusive,
|
|
18
|
-
and non-transferable license to use the Software, solely for non-commercial,
|
|
19
|
-
evaluation or educational purposes.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
DISCLAIMER.
|
|
23
|
-
|
|
24
|
-
AMV DISCLAIMS ANY AND ALL REPRESENTATIONS OR WARRANTIES OF ANY
|
|
25
|
-
KIND, WHETHER EXPRESS OR IMPLIED, MADE WITH RESPECT TO THE
|
|
26
|
-
SOFTWARE, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES
|
|
27
|
-
OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR A
|
|
28
|
-
PARTICULAR PURPOSE. THE SOFTWARE IS PROVIDED ‘AS IS’ WITHOUT ANY
|
|
29
|
-
WARRANTY OF ANY KIND. AMV AND ITS LICENSORS DO NOT WARRANT THAT
|
|
30
|
-
ANY SOFTWARE IS WITHOUT DEFECT OR ERROR, OR THAT THE OPERATION
|
|
31
|
-
OF ANY SOFTWARE WILL BE UNINTERRUPTED.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
RESTRICTIONS ON USE.
|
|
35
|
-
|
|
36
|
-
User may not sell, rent, sublicense, display, modify, or otherwise transfer the Software
|
|
37
|
-
to any third party.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
OWNERSHIP.
|
|
41
|
-
|
|
42
|
-
All right, title, and interest to the Software are owned by AMV and its licensors, and
|
|
43
|
-
are protected by United States and international intellectual property laws. User may
|
|
44
|
-
not remove or alter any copyright or proprietary notice from copies of the Software.
|
|
45
|
-
AMV reserves all rights not expressly granted to User.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
TERMINATION.
|
|
49
|
-
|
|
50
|
-
The license in Section 1 terminates upon AMV’s notice of termination to User. Upon
|
|
51
|
-
termination of this agreement or a license for any reason, User must discontinue using
|
|
52
|
-
the Software, de-install, and destroy the Software and all copies within 5 days. Upon
|
|
53
|
-
AMV’s request, User will confirm in writing its compliance with this destruction or
|
|
54
|
-
return requirement.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
LIABILITY LIMIT.
|
|
58
|
-
|
|
59
|
-
EXCLUSION OF INDIRECT DAMAGES. TO THE MAXIMUM EXTENT ALLOWED
|
|
60
|
-
BY LAW, AMV IS NOT LIABLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL,
|
|
61
|
-
OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATED TO THIS
|
|
62
|
-
AGREEMENT (INCLUDING, WITHOUT LIMITATION, COSTS OF DELAY; LOSS
|
|
63
|
-
OF OR UNAUTHORIZED ACCESS TO DATA OR INFORMATION; AND LOST
|
|
64
|
-
PROFITS, REVENUE, OR ANTICIPATED COST SAVINGS), EVEN IF IT
|
|
65
|
-
KNOWS OF THE POSSIBILITY OR FORESEEABILITY OF SUCH DAMAGE OR
|
|
66
|
-
LOSS.
|
|
67
|
-
|
|
68
|
-
TOTAL LIMIT ON LIABILITY. TO THE MAXIMUM EXTENT ALLOWED BY LAW,
|
|
69
|
-
AMV'S TOTAL LIABILITY ARISING OUT OF OR RELATED TO THIS
|
|
70
|
-
AGREEMENT (WHETHER IN CONTRACT, TORT, OR OTHERWISE) DOES NOT
|
|
71
|
-
EXCEED $100.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
GOVERNING LAW AND FORUM.
|
|
75
|
-
|
|
76
|
-
This agreement is governed by the laws of the State of Nevada (without regard to
|
|
77
|
-
conflicts of law principles) for any dispute between the parties or relating in any way to
|
|
78
|
-
the subject matter of this agreement. Any suit or legal proceeding must be exclusively
|
|
79
|
-
brought in the federal or state courts for Washoe County, Nevada, and User submits to
|
|
80
|
-
this personal jurisdiction and venue. Nothing in this agreement prevents either party
|
|
81
|
-
from seeking injunctive relief in a court of competent jurisdiction. The prevailing party
|
|
82
|
-
in any litigation is entitled to recover its attorneys’ fees and costs from the other party.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
OTHER TERMS.
|
|
86
|
-
|
|
87
|
-
Entire Agreement and Changes. This agreement constitutes the entire
|
|
88
|
-
agreement between the parties and supersedes any prior or contemporaneous
|
|
89
|
-
negotiations or agreements, whether oral or written, related to this subject matter.
|
|
90
|
-
User is not relying on any representation concerning this subject matter, oral or
|
|
91
|
-
written, not included in this agreement. No representation, promise, or inducement
|
|
92
|
-
not included in this agreement is binding. No modification or waiver of any term of
|
|
93
|
-
this agreement is effective unless both parties sign it.
|
|
94
|
-
|
|
95
|
-
No Assignment. Neither party may assign or transfer this agreement to a third
|
|
96
|
-
party, nor delegate any duty, except that the agreement may be assigned, without
|
|
97
|
-
the consent of the other party, (i) as part of a merger or sale of all or substantially
|
|
98
|
-
all a party's businesses or assets, of User, and (ii) in the case of AMV at any time
|
|
99
|
-
to any third party.
|
|
100
|
-
|
|
101
|
-
Independent Contractors. The parties are independent contractors with respect
|
|
102
|
-
to each other, and neither party is an agent, employee, or partner of the other
|
|
103
|
-
party or the other party's affiliates.
|
|
104
|
-
|
|
105
|
-
Enforceability and Force Majeure. If any term of this agreement is invalid or
|
|
106
|
-
unenforceable, the other terms remain in effect. Neither party is liable for its non-
|
|
107
|
-
performance due to events beyond its reasonable control, including but not limited
|
|
108
|
-
to natural weather events and disasters, labor disruptions, and disruptions in the
|
|
109
|
-
supply of utilities.
|
|
110
|
-
|
|
111
|
-
Money Damages Insufficient. Any breach by a party of this agreement or
|
|
112
|
-
violation of the other party’s intellectual property rights could cause irreparable
|
|
113
|
-
injury or harm to the other party. The other party may seek a court order to stop
|
|
114
|
-
any breach or avoid any future breach of this agreement.
|
|
115
|
-
|
|
116
|
-
Survival of Terms. All provisions of this agreement regarding payment,
|
|
117
|
-
confidentiality, indemnification, limitations of liability, proprietary rights and such
|
|
118
|
-
other provisions that by fair implication require performance beyond the term of
|
|
119
|
-
this agreement must survive expiration or termination of this agreement until fully
|
|
120
|
-
performed or otherwise are inapplicable. The UN Convention on Contracts for the
|
|
121
|
-
International Sale of Goods does not apply.
|
|
122
|
-
|
|
123
|
-
Compliance Audit. No more than once in any 12-month period and upon at least
|
|
124
|
-
30 days’ advance notice, AMV (or its representative) may audit User’s usage of the
|
|
125
|
-
Software at any User facility. User will cooperate with such audit. User agrees to pay
|
|
126
|
-
within 30 days of written notification any fees applicable to User’s use of the
|
|
127
|
-
Software in excess of the license.
|
|
128
|
-
|
|
129
|
-
Export Compliance. The Software and Confidential Information may be subject to
|
|
130
|
-
export laws and regulations of the United States and other jurisdictions. Each party
|
|
131
|
-
represents that it is not named on any U.S. government denied-party list. Neither
|
|
132
|
-
party will permit its personnel or representatives to access any Software in a U.S.-
|
|
133
|
-
embargoed country or in violation of any applicable export law or regulation.
|
|
134
|
-
|
|
135
|
-
U.S. Government Restricted Rights. If User is a United States government
|
|
136
|
-
agency or acquired the license to the Software hereunder pursuant to a
|
|
137
|
-
government contract or with government funds, then as defined in FAR §2.101,
|
|
138
|
-
DFAR §252.227-7014(a)(1), and DFAR §252.227-7014(a)(5), or otherwise, all
|
|
139
|
-
Software provided in connection with this agreement are “commercial items,”
|
|
140
|
-
“commercial computer software,” or “commercial computer software
|
|
141
|
-
documentation.” Consistent with DFAR §227.7202 and FAR §12.212, any use,
|
|
142
|
-
modification, reproduction, release, performance, display, disclosure, or
|
|
143
|
-
distribution by or for the United States government is governed solely by the
|
|
144
|
-
terms of this agreement and is prohibited except to the extent permitted by the
|
|
145
|
-
terms of this agreement.
|
|
146
|
-
|
|
147
|
-
Open Source Software Licenses. The Software may contain embedded open source
|
|
148
|
-
software components, which are provided as part of the Software and for
|
|
149
|
-
which additional terms may be included in the technical documentation.
|
|
150
|
-
|
|
151
|
-
Feedback. If User provides feedback or suggestions about the Software, then AMV
|
|
152
|
-
(and those it allows to use its technology) may use such information without
|
|
153
|
-
obligation to User.
|
|
154
|
-
|
|
155
|
-
Project-URL: Homepage, https://meshlib.meshinspector.com/
|
|
156
|
-
Project-URL: Documentation, https://doc.meshinspector.com/
|
|
157
|
-
Project-URL: Source, https://github.com/MeshInspector/MeshLib
|
|
158
|
-
Project-URL: Bug Reports, https://github.com/MeshInspector/MeshLib/issues
|
|
159
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
160
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
161
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
162
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
163
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
164
|
-
Classifier: License :: Free For Educational Use
|
|
165
|
-
Classifier: License :: Free for non-commercial use
|
|
166
|
-
Classifier: Operating System :: Microsoft :: Windows
|
|
167
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
168
|
-
Classifier: Operating System :: MacOS :: MacOS X
|
|
169
|
-
Requires-Python: >=3.8
|
|
170
|
-
Description-Content-Type: text/markdown
|
|
171
|
-
License-File: LICENSE
|
|
172
|
-
Requires-Dist: numpy >=1.19.0
|
|
173
|
-
|
|
174
|
-
[](https://gitpod.io/#https://github.com/MeshInspector/MeshLib)
|
|
175
|
-
|
|
176
|
-
[](https://github.com/MeshInspector/MeshLib/actions/workflows/build-test-distribute.yml?branch=master)
|
|
177
|
-
[](https://badge.fury.io/py/meshlib)
|
|
178
|
-
[](https://badge.fury.io/py/meshlib)
|
|
179
|
-
[](https://pepy.tech/project/meshlib)
|
|
180
|
-
|
|
181
|
-

|
|
182
|
-
|
|
183
|
-
# Welcome to the MeshLib!
|
|
184
|
-
3D scanning is becoming more and more ubiquitous. Robotic automation, self-driving cars and multitude of other industrial, medical and scientific applications require advanced computer vision to deliver the levels of automation customers expect these days. The great rise of AI gave another boost to computer vision and the need to utilize 3D data to make machines smarter. Not only are tasks at hand becoming more complex, but the size of data grows exponentially.
|
|
185
|
-
|
|
186
|
-
There is a multitude of general purpose libraries which deal with 3D data. Some stem from popular CAD packages, some are open source. The commercial ones tend to be quite expensive while open source are free though tend to be limited in functionality provided. Also those libraries value generality above other features to allow maximum number of applications, but with the growing amounts of 3D data, performance is critical as it never has been. Some of it can be addressed by using the scale of a commercial cloud, last generation CPU or GPU but underlying complexity of data representation makes it very hard and laborsome.
|
|
187
|
-
|
|
188
|
-
The goal which we set when designing MeshLib was to value simplicity and performance while providing a wide gamut of useful computational algorithms. The library also supports the most important data structures today’s sensors can produce - pointcloud, mesh, volume and more. For example, mesh is represented by half-edge data structure and cannot be made non-manifold. Some applications may require non-manifoldness, but most practical scans can be represented as manifoldness meshes without an issue.
|
|
189
|
-
|
|
190
|
-
## Some useful links
|
|
191
|
-
* [MeshInspector](https://github.com/MeshInspector/MeshInspector/) is a free application based on MeshLib
|
|
192
|
-
|
|
193
|
-
* [MeshInspector online web-browser version](https://app.meshinspector.com/) (simple email sign-in is required)
|
|
194
|
-
|
|
195
|
-
* [MeshInspector web-site](https://meshinspector.com/)
|
|
196
|
-
|
|
197
|
-
* [Comparison of MeshLib vs VTK library](https://docs.google.com/presentation/d/1Tw5ppmWoF-aRwuVqa6xdMSEjmEd5Y6O2ny7Gu8iQBos/edit?usp=sharing)
|
|
198
|
-
|
|
199
|
-
* [MeshInspector YouTube channel](https://www.youtube.com/channel/UCv9bNhwoVDPaLPPyWJeVPNg)
|
|
200
|
-
|
|
201
|
-
* [MeshLib Documentation](https://doc.meshinspector.com/)
|
|
202
|
-
|
|
203
|
-
* [Email us](mailto:support@meshinspector.com)
|
|
204
|
-
|
|
205
|
-
* [Submit an issue](https://meshinspector.github.io/ReportIssue/)
|
|
206
|
-
|
|
207
|
-
## Major features
|
|
208
|
-
This list is not full and updating each day
|
|
209
|
-
### Math basics
|
|
210
|
-
- Math primitives and operations support (Vectors 2D, 3D, 4D; Lines; Planes; Bounding Boxes; Matrices; Affine transformations; Quaternions; Histograms; etc.)
|
|
211
|
-
### 3D data handling, creation, modification
|
|
212
|
-
- 3D data various representations support: Mesh, Voxel and Point Cloud.
|
|
213
|
-
- Data creation
|
|
214
|
-
- Mesh creation by given vertices and triangles,
|
|
215
|
-
- Surface primitives (e.g. tor, cube, sphere, etc).
|
|
216
|
-
- Representation conversions
|
|
217
|
-
- Triangulation of a Point Cloud to Mesh,
|
|
218
|
-
- Mesh to Cloud Point conversion,
|
|
219
|
-
- Mesh to Voxel conversion,
|
|
220
|
-
- Voxel To Mesh conversion.
|
|
221
|
-
- Deformations
|
|
222
|
-
- Laplassian deformation,
|
|
223
|
-
- Freeform deformation,
|
|
224
|
-
- Relax, mesh smoothing,
|
|
225
|
-
- Position Verts Smoothly, arrangement of vertices in accordance with the gradient along the neighbors.
|
|
226
|
-
- Offsets
|
|
227
|
-
- Mesh offset,
|
|
228
|
-
- Mesh partial offset.
|
|
229
|
-
- Resolution
|
|
230
|
-
- Breaking a mesh into smaller triangles (increasing the resolution)
|
|
231
|
-
- Mesh decimation (decreasing the number of triangles, decreasing the resolution) with a specified error relative to the old mesh.
|
|
232
|
-
- Cutting a contour on a surface. The mesh is modified so that the resulting contour contains new edges cut through triangles at the specified points.
|
|
233
|
-
- Splitting
|
|
234
|
-
- Splitting mesh into sub-meshes (components)
|
|
235
|
-
### 3D data operations
|
|
236
|
-
- Boolean operations (union, intersection, difference) on 3D objects bounded by meshes. MeshLib has two independent modes:
|
|
237
|
-
1. Boolean ops on meshes via intermediate conversion into voxel representation. This mode requires closed meshes without holes on input and much memory for high accuracy but tolerate for various input mesh degenerations and self-intersections.
|
|
238
|
-
2. Direct Boolean ops on meshes using robust predicates, producing exact accurate result and keeping original mesh elements as is if they are not intersected. This mode supports for open meshes with holes as long as the boundary of the mesh is not intersected.
|
|
239
|
-
- According to our user reports, MeshLib direct Boolean operations are significatly faster even compared to the latest published approaches, e.g. [Interactive and Robust Mesh Booleans](https://arxiv.org/pdf/2205.14151.pdf)
|
|
240
|
-
- Construction of Convex Hull of a point cloud or a mesh.
|
|
241
|
-
### 3D Data problems fixing
|
|
242
|
-
- Fixing holes in mesh
|
|
243
|
-
- Holes stitching (removing two holes by stitching their boundaries)
|
|
244
|
-
- Hole filling,
|
|
245
|
-
- Holes fixing metrics
|
|
246
|
-
- Basic set of triangulation metrics,
|
|
247
|
-
- Extended set of triangulation metrics,
|
|
248
|
-
- Custom triangulation metrics.
|
|
249
|
-
- Delaunay triangulation optimization, changing triangles without changing vertices, according to Delaunay criterion,
|
|
250
|
-
- Tunnels fixing,
|
|
251
|
-
- Multiple edges detection
|
|
252
|
-
- Degenerate triangles fixing,
|
|
253
|
-
- Undercuts fixing, via voxels,
|
|
254
|
-
- Surface self-intersections fixing
|
|
255
|
-
- Guaranteed fix via voxels,
|
|
256
|
-
- Fix via Relax (mesh smoothing).
|
|
257
|
-
### Functions on 3D data
|
|
258
|
-
- BVH hierarchies (AABB trees) for meshes and polylines to accelerate all other operations
|
|
259
|
-
- Projection
|
|
260
|
-
- Projecting a point onto a mesh - closest point queries
|
|
261
|
-
- Intersection
|
|
262
|
-
- Intersection of a ray with a mesh (ray tracing),
|
|
263
|
-
- Intersection of a plane with a mesh, result is a contour,
|
|
264
|
-
- Finding a contour representing intersection of two meshes, meshes remain unchanged,
|
|
265
|
-
- Distance
|
|
266
|
-
- Distance from a point to a mesh,
|
|
267
|
-
- Minimal distance between two meshes,
|
|
268
|
-
- Mesh distance map (height map),
|
|
269
|
-
- 2D contour distance map.
|
|
270
|
-
- Segmentation
|
|
271
|
-
- Semi-auto voxel segmentation (volumes classification).
|
|
272
|
-
- Semi-auto mesh segmentation by curvature.
|
|
273
|
-
- Sampling
|
|
274
|
-
- Mesh sampling. The result is a separate thinned set of vertices, the mesh remains unchanged.
|
|
275
|
-
- Point cloud sampling. The result is a separate thinned set of points, the cloud remains unchanged
|
|
276
|
-
- Uniform cloud sampling,
|
|
277
|
-
- Grid cloud sampling.
|
|
278
|
-
- Path
|
|
279
|
-
- Finding a shortest path through the mesh vertices,
|
|
280
|
-
- Finding a geodesic shortest path on the surface, not necessarily through mesh vertices.
|
|
281
|
-
- Iterative Closest Points (ICP), two meshes aligning
|
|
282
|
-
- Point to point,
|
|
283
|
-
- Point to plane.
|
|
284
|
-
### Upcoming features
|
|
285
|
-
We plan to add computed-tomography reconstruction in MeshLib (already present in MeshInspector). Please write us if you like to see some other features.
|
|
286
|
-
|
|
287
|
-
# Python integration
|
|
288
|
-
|
|
289
|
-
Although MeshLib is written in C++, all functions are exposed to Python as well. Python code can be executed both from within a MeshLib-based C++ application (embedded mode) and from python interpreter directly, which imports MeshLib modules.
|
|
290
|
-
|
|
291
|
-
Moreover, the latest MeshLib released version can be easily installed as a Python 3.8 - 3.12 package using `pip install`:
|
|
292
|
-
* On Windows via
|
|
293
|
-
```
|
|
294
|
-
py -3 -m pip install --upgrade pip
|
|
295
|
-
py -3 -m pip install --upgrade meshlib
|
|
296
|
-
```
|
|
297
|
-
* On Linuxes supporting [manylinux_2_31+](https://github.com/mayeut/pep600_compliance#distro-compatibility), including Ubuntu 20+ and Fedora 32+ via
|
|
298
|
-
```
|
|
299
|
-
sudo apt install python3-pip
|
|
300
|
-
python3 -m pip install --upgrade pip
|
|
301
|
-
python3 -m pip install --upgrade meshlib
|
|
302
|
-
```
|
|
303
|
-
* On macOS 12.0+ via
|
|
304
|
-
```
|
|
305
|
-
pip install --upgrade pip
|
|
306
|
-
pip install --upgrade meshlib
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
See Python Basic Examples [here](https://doc.meshinspector.com/HowToBasic.html) or search for more complex ones on [stackoverflow.com](https://stackoverflow.com/).
|
|
310
|
-
|
|
311
|
-
# .NET integration
|
|
312
|
-
|
|
313
|
-
Also you can integrate MeshLib into your .NET project via NuGet. The package can be installed from .NET command-line interface, VisualStudio, or downloaded from [NuGet website](https://www.nuget.org/packages/MeshLib/).
|
|
314
|
-
## Installation via .NET command-line interface
|
|
315
|
-
```
|
|
316
|
-
# Create a new directory for your project
|
|
317
|
-
mkdir TestProject
|
|
318
|
-
# Move to the directory
|
|
319
|
-
cd TestProject
|
|
320
|
-
# Create a new console project
|
|
321
|
-
dotnet new console
|
|
322
|
-
# Install MeshLib package
|
|
323
|
-
dotnet add package MeshLib
|
|
324
|
-
```
|
|
325
|
-
## Installation via VisualStudio
|
|
326
|
-
- Create a new .NET project (File -> New -> Project...)
|
|
327
|
-
- Select a project template. Note that MeshLib supports both classic .NET Framework and new .NET platform.
|
|
328
|
-
- Specify the target .NET version. Minimal supported versions are .NET Framework 4.7.1 and .NET 6.
|
|
329
|
-
- Right-click on your project in Solution Explorer and select *Manage NuGet Packages*
|
|
330
|
-
- Select *nuget.org* as package source
|
|
331
|
-
- Go to the *Browse* tab and type "MeshLib" in the *Search* field
|
|
332
|
-
- Select MeshLib package and press the *Install* button
|
|
333
|
-
|
|
334
|
-
## Installation of downloaded .nupkg file
|
|
335
|
-
- Open [NuGet website](https://www.nuget.org/packages/MeshLib/)
|
|
336
|
-
- Click on *Download package*
|
|
337
|
-
- In Visual Studio go to Tools -> NuGet Package Manager -> Package Manager Settings
|
|
338
|
-
- Proceed to the *Package Sources* tab
|
|
339
|
-
- Look which directory is used for Microsoft Visual Studio Offline Packages
|
|
340
|
-
- Copy the downloaded package to that directory
|
|
341
|
-
- Create a new .NET Project as described above
|
|
342
|
-
- In the *Manage NuGet Packages* dialog select *Microsoft Visual Studio Offline Packages* as package source
|
|
343
|
-
- Select MeshLib package and press the *Install* button
|
|
344
|
-
|
|
345
|
-
> **_NOTE:_** MeshLib package is built for x64 architecture, so make sure that your solution platform is x64. Correct working for other platforms is not guaranteed.
|
|
346
|
-
|
|
347
|
-
# Build
|
|
348
|
-
## Windows
|
|
349
|
-
MeshLib can be build on Windows using either Visual Studio 2019 or Visual Studio 2022, both of which support c++20 language standard.
|
|
350
|
-
```sh
|
|
351
|
-
git clone https://github.com/MeshInspector/MeshLib.git
|
|
352
|
-
cd MeshLib
|
|
353
|
-
git submodule update --init --recursive
|
|
354
|
-
cd ..
|
|
355
|
-
```
|
|
356
|
-
Note: following below steps will take about 40Gb of your disk space.
|
|
357
|
-
|
|
358
|
-
### Preparing Third Parties
|
|
359
|
-
Some third parties are taken from vcpkg, while others (missing in vcpkg) are configured as git submodules.
|
|
360
|
-
|
|
361
|
-
### CUDA
|
|
362
|
-
Windows version of MeshLib is configured to use
|
|
363
|
-
* CUDA v11.4 in Visual Studio 2019 and
|
|
364
|
-
* CUDA v12.0 in Visual Studio 2022.
|
|
365
|
-
|
|
366
|
-
Please install CUDA from the [official site](https://developer.nvidia.com/cuda-toolkit-archive).
|
|
367
|
-
If you would like to use another version of CUDA, please modify `MRCudaVersion` in `MeshLib/source/platform.props`.
|
|
368
|
-
|
|
369
|
-
### Vcpkg
|
|
370
|
-
1. Please install `vcpkg`, and integrate it into Visual Studio (note that vcpkg requires English language pack in Visual Studio, and vcpkg cannot be installed on FAT volumes, only on NTFS):
|
|
371
|
-
```sh
|
|
372
|
-
git clone https://github.com/Microsoft/vcpkg.git
|
|
373
|
-
cd vcpkg
|
|
374
|
-
git checkout 2024.07.12
|
|
375
|
-
.\bootstrap-vcpkg.bat
|
|
376
|
-
.\vcpkg integrate install (with admin rights)
|
|
377
|
-
```
|
|
378
|
-
More details here: [vcpkg](https://github.com/microsoft/vcpkg).
|
|
379
|
-
|
|
380
|
-
2. (Optional, but recommended) Install [AWS CLI v2](https://awscli.amazonaws.com/AWSCLIV2.msi). Once installed, reopen PowerShell or CMD. This will allow you to use the vcpkg binary cache from our aws s3, which will speed up the installation process and reduce the required disk space.
|
|
381
|
-
|
|
382
|
-
3. Execute `MeshLib/thirdparty/install.bat` having previously installed `vcpkg` as the current working directory (or simply add `vcpkg` to `PATH` environment variable).
|
|
383
|
-
|
|
384
|
-
4. Open solution file `MeshLib/source/MeshLib.sln` in Visual Studio. Build it and run.
|
|
385
|
-
|
|
386
|
-
## Linux
|
|
387
|
-
|
|
388
|
-
We regularly check that MeshLib can be built successfully on Ubuntu 20.04 LTS, Ubuntu 22.04 LTS (both x64 and ARM), and Fedora 37.
|
|
389
|
-
|
|
390
|
-
**Install/Build dependencies. Build project. Run Test Application**
|
|
391
|
-
|
|
392
|
-
Install CUDA v12.0 from [official site](https://developer.nvidia.com/cuda-toolkit-archive)
|
|
393
|
-
|
|
394
|
-
Use automated installation process. It takes ~40 minutes if no required packages are already installed.
|
|
395
|
-
This approach is useful for new MR developers
|
|
396
|
-
|
|
397
|
-
Run the following in terminal:
|
|
398
|
-
|
|
399
|
-
```sh
|
|
400
|
-
git clone --recurse-submodules https://github.com/MeshInspector/MeshLib.git
|
|
401
|
-
cd MeshLib
|
|
402
|
-
./scripts/build_thirdparty.sh # do not select emscripten in the corresponding question
|
|
403
|
-
./scripts/build_source.sh # do not select emscripten in the corresponding question
|
|
404
|
-
# create and install package for Ubuntu
|
|
405
|
-
./scripts/distribution.sh
|
|
406
|
-
sudo apt install ./distr/meshlib-dev.deb
|
|
407
|
-
# create and install package for Fedora
|
|
408
|
-
./scripts/distribution_rpm.sh
|
|
409
|
-
sudo apt install ./distr/meshlib-dev.rpm
|
|
410
|
-
```
|
|
411
|
-
|
|
412
|
-
> **_NOTE:_** `./scripts/install*.sh` scripts could be used as well, but apt install is preferable.
|
|
413
|
-
|
|
414
|
-
> **_NOTE:_** `./scripts/install_thirdparty.sh` script copies MR files directly to `/usr/local/lib`. Remove this directory manually if exists before apt install deb package.
|
|
415
|
-
|
|
416
|
-
> **_NOTE:_** You could specify build type to Debug by `export MESHLIB_BUILD_TYPE=Debug`. Release is default. Set `MESHLIB_KEEP_BUILD=ON` to suppress full rebuild
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
## WASM/Emscripten
|
|
420
|
-
This installation was checked on Ubuntu 22.04 with Emscripten 3.1.48.
|
|
421
|
-
|
|
422
|
-
Install Emscripten (find more on [Emscripten official page](https://emscripten.org/docs/getting_started/downloads.html))
|
|
423
|
-
```
|
|
424
|
-
git clone https://github.com/emscripten-core/emsdk.git
|
|
425
|
-
cd emsdk
|
|
426
|
-
git pull origin # optional
|
|
427
|
-
./emsdk install 3.1.48 # (or another version / latest)
|
|
428
|
-
./emsdk activate 3.1.48
|
|
429
|
-
source ./emsdk_env.sh
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
Build
|
|
433
|
-
```
|
|
434
|
-
cd ~/MeshLib
|
|
435
|
-
./scripts/build_thirdparty.sh # select Emscripten in the corresponding question
|
|
436
|
-
./scripts/build_source.sh # select Emscripten in the corresponding question
|
|
437
|
-
```
|
|
438
|
-
> **_NOTE:_** Set `MESHLIB_KEEP_BUILD=ON` to suppress full rebuild
|
|
439
|
-
|
|
440
|
-
Run
|
|
441
|
-
```
|
|
442
|
-
python3 -m http.server 8000 # note that server should have specific COEP and COOP policies for multithread version
|
|
443
|
-
# open in browser 127.0.0.1:8000
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
# Integration
|
|
447
|
-
|
|
448
|
-
## Linux Ubuntu/Fedora
|
|
449
|
-
You can download [dev package](https://github.com/MeshInspector/MeshLib/releases) and install it with your Linux OS package manager.
|
|
450
|
-
Examples of integration with cmake can be found in the `./examples` directory.
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
## MacOS
|
|
454
|
-
Same as for Linux, but requires brew packages to be installed:
|
|
455
|
-
```
|
|
456
|
-
xargs brew install < /Library/Frameworks/MeshLib.framework/Versions/Current/requirements/macos.txt
|
|
457
|
-
```
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
## Windows
|
|
461
|
-
There are two general options of integrating MeshLib into your project:
|
|
462
|
-
1. [Submodule](#submodule)
|
|
463
|
-
2. [Distribution](#distribution)
|
|
464
|
-
|
|
465
|
-
### Submodule
|
|
466
|
-
|
|
467
|
-
You can have MeshLib as submodule in your repository, and inculde all MeshLib's projects to your solution.
|
|
468
|
-
|
|
469
|
-
This option requires you to [install third-party libraries](#vcpkg) via `vcpkg` package mananger.
|
|
470
|
-
|
|
471
|
-
> **_NOTE:_** You should use `MeshLib/source/common.props` in other projects of your solution.
|
|
472
|
-
|
|
473
|
-
> **_NOTE:_** You can customize props by defining `CustomMRProps.props` in directory above `common.props`.
|
|
474
|
-
|
|
475
|
-
> **_NOTE:_** If you would like to set `_ITERATOR_DEBUG_LEVEL=1` macro, then please do it in `CustomMRProps.props` together with `MR_ITERATOR_DEBUG_LEVEL=1` macro.
|
|
476
|
-
|
|
477
|
-
### Distribution
|
|
478
|
-
You can download [zip-archive](https://github.com/MeshInspector/MeshLib/releases) containing
|
|
479
|
-
* header files (.h),
|
|
480
|
-
* library archives (.lib),
|
|
481
|
-
* dynamic labraries (.dll)
|
|
482
|
-
|
|
483
|
-
of both MeshLib and dependant third-party libraries, and make them available during your project building and runtime execution as follows.
|
|
484
|
-
|
|
485
|
-
Project settings in Visual Studio:
|
|
486
|
-
1. `C/C++ -> General -> Additional Include Directories` add `distribution\install\include;`
|
|
487
|
-
2. `Linker -> General -> Additional Library Directories` add `distribution\install\app\$(Configuration);`
|
|
488
|
-
3. `Linker -> Input -> Additional Dependencies` add `distribution\install\lib\$(Configuration)\*.lib;`
|
|
489
|
-
4. Debug Configuration: `C/C++ -> Preprocessor -> Preprocessor Defenitions` add `_ITERATOR_DEBUG_LEVEL=0;`
|
|
490
|
-
|
|
491
|
-
Make sure you copy all dlls from `distribution\install\app\$(Configuration);` to your `$(TargetDir)`
|
|
492
|
-
> **_NOTE:_** MeshLib distribution has x64 build only.
|
|
493
|
-
|
|
494
|
-
> **_NOTE:_** Distribution is built with `_ITERATOR_DEBUG_LEVEL=0` macro defined in Debug configuration so you will need to setup this for your projects.
|
|
495
|
-
|
|
496
|
-
### Distribution for .NET
|
|
497
|
-
You can download [zip-archive MeshLibDotNetDist.zip](https://github.com/MeshInspector/MeshLib/releases) containing dynamic lybraries (.dll) of both MeshLib and dependant third-party libraries, and make them available during your project building and runtime execution as follows.
|
|
498
|
-
|
|
499
|
-
1. Create a new C# project in Visual Studio.
|
|
500
|
-
2. Double-click on the project in Solution Explorer. You will see content of the `.csproj` file
|
|
501
|
-
3. Add the following lines before the `</Project>` closing tag
|
|
502
|
-
```
|
|
503
|
-
<PropertyGroup>
|
|
504
|
-
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
|
505
|
-
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
|
506
|
-
</PropertyGroup>
|
|
507
|
-
|
|
508
|
-
<ItemGroup>
|
|
509
|
-
<Reference Include="MRDotNet">
|
|
510
|
-
<HintPath>path\to\distribution\$(Configuration)\MRDotNet.dll</HintPath>
|
|
511
|
-
</Reference>
|
|
512
|
-
</ItemGroup>
|
|
513
|
-
```
|
|
514
|
-
4. Extract content of `MeshLibDotNetDist.zip` to `project\bin` directory
|
|
515
|
-
|
|
516
|
-
You could find examples of usage in this repo in `examples\c-sharp-example` directory
|
|
517
|
-
> **_NOTE:_** MeshLib distribution has x64 build only.
|