init
This commit is contained in:
@@ -0,0 +1 @@
|
||||
pip
|
||||
@@ -0,0 +1,318 @@
|
||||
Metadata-Version: 2.4
|
||||
Name: trimesh
|
||||
Version: 4.9.0
|
||||
Summary: Import, export, process, analyze and view triangular meshes.
|
||||
Author-email: Michael Dawson-Haggerty <mikedh@kerfed.com>
|
||||
License: The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2023 Michael Dawson-Haggerty
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
Project-URL: homepage, https://github.com/mikedh/trimesh
|
||||
Project-URL: documentation, https://trimesh.org
|
||||
Keywords: graphics,mesh,geometry,3D
|
||||
Classifier: Development Status :: 4 - Beta
|
||||
Classifier: License :: OSI Approved :: MIT License
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 3.8
|
||||
Classifier: Programming Language :: Python :: 3.9
|
||||
Classifier: Programming Language :: Python :: 3.10
|
||||
Classifier: Programming Language :: Python :: 3.11
|
||||
Classifier: Programming Language :: Python :: 3.12
|
||||
Classifier: Natural Language :: English
|
||||
Classifier: Topic :: Scientific/Engineering
|
||||
Classifier: Topic :: Multimedia :: Graphics
|
||||
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
|
||||
Requires-Python: >=3.8
|
||||
Description-Content-Type: text/markdown
|
||||
License-File: LICENSE.md
|
||||
Requires-Dist: numpy>=1.20
|
||||
Provides-Extra: easy
|
||||
Requires-Dist: colorlog; extra == "easy"
|
||||
Requires-Dist: manifold3d>=2.3.0; extra == "easy"
|
||||
Requires-Dist: charset-normalizer; extra == "easy"
|
||||
Requires-Dist: lxml; extra == "easy"
|
||||
Requires-Dist: jsonschema; extra == "easy"
|
||||
Requires-Dist: networkx; extra == "easy"
|
||||
Requires-Dist: svg.path; extra == "easy"
|
||||
Requires-Dist: pycollada<=0.9.0; python_version < "3.9" and extra == "easy"
|
||||
Requires-Dist: pycollada; python_version >= "3.9" and extra == "easy"
|
||||
Requires-Dist: shapely; extra == "easy"
|
||||
Requires-Dist: xxhash; extra == "easy"
|
||||
Requires-Dist: rtree; extra == "easy"
|
||||
Requires-Dist: httpx; extra == "easy"
|
||||
Requires-Dist: scipy; extra == "easy"
|
||||
Requires-Dist: embreex; platform_machine == "x86_64" and extra == "easy"
|
||||
Requires-Dist: pillow; extra == "easy"
|
||||
Requires-Dist: vhacdx; python_version >= "3.9" and extra == "easy"
|
||||
Requires-Dist: mapbox_earcut>=1.0.2; python_version >= "3.9" and extra == "easy"
|
||||
Provides-Extra: recommend
|
||||
Requires-Dist: sympy; extra == "recommend"
|
||||
Requires-Dist: meshio; extra == "recommend"
|
||||
Requires-Dist: pyglet<2; extra == "recommend"
|
||||
Requires-Dist: psutil; extra == "recommend"
|
||||
Requires-Dist: scikit-image; extra == "recommend"
|
||||
Requires-Dist: fast-simplification; extra == "recommend"
|
||||
Requires-Dist: python-fcl; extra == "recommend"
|
||||
Requires-Dist: cascadio; extra == "recommend"
|
||||
Provides-Extra: test
|
||||
Requires-Dist: pytest-cov; extra == "test"
|
||||
Requires-Dist: pytest; extra == "test"
|
||||
Requires-Dist: pyinstrument; extra == "test"
|
||||
Requires-Dist: ruff; extra == "test"
|
||||
Provides-Extra: test-more
|
||||
Requires-Dist: coveralls; extra == "test-more"
|
||||
Requires-Dist: ezdxf; extra == "test-more"
|
||||
Requires-Dist: xatlas; extra == "test-more"
|
||||
Requires-Dist: pytest-beartype; python_version >= "3.10" and extra == "test-more"
|
||||
Requires-Dist: matplotlib; extra == "test-more"
|
||||
Requires-Dist: pymeshlab; extra == "test-more"
|
||||
Requires-Dist: triangle; extra == "test-more"
|
||||
Requires-Dist: ipython; extra == "test-more"
|
||||
Requires-Dist: marimo; extra == "test-more"
|
||||
Provides-Extra: deprecated
|
||||
Requires-Dist: openctm; extra == "deprecated"
|
||||
Provides-Extra: all
|
||||
Requires-Dist: trimesh[deprecated,easy,recommend,test,test_more]; extra == "all"
|
||||
Dynamic: license-file
|
||||
|
||||
[](http://trimesh.org)
|
||||
|
||||
-----------
|
||||
[](https://github.com/mikedh/trimesh/actions) [](https://codecov.io/gh/mikedh/trimesh) [](https://hub.docker.com/r/trimesh/trimesh/tags) [](https://badge.fury.io/py/trimesh)
|
||||
|
||||
|
||||
Trimesh is a pure Python 3.8+ library for loading and using [triangular meshes](https://en.wikipedia.org/wiki/Triangle_mesh) with an emphasis on watertight surfaces. The goal of the library is to provide a full featured and well tested Trimesh object which allows for easy manipulation and analysis, in the style of the Polygon object in the [Shapely library](https://github.com/Toblerity/Shapely).
|
||||
|
||||
The API is mostly stable, but this should not be relied on and is not guaranteed: install a specific version if you plan on deploying something using trimesh.
|
||||
|
||||
Pull requests are appreciated and responded to promptly! If you'd like to contribute, here is an [up to date list of potential enhancements](https://github.com/mikedh/trimesh/issues/1557) although things not on that list are also welcome. Here's a quick [development and contributing guide.](https://trimesh.org/contributing.html)
|
||||
|
||||
|
||||
## Basic Installation
|
||||
|
||||
Keeping `trimesh` easy to install is a core goal, thus the *only* hard dependency is [numpy](http://www.numpy.org/). Installing other packages adds functionality but is not required. For the easiest install with just numpy, `pip` can generally install `trimesh` cleanly on Windows, Linux, and OSX:
|
||||
|
||||
```bash
|
||||
pip install trimesh
|
||||
```
|
||||
|
||||
The minimal install can load many supported formats (STL, PLY, GLTF/GLB) into numpy arrays. More functionality is available when soft dependencies are installed. This includes things like convex hulls (`scipy`), graph operations (`networkx`), faster ray queries (`embreex`), vector path handling (`shapely` and `rtree`), XML formats like 3DXML/XAML/3MF (`lxml`), preview windows (`pyglet`), faster cache checks (`xxhash`), etc. To install `trimesh` with the soft dependencies that generally install cleanly on Linux (x86_64), MacOS (ARM), and Windows (x86_64) using `pip`:
|
||||
```bash
|
||||
pip install trimesh[easy]
|
||||
```
|
||||
|
||||
If you are supporting a different platform or are freezing your dependencies we recommend you do not use the extras (i.e. depend on `trimesh scipy` versus `trimesh[easy]`.) Further information is available in the [advanced installation documentation](https://trimesh.org/install.html).
|
||||
|
||||
## Quick Start
|
||||
|
||||
Here is an example of loading a mesh from file and colorizing its faces. Here is a nicely formatted
|
||||
[ipython notebook version](https://trimesh.org/quick_start.html) of this example. Also check out the [cross section example](https://trimesh.org/section.html).
|
||||
|
||||
```python
|
||||
import numpy as np
|
||||
import trimesh
|
||||
|
||||
# attach to logger so trimesh messages will be printed to console
|
||||
trimesh.util.attach_to_log()
|
||||
|
||||
# mesh objects can be created from existing faces and vertex data
|
||||
mesh = trimesh.Trimesh(vertices=[[0, 0, 0], [0, 0, 1], [0, 1, 0]],
|
||||
faces=[[0, 1, 2]])
|
||||
|
||||
# by default, Trimesh will do a light processing, which will
|
||||
# remove any NaN values and merge vertices that share position
|
||||
# if you want to not do this on load, you can pass `process=False`
|
||||
mesh = trimesh.Trimesh(vertices=[[0, 0, 0], [0, 0, 1], [0, 1, 0]],
|
||||
faces=[[0, 1, 2]],
|
||||
process=False)
|
||||
|
||||
# some formats represent multiple meshes with multiple instances
|
||||
# the loader tries to return the datatype which makes the most sense
|
||||
# which will for scene-like files will return a `trimesh.Scene` object.
|
||||
# if you *always* want a straight `trimesh.Trimesh` you can ask the
|
||||
# loader to "force" the result into a mesh through concatenation
|
||||
mesh = trimesh.load('models/CesiumMilkTruck.glb', force='mesh')
|
||||
|
||||
# mesh objects can be loaded from a file name or from a buffer
|
||||
# you can pass any of the kwargs for the `Trimesh` constructor
|
||||
# to `trimesh.load`, including `process=False` if you would like
|
||||
# to preserve the original loaded data without merging vertices
|
||||
# STL files will be a soup of disconnected triangles without
|
||||
# merging vertices however and will not register as watertight
|
||||
mesh = trimesh.load('../models/featuretype.STL')
|
||||
|
||||
# is the current mesh watertight?
|
||||
mesh.is_watertight
|
||||
|
||||
# what's the euler number for the mesh?
|
||||
mesh.euler_number
|
||||
|
||||
# the convex hull is another Trimesh object that is available as a property
|
||||
# lets compare the volume of our mesh with the volume of its convex hull
|
||||
print(mesh.volume / mesh.convex_hull.volume)
|
||||
|
||||
# since the mesh is watertight, it means there is a
|
||||
# volumetric center of mass which we can set as the origin for our mesh
|
||||
mesh.vertices -= mesh.center_mass
|
||||
|
||||
# what's the moment of inertia for the mesh?
|
||||
mesh.moment_inertia
|
||||
|
||||
# if there are multiple bodies in the mesh we can split the mesh by
|
||||
# connected components of face adjacency
|
||||
# since this example mesh is a single watertight body we get a list of one mesh
|
||||
mesh.split()
|
||||
|
||||
# facets are groups of coplanar adjacent faces
|
||||
# set each facet to a random color
|
||||
# colors are 8 bit RGBA by default (n, 4) np.uint8
|
||||
for facet in mesh.facets:
|
||||
mesh.visual.face_colors[facet] = trimesh.visual.random_color()
|
||||
|
||||
# preview mesh in an opengl window if you installed pyglet and scipy with pip
|
||||
mesh.show()
|
||||
|
||||
# transform method can be passed a (4, 4) matrix and will cleanly apply the transform
|
||||
mesh.apply_transform(trimesh.transformations.random_rotation_matrix())
|
||||
|
||||
# axis aligned bounding box is available
|
||||
mesh.bounding_box.extents
|
||||
|
||||
# a minimum volume oriented bounding box also available
|
||||
# primitives are subclasses of Trimesh objects which automatically generate
|
||||
# faces and vertices from data stored in the 'primitive' attribute
|
||||
mesh.bounding_box_oriented.primitive.extents
|
||||
mesh.bounding_box_oriented.primitive.transform
|
||||
|
||||
# show the mesh appended with its oriented bounding box
|
||||
# the bounding box is a trimesh.primitives.Box object, which subclasses
|
||||
# Trimesh and lazily evaluates to fill in vertices and faces when requested
|
||||
# (press w in viewer to see triangles)
|
||||
(mesh + mesh.bounding_box_oriented).show()
|
||||
|
||||
# bounding spheres and bounding cylinders of meshes are also
|
||||
# available, and will be the minimum volume version of each
|
||||
# except in certain degenerate cases, where they will be no worse
|
||||
# than a least squares fit version of the primitive.
|
||||
print(mesh.bounding_box_oriented.volume,
|
||||
mesh.bounding_cylinder.volume,
|
||||
mesh.bounding_sphere.volume)
|
||||
|
||||
```
|
||||
|
||||
## Features
|
||||
|
||||
* Import meshes from binary/ASCII STL, Wavefront OBJ, ASCII OFF, binary/ASCII PLY, GLTF/GLB 2.0, 3MF, XAML, 3DXML, etc.
|
||||
* Import and export 2D or 3D vector paths from/to DXF or SVG files
|
||||
* Import geometry files using the GMSH SDK if installed (BREP, STEP, IGES, INP, BDF, etc)
|
||||
* Export meshes as binary STL, binary PLY, ASCII OFF, OBJ, GLTF/GLB 2.0, COLLADA, etc.
|
||||
* Export meshes using the GMSH SDK if installed (Abaqus INP, Nastran BDF, etc)
|
||||
* Preview meshes using pyglet or in- line in jupyter/marimo notebooks using three.js
|
||||
* Automatic hashing of numpy arrays for change tracking using MD5, zlib CRC, or xxhash
|
||||
* Internal caching of computed values validated from hashes
|
||||
* Calculate face adjacencies, face angles, vertex defects, etc.
|
||||
* Calculate cross sections, i.e. the slicing operation used in 3D printing
|
||||
* Slice meshes with one or multiple arbitrary planes and return the resulting surface
|
||||
* Split mesh based on face connectivity using networkx, graph-tool, or scipy.sparse
|
||||
* Calculate mass properties, including volume, center of mass, moment of inertia, principal components of inertia vectors and components
|
||||
* Repair simple problems with triangle winding, normals, and quad/tri holes
|
||||
* Convex hulls of meshes
|
||||
* Compute rotation/translation/tessellation invariant identifier and find duplicate meshes
|
||||
* Determine if a mesh is watertight, convex, etc.
|
||||
* Uniformly sample the surface of a mesh
|
||||
* Ray-mesh queries including location, triangle index, etc.
|
||||
* Boolean operations on meshes (intersection, union, difference) using Manifold3D or Blender Note that mesh booleans in general are usually slow and unreliable
|
||||
* Voxelize watertight meshes
|
||||
* Volume mesh generation (TETgen) using Gmsh SDK
|
||||
* Smooth watertight meshes using laplacian smoothing algorithms (Classic, Taubin, Humphrey)
|
||||
* Subdivide faces of a mesh
|
||||
* Approximate minimum volume oriented bounding boxes for meshes
|
||||
* Approximate minimum volume bounding spheres
|
||||
* Calculate nearest point on mesh surface and signed distance
|
||||
* Determine if a point lies inside or outside of a well constructed mesh using signed distance
|
||||
* Primitive objects (Box, Cylinder, Sphere, Extrusion) which are subclassed Trimesh objects and have all the same features (inertia, viewers, etc)
|
||||
* Simple scene graph and transform tree which can be rendered (pyglet window, three.js in a jupyter/marimo notebook, [pyrender](https://github.com/mmatl/pyrender)) or exported.
|
||||
* Many utility functions, like transforming points, unitizing vectors, aligning vectors, tracking numpy arrays for changes, grouping rows, etc.
|
||||
|
||||
|
||||
## Viewer
|
||||
|
||||
Trimesh includes an optional `pyglet` based viewer for debugging and inspecting. In the mesh view window, opened with `mesh.show()`, the following commands can be used:
|
||||
|
||||
* `mouse click + drag` rotates the view
|
||||
* `ctl + mouse click + drag` pans the view
|
||||
* `mouse wheel` zooms
|
||||
* `z` returns to the base view
|
||||
* `w` toggles wireframe mode
|
||||
* `c` toggles backface culling
|
||||
* `g` toggles an XY grid with Z set to lowest point
|
||||
* `a` toggles an XYZ-RGB axis marker between: off, at world frame, or at every frame and world, and at every frame
|
||||
* `f` toggles between fullscreen and windowed mode
|
||||
* `m` maximizes the window
|
||||
* `q` closes the window
|
||||
|
||||
If called from inside a `jupyter` or `marimo` notebook, `mesh.show()` displays an in-line preview using `three.js` to display the mesh or scene. For more complete rendering (PBR, better lighting, shaders, better off-screen support, etc) [pyrender](https://github.com/mmatl/pyrender) is designed to interoperate with `trimesh` objects.
|
||||
|
||||
## Projects Using Trimesh
|
||||
|
||||
You can check out the [Github network](https://github.com/mikedh/trimesh/network/dependents) for things using trimesh. A select few:
|
||||
- Nvidia's [kaolin](https://github.com/NVIDIAGameWorks/kaolin) for deep learning on 3D geometry.
|
||||
- [Cura](https://github.com/Ultimaker/Cura), a popular slicer for 3D printing.
|
||||
- Berkeley's [DexNet4](https://www.youtube.com/watch?v=GBiAxoWBNho&feature=emb_logo) and related [ambidextrous.ai](https://www.ambidextrous.ai/) work with robotic grasp planning and manipulation.
|
||||
- Kerfed's [Kerfed's Engine](https://kerfed.com/technology) for analyzing assembly geometry for manufacturing.
|
||||
- [MyMiniFactory's](https://www.myminifactory.com/) P2Slice for preparing models for 3D printing.
|
||||
- [pyrender](https://github.com/mmatl/pyrender) A library to render scenes from Python using nice looking PBR materials.
|
||||
- [urdfpy](https://github.com/mmatl/urdfpy) Load URDF robot descriptions in Python.
|
||||
- [moderngl-window](https://github.com/moderngl/moderngl-window) A helper to create GL contexts and load meshes.
|
||||
- [vedo](https://github.com/marcomusy/vedo) Visualize meshes interactively (see example [gallery](https://github.com/marcomusy/vedo/tree/master/examples/other/trimesh/)).
|
||||
- [FSLeyes](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSLeyes) View MRI images and brain data.
|
||||
|
||||
## Which Mesh Format Should I Use?
|
||||
|
||||
Quick recommendation: `GLB` or `PLY`. Every time you replace `OBJ` with `GLB` an angel gets its wings.
|
||||
|
||||
If you want things like by-index faces, instancing, colors, textures, etc, `GLB` is a terrific choice. GLTF/GLB is an [extremely well specified](https://github.com/KhronosGroup/glTF/tree/master/specification/2.0) modern format that is easy and fast to parse: it has a JSON header describing data in a binary blob. It has a simple hierarchical scene graph, a great looking modern physically based material system, support in [dozens-to-hundreds of libraries](https://github.com/KhronosGroup/glTF/issues/1058), and a [John Carmack endorsment](https://www.khronos.org/news/press/significant-gltf-momentum-for-efficient-transmission-of-3d-scenes-models). Note that GLTF is a large specification, and `trimesh` only supports a subset of features: loading basic geometry is supported, NOT supported are fancier things like animations, skeletons, etc.
|
||||
|
||||
In the wild, `STL` is perhaps the most common format. `STL` files are extremely simple: it is basically just a list of triangles. They are robust and are a good choice for basic geometry. Binary `PLY` files are a good step up, as they support indexed faces and colors.
|
||||
|
||||
Wavefront `OBJ` is also pretty common: unfortunately OBJ doesn't have a widely accepted specification so every importer and exporter implements things slightly differently, making it tough to support. It also allows unfortunate things like arbitrary sized polygons, has a face representation which is easy to mess up, references other files for materials and textures, arbitrarily interleaves data, and is slow to parse. Give `GLB` or `PLY` a try as an alternative!
|
||||
|
||||
## How can I cite this library?
|
||||
|
||||
A question that comes up pretty frequently is [how to cite the library.](https://github.com/mikedh/trimesh/issues?utf8=1&q=cite) A quick BibTex recommendation:
|
||||
```
|
||||
@software{trimesh,
|
||||
author = {{Dawson-Haggerty et al.}},
|
||||
title = {trimesh},
|
||||
url = {https://trimesh.org/},
|
||||
version = {3.2.0},
|
||||
date = {2019-12-8},
|
||||
}
|
||||
```
|
||||
|
||||
## Containers
|
||||
|
||||
If you want to deploy something in a container that uses trimesh automated `debian:slim-bullseye` based builds with trimesh and most dependencies are available on [Docker Hub](https://hub.docker.com/repository/docker/trimesh/trimesh) with image tags for `latest`, git short hash for the commit in `main` (i.e. `trimesh/trimesh:0c1298d`), and version (i.e. `trimesh/trimesh:3.5.27`):
|
||||
|
||||
`docker pull trimesh/trimesh`
|
||||
|
||||
[Here's an example](https://github.com/mikedh/trimesh/tree/main/examples/docker/render) of how to render meshes using LLVMpipe and XVFB inside a container.
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
../../../bin/trimesh,sha256=tKE6NjUc8qqZmcro2dtXqYeLgydCr7KCOJzv8cnnB6s,256
|
||||
trimesh-4.9.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
trimesh-4.9.0.dist-info/METADATA,sha256=sAdzvwJUAzphbx9uJi6u-7Ay9XyclrlmTBVQY_gyGmw,18758
|
||||
trimesh-4.9.0.dist-info/RECORD,,
|
||||
trimesh-4.9.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
trimesh-4.9.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
||||
trimesh-4.9.0.dist-info/entry_points.txt,sha256=E8JnT07gjUrdCQjuWPKNykjis4Aa2QWCFN6gVFWNNh0,50
|
||||
trimesh-4.9.0.dist-info/licenses/LICENSE.md,sha256=_ie174cQZ2zIUlXaKKMvOU4u8_TORwdaHHMqnqHXvQM,1090
|
||||
trimesh-4.9.0.dist-info/top_level.txt,sha256=bHXSeALt9l4__maYNLp93GRZSOJ5iApS2fe3jibIV1U,8
|
||||
trimesh/__init__.py,sha256=gqsMZ4ZnG3psDqHW_9qW-d9jMLcs-JCsT8TNzlAKa0s,2433
|
||||
trimesh/__main__.py,sha256=-GxWDnuZ5pZfo1jqc0euaWoJOJ5r2340EQYAbctp2_c,1447
|
||||
trimesh/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/__pycache__/__main__.cpython-311.pyc,,
|
||||
trimesh/__pycache__/base.cpython-311.pyc,,
|
||||
trimesh/__pycache__/boolean.cpython-311.pyc,,
|
||||
trimesh/__pycache__/bounds.cpython-311.pyc,,
|
||||
trimesh/__pycache__/caching.cpython-311.pyc,,
|
||||
trimesh/__pycache__/collision.cpython-311.pyc,,
|
||||
trimesh/__pycache__/comparison.cpython-311.pyc,,
|
||||
trimesh/__pycache__/constants.cpython-311.pyc,,
|
||||
trimesh/__pycache__/convex.cpython-311.pyc,,
|
||||
trimesh/__pycache__/creation.cpython-311.pyc,,
|
||||
trimesh/__pycache__/curvature.cpython-311.pyc,,
|
||||
trimesh/__pycache__/decomposition.cpython-311.pyc,,
|
||||
trimesh/__pycache__/exceptions.cpython-311.pyc,,
|
||||
trimesh/__pycache__/geometry.cpython-311.pyc,,
|
||||
trimesh/__pycache__/graph.cpython-311.pyc,,
|
||||
trimesh/__pycache__/grouping.cpython-311.pyc,,
|
||||
trimesh/__pycache__/inertia.cpython-311.pyc,,
|
||||
trimesh/__pycache__/intersections.cpython-311.pyc,,
|
||||
trimesh/__pycache__/interval.cpython-311.pyc,,
|
||||
trimesh/__pycache__/iteration.cpython-311.pyc,,
|
||||
trimesh/__pycache__/nsphere.cpython-311.pyc,,
|
||||
trimesh/__pycache__/parent.cpython-311.pyc,,
|
||||
trimesh/__pycache__/permutate.cpython-311.pyc,,
|
||||
trimesh/__pycache__/points.cpython-311.pyc,,
|
||||
trimesh/__pycache__/poses.cpython-311.pyc,,
|
||||
trimesh/__pycache__/primitives.cpython-311.pyc,,
|
||||
trimesh/__pycache__/proximity.cpython-311.pyc,,
|
||||
trimesh/__pycache__/registration.cpython-311.pyc,,
|
||||
trimesh/__pycache__/remesh.cpython-311.pyc,,
|
||||
trimesh/__pycache__/rendering.cpython-311.pyc,,
|
||||
trimesh/__pycache__/repair.cpython-311.pyc,,
|
||||
trimesh/__pycache__/resolvers.cpython-311.pyc,,
|
||||
trimesh/__pycache__/sample.cpython-311.pyc,,
|
||||
trimesh/__pycache__/schemas.cpython-311.pyc,,
|
||||
trimesh/__pycache__/smoothing.cpython-311.pyc,,
|
||||
trimesh/__pycache__/transformations.cpython-311.pyc,,
|
||||
trimesh/__pycache__/triangles.cpython-311.pyc,,
|
||||
trimesh/__pycache__/typed.cpython-311.pyc,,
|
||||
trimesh/__pycache__/units.cpython-311.pyc,,
|
||||
trimesh/__pycache__/util.cpython-311.pyc,,
|
||||
trimesh/__pycache__/version.cpython-311.pyc,,
|
||||
trimesh/base.py,sha256=EUgHguZa1LtBBFRW6FNDfsi7Ge8s3uU5pJn8S_JTBms,106508
|
||||
trimesh/boolean.py,sha256=p0zCS8_7td5LeZxP9cJmWfpuaHG7lySjcgQj2FnY0F8,5904
|
||||
trimesh/bounds.py,sha256=e6FJj3AhbGb6baXMyLJkHekdvZGFpjacTNeVrp1NZhk,20977
|
||||
trimesh/caching.py,sha256=r1HIwxvVCziPkvJ9cAxZyDtasvw9WZg8OvaBG3J-7xI,20121
|
||||
trimesh/collision.py,sha256=3GAnGG0tC7FxAAuKtWNT8smiEotnoz9OlOkmnW_hxYc,22582
|
||||
trimesh/comparison.py,sha256=mQM24IEeq6lFdarFRtGSWzcDnadgK2KUFFA_TAxUQUE,5233
|
||||
trimesh/constants.py,sha256=xJ1ln2A1outZwxiniEgY7eaKheZCsJGvn6S-ro36y3g,4937
|
||||
trimesh/convex.py,sha256=1qr1sBuWNWwnzlZGNn5Y6NBuAT8uXhz8OH67B5H3nxI,11475
|
||||
trimesh/creation.py,sha256=llrnQhqaITWbiw5F4mDWTzIKTKTCZRVgQbwqGYTfDoY,49097
|
||||
trimesh/curvature.py,sha256=NAmQRUsq-c2XmXD4AJBcUdBFEgbdz3rrz5YprkMcxqs,5639
|
||||
trimesh/decomposition.py,sha256=vxUb1HR3X34IJ8mZRjPCj7kk-MBXM_ti3HyjCgAzEIk,1503
|
||||
trimesh/exceptions.py,sha256=GzU9xHcbuTuMMw1_AmcgPaSB8Q7FmCUfKa3x1Xvxb3A,1464
|
||||
trimesh/exchange/__init__.py,sha256=mM-22o0bUVOJdj3EMUGdN3d1cvRI1JD_2TQs57jugIw,297
|
||||
trimesh/exchange/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/binvox.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/cascade.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/dae.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/export.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/gltf.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/load.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/misc.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/obj.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/off.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/ply.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/stl.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/threedxml.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/threemf.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/urdf.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/xaml.cpython-311.pyc,,
|
||||
trimesh/exchange/__pycache__/xyz.cpython-311.pyc,,
|
||||
trimesh/exchange/binvox.py,sha256=JSoa6LgEoPA56vt-S9BTqMXg-XHof9zFXuSHQSIVKtM,17629
|
||||
trimesh/exchange/cascade.py,sha256=3VTa4uP04gtXMtby5-0_-5PsLEVM-YxHRRwYnig1Ivw,2122
|
||||
trimesh/exchange/dae.py,sha256=jYDDo4NcjHrKlMFJYk8bTQ_L7CgAy074V8yIXOh8pFM,14910
|
||||
trimesh/exchange/export.py,sha256=9zgkbp05jsK-PLi4kVb6ldVG4tJWFgsf8_pN-zU0874,10460
|
||||
trimesh/exchange/gltf.py,sha256=qBMGIPrZfCIxcndf0_kRyoYXWdQHtV6u3Dp2QwykYIc,74044
|
||||
trimesh/exchange/load.py,sha256=VuxCB9Phr5bJZOJcyGCX9-VywF4ZRcA79aUoa0gXgzE,21236
|
||||
trimesh/exchange/misc.py,sha256=YM_eZh8jKbMlWMNUNfcQftpMob-vuG9OyJWoZ2Mk_Ok,4515
|
||||
trimesh/exchange/obj.py,sha256=FtW9QtGfjpPh4SMpdVeQsvUXGWQc58NjZKcT-vEdUU8,35621
|
||||
trimesh/exchange/off.py,sha256=JjUaWfQDzJyEpZdQ0FROCBvQtx-uxQ76iCZpknz749E,2764
|
||||
trimesh/exchange/ply.py,sha256=FR1ET8MzWYNUlPPekUwshQYVeIZgr4Olr2sBxYfnasw,37458
|
||||
trimesh/exchange/stl.py,sha256=1fJ6syQzOSzsKzK9qsK-dC4pimKOHIUtdo2Qu_F1Lgw,10151
|
||||
trimesh/exchange/threedxml.py,sha256=83pX2euRRoPcgpwR4kTMNmh4TbDT4Zxg2pzxvsXQ0Yc,15868
|
||||
trimesh/exchange/threemf.py,sha256=8J6A1hrnx54OViAhmHQDhajWZ-CaKySec5Wq2g5Qq9Q,18991
|
||||
trimesh/exchange/urdf.py,sha256=3Uz9TvL3k9e3mdOlZAF50EfAEcSqsjr_MG0inBScchw,5361
|
||||
trimesh/exchange/xaml.py,sha256=zsLTJ3nvjsXeLRfs2HV1fIy1ILOcslDB8sba4eOqmsg,5339
|
||||
trimesh/exchange/xyz.py,sha256=aiQqenP2jJnGIONYyZUL27DeBj0ZAzvf4BRQBA5BUXY,2961
|
||||
trimesh/geometry.py,sha256=XZfFFEBin5lp6_lsk9WwF5sfjoVPTIRvXzJiF1pI2bg,14393
|
||||
trimesh/graph.py,sha256=n3Q7QIuc0MQIU7IRniH1s7TxNsrT3edn47rwrDNw9XM,30671
|
||||
trimesh/grouping.py,sha256=jPCr0UilV2do69G9KsvPmaCJ0tc_axgH20FjqNQs3yA,26791
|
||||
trimesh/inertia.py,sha256=zsU1s6Bw19cY5zOmTGRs6S_6OM5T0faH4CtgtMBvmIw,10962
|
||||
trimesh/interfaces/__init__.py,sha256=17dhVVvYQG-0ynilMhw2HX1X8vTByVksjwASnNtwoN4,45
|
||||
trimesh/interfaces/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/interfaces/__pycache__/blender.cpython-311.pyc,,
|
||||
trimesh/interfaces/__pycache__/generic.cpython-311.pyc,,
|
||||
trimesh/interfaces/blender.py,sha256=6jMWjAjc54eq5hj6IFxvlvxMYn6sWtdpCmn_XfwoFCU,4704
|
||||
trimesh/interfaces/generic.py,sha256=Rhh3alOSGl6kZtBVvqQyg6mBtC1TW6-8eZF_R3OXK3k,3523
|
||||
trimesh/intersections.py,sha256=zbrAvNgmi-MTsxKxwP38aRGzGb0mCjIGbrfJgxT_csY,28549
|
||||
trimesh/interval.py,sha256=mi0Gny6nfzSZBVBQVSowIMhntlXj0FTdv4V5BAF4iuA,2746
|
||||
trimesh/iteration.py,sha256=XFogHL5FwCK19Hwv4YUg_g92vipoHUEVZuK1oCdvRJo,3551
|
||||
trimesh/nsphere.py,sha256=EzcMZ1i7c1_zEnd5vmuhrxNA4_diX8yWju1ronsh7bc,6028
|
||||
trimesh/parent.py,sha256=v_1S30ZK-JXelzS0xGthYr_QHUAHcq6B61BiitLFTaM,12024
|
||||
trimesh/path/__init__.py,sha256=Sfnb4j9VssDXhC45phbrFtcR5lw4k3MXQJg0UDz1y58,378
|
||||
trimesh/path/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/arc.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/creation.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/curve.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/entities.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/intersections.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/packing.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/path.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/polygons.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/raster.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/repair.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/segments.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/simplify.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/traversal.cpython-311.pyc,,
|
||||
trimesh/path/__pycache__/util.cpython-311.pyc,,
|
||||
trimesh/path/arc.py,sha256=xrDsJXEPVqSv518ZcLyu46qxsVCYu7TJoOq4pVg0-w8,8315
|
||||
trimesh/path/creation.py,sha256=bP5_piTXXdEWwlBod7tKXs-anAgVwsqanNR8JsoJE_c,8553
|
||||
trimesh/path/curve.py,sha256=ONBUGaFYzjyyPduOJC6HKca4KO38jOf1Fx3eKuxnGZc,3887
|
||||
trimesh/path/entities.py,sha256=hq60FbS-bKTlSRwpN7STbdAe3FetZt_CHaijgERxN8w,21896
|
||||
trimesh/path/exchange/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
trimesh/path/exchange/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/path/exchange/__pycache__/dxf.cpython-311.pyc,,
|
||||
trimesh/path/exchange/__pycache__/export.cpython-311.pyc,,
|
||||
trimesh/path/exchange/__pycache__/load.cpython-311.pyc,,
|
||||
trimesh/path/exchange/__pycache__/misc.cpython-311.pyc,,
|
||||
trimesh/path/exchange/__pycache__/svg_io.cpython-311.pyc,,
|
||||
trimesh/path/exchange/dxf.py,sha256=0_VFx8RZ786WewD4KHNMma8iIb8cT3o-1VtdqmiWS80,33130
|
||||
trimesh/path/exchange/export.py,sha256=i0hHHk87-xzJo-aftc7O6yp57zN6yppr-eGIh4-hT54,2004
|
||||
trimesh/path/exchange/load.py,sha256=Ob6X2on00zL3EfYKTwiYfovSiajChS9kJ95GqpoV_tw,2919
|
||||
trimesh/path/exchange/misc.py,sha256=K5BGEL5nlrje2FjI5CagEOR1GEAFxHGfxcPCYACpxIo,6559
|
||||
trimesh/path/exchange/svg_io.py,sha256=5DSxwxzgp5pjjf2McGXAtWevkwO_Igxr_DHkb0joVoM,26291
|
||||
trimesh/path/intersections.py,sha256=G5AGVQxKxmpgHO4JQg44D-Ldfg6IkxtgzEePee_WGC4,2238
|
||||
trimesh/path/packing.py,sha256=OoHw0twh4uN3dZDP30do1iutzzv3dtgh-mToVKDwDmw,26203
|
||||
trimesh/path/path.py,sha256=8-Ba9RGHh4wibGGwHXEpHeU6IQK58nJ67_Jnmrk1sJ4,47954
|
||||
trimesh/path/polygons.py,sha256=3M7-UbvfQsPzXvgPT0quH8ujsr_wLPrUaH4yNgVqsyk,31328
|
||||
trimesh/path/raster.py,sha256=ivo1Yx7_JSBD9a-gEsQ49a7Cb_Uf6Rv7caOGeXMm9-o,3200
|
||||
trimesh/path/repair.py,sha256=nxreZyvWvRB3v1LimbgNEAww-ZoNkr5A-CaklyBFrk8,3237
|
||||
trimesh/path/segments.py,sha256=avAOJqKLxpmycpr95NoIT3qKWLawkjQ6cbZrq7VwUbA,16350
|
||||
trimesh/path/simplify.py,sha256=zJfUxCRbCnsetjHsltp-bHr8SnhhSo2StK_AsIAXzSw,12553
|
||||
trimesh/path/traversal.py,sha256=9RzByoxSc0zw2QGL3u-f_r9R76iUQIPCQiI0lXh0Y54,16264
|
||||
trimesh/path/util.py,sha256=aoHsefWw6TFfNCfbjTNLJc4V5ePTL1JTziu2-3MPJwI,1767
|
||||
trimesh/permutate.py,sha256=oisg7IXbLH44ydS03pw51gdN-6-w7q6_uODQdjeMtUw,4506
|
||||
trimesh/points.py,sha256=Z2VGq26znWtpI8BvBJqvIL6QNHTtVn_iid5ybTcH7IU,21568
|
||||
trimesh/poses.py,sha256=L75slLjInJ740YA_Ecsle5u1JYpZ8eM-NWgCUD8zXZA,10267
|
||||
trimesh/primitives.py,sha256=z1BkdWsPXFADSHBuicNQKBMURI1Tna-7Nj1X7p24MeI,34062
|
||||
trimesh/proximity.py,sha256=w4qwZ5BHoKFwUlriiacNgHa81XUFXLf1U61FKkx__IQ,19118
|
||||
trimesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
trimesh/ray/__init__.py,sha256=5lNzMoKlQygP28tnIQgXNuoB9sjWdO92ZSdE44l_EI0,346
|
||||
trimesh/ray/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/ray/__pycache__/ray_pyembree.cpython-311.pyc,,
|
||||
trimesh/ray/__pycache__/ray_triangle.cpython-311.pyc,,
|
||||
trimesh/ray/__pycache__/ray_util.cpython-311.pyc,,
|
||||
trimesh/ray/ray_pyembree.py,sha256=t7BGV2jPqjGWShowflNpg9H9_A3iD9Ra6I4M4J1oSaU,11955
|
||||
trimesh/ray/ray_triangle.py,sha256=Dz5qOH7FXGKsmULoGZ3LpHDQ90P-y-M1-urNC4UjIQE,12741
|
||||
trimesh/ray/ray_util.py,sha256=BvzozaZ6in8ez0v4Fodsw-bkBsZwUPMeLi3znfz0mmY,4271
|
||||
trimesh/registration.py,sha256=QJN4AFN8APfNnVA7X20N6fzz83cmohiqxhMmH5iOcz4,41289
|
||||
trimesh/remesh.py,sha256=rl5cwR0M9NrZMFT5dikG9puz_eFx4UvsMxGoVfslJog,14728
|
||||
trimesh/rendering.py,sha256=gww6NqyK9tE5o4VKUcqStief6sOYLfgip9I-uCIgyuM,12296
|
||||
trimesh/repair.py,sha256=T81IQwhRPbbTTUV0jQsTYLIWZhx_KqV0gNG2SkyH6fY,15065
|
||||
trimesh/resolvers.py,sha256=gcec7wCNpYauyntQMclsypqqLAki_vkMNnP_Uo8-KJo,17218
|
||||
trimesh/resources/__init__.py,sha256=iKFtE_RbMiA0Eup-tga5KZavBjPogkeAKDVKbRUPg-M,2623
|
||||
trimesh/resources/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/resources/color_map.json.gzip,sha256=0Edta1aXREyLNZ_ZM-fv_eEAIzKa7dvr8TLYA-wDFzU,16762
|
||||
trimesh/resources/creation.json,sha256=i72dHuxNOk2gbnSjYhWGTEL-WzeWdWR1e3t_3iDP0Ys,1084
|
||||
trimesh/resources/schema/README.md,sha256=ZwcnLfRg6Qd1eRMm3Kt9S-oi2yYh2RZT8pllnbYe0J0,443
|
||||
trimesh/resources/schema/gltf2.schema.zip,sha256=y9Fpkpfke71DmIXJO2gH5X4_gws7LXBvw6lEiOswjKg,24785
|
||||
trimesh/resources/schema/primitive/box.schema.json,sha256=STE93MwWVDyIbBTltXkVTXh6RmcALWO3JKAPrW5BpGQ,814
|
||||
trimesh/resources/schema/primitive/capsule.schema.json,sha256=347KHrkcRoGmwbTRxmOTDOTNFuf0pGRlOwGMGxOAeJc,774
|
||||
trimesh/resources/schema/primitive/cylinder.schema.json,sha256=Qvc2GhCsFDPLLx0PpD_zZE3I09lAjRbK7ZMDvyY7S34,785
|
||||
trimesh/resources/schema/primitive/extrusion.schema.json,sha256=HtKJPxN8DYFXDzVocthjZazbyx94TZlumVu_eRSKm0U,688
|
||||
trimesh/resources/schema/primitive/primitive.schema.json,sha256=GlsChe96ci2ptVzAn4_VU52xrvNdBewq77qzQQVWtEg,479
|
||||
trimesh/resources/schema/primitive/scenegraph.schema.json,sha256=Gn8inknthqkoXDyWjtVZdgO0nvC6aqWP58ESttGPDAU,791
|
||||
trimesh/resources/schema/primitive/sphere.schema.json,sha256=VvCqHrhVMSSyTBowtjBnUkeh6SX-pAK66_t6XfMLLvk,522
|
||||
trimesh/resources/schema/primitive/transform.schema.json,sha256=y4UBFIkUQ56ZUHcezFKLLnr68-ZQbWRtAGPKQsxSAlw,469
|
||||
trimesh/resources/schema/primitive/trimesh.schema.json,sha256=ioYYpvcrxKQirkbyHxKxh2plBtRXaV9fQU0Oq3WYt8U,859
|
||||
trimesh/resources/schema/primitive/wkt.polygon.schema.json,sha256=Jer6wgmVPZfnWGpbL-2rnUjq_HDc4OjUtytrzfX1loE,377
|
||||
trimesh/resources/schema/urdf.xsd,sha256=qiA_TEiCkEc8JOL91auwwSpa8xPy49OF0eWAtn1BEkE,11705
|
||||
trimesh/resources/templates/base.svg,sha256=MYfPqEHyr5ik4RVyHhludqVaPFJ5Wxjd_Pd32XK6y8c,190
|
||||
trimesh/resources/templates/blender_boolean.py.tmpl,sha256=uJ8W5QN-Alq-sRpA7MaJ1Xm3BxiIsEWbsUmTlHRPwIg,2012
|
||||
trimesh/resources/templates/blender_unwrap.py.template,sha256=GJOEzRKEtskHwD9PfyvNdEgA3umFeKlURrS0m0kp1As,1147
|
||||
trimesh/resources/templates/dxf.json,sha256=E3CfXHa_S5NIyt3FPd4WhLBrhJCQqFSdq9LCUtmLxlo,15667
|
||||
trimesh/resources/templates/path.svg,sha256=JPEKKh2lPcwuM0JrOl6iCUIjci-yrlUqq8T-AWUYyX0,36
|
||||
trimesh/resources/templates/ply.json,sha256=MxeHS5AqDqw4eQb_frkAoywxpkJxjSdcHu9DyPXpNkA,559
|
||||
trimesh/resources/templates/viewer.zip,sha256=chvLtgz_KYjO3-VHWSmU3tdAo0W6QJDhft3jgZMHScU,173435
|
||||
trimesh/resources/units_to_inches.json,sha256=vE68-GZL-EdUsDdFaSSBfyeqS8VwsSaWKL9W0TMXUaU,1261
|
||||
trimesh/sample.py,sha256=1ugaczSxzuu3_UrdUXBLBjGkFby2JhZdhPUrQTMeR60,7651
|
||||
trimesh/scene/__init__.py,sha256=vLW7-tLswsCiiANiRFeZ8LZpCyiEbeBXw9ZzDC64bTg,141
|
||||
trimesh/scene/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/scene/__pycache__/cameras.cpython-311.pyc,,
|
||||
trimesh/scene/__pycache__/lighting.cpython-311.pyc,,
|
||||
trimesh/scene/__pycache__/scene.cpython-311.pyc,,
|
||||
trimesh/scene/__pycache__/transforms.cpython-311.pyc,,
|
||||
trimesh/scene/cameras.py,sha256=NpkKA6lc5feW8RvO6QvdEjro3ZZ3ScVNx-lsOeaCmi0,12166
|
||||
trimesh/scene/lighting.py,sha256=DjSvP08q2HMlZtxwO7MMJDORcW_J0QBxLFqbwsMbCnw,8736
|
||||
trimesh/scene/scene.py,sha256=rW4dCE3YZuFcWUzstknVf5DSjd1QpFpvXW6D75S9Lcc,54443
|
||||
trimesh/scene/transforms.py,sha256=oocyg0B7_X3Vu-PkH7oX7YEkn8HhtAc2BaBTUvkqk7s,27970
|
||||
trimesh/schemas.py,sha256=EKTwX16mVeQ5IPRQhXCoiDIIet_9DaYVNKnUx0MoMKo,1287
|
||||
trimesh/smoothing.py,sha256=p8Z4xKGl5nJW4sMFemc3qUZaxhzTFIBRGcxfjwCMhJM,12211
|
||||
trimesh/transformations.py,sha256=7RqrL88Uj9H-uZt_vOAXvSI-KdVR6Ci2VU3EHaUd0X0,74740
|
||||
trimesh/triangles.py,sha256=Np9NqpTO6CfoPOW-m86m4n1QLtyDF3HMJ0t5IkkrM0Y,22050
|
||||
trimesh/typed.py,sha256=egOvVRIU8NsiHXj0f0pFRuSKucS4fCG_Aw_Hhb7_Q64,2733
|
||||
trimesh/units.py,sha256=xwNz3uY3iwg-JPASrzAxs2Xv-LA8znPzjRCPZhs4Y2w,4600
|
||||
trimesh/util.py,sha256=cUuWfn5xYAxoIhliU3siPhcmJeMlEQNZP5EY0scu0fI,69551
|
||||
trimesh/version.py,sha256=iynR6kNp38O21qUq5c6xpLMbbYNhc2WfesdtT-Oq8Kk,1618
|
||||
trimesh/viewer/__init__.py,sha256=r44AIUtVX22NixYyIKwXA_wEoGRItByzTDfhc_EGqFk,861
|
||||
trimesh/viewer/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/viewer/__pycache__/notebook.cpython-311.pyc,,
|
||||
trimesh/viewer/__pycache__/trackball.cpython-311.pyc,,
|
||||
trimesh/viewer/__pycache__/widget.cpython-311.pyc,,
|
||||
trimesh/viewer/__pycache__/windowed.cpython-311.pyc,,
|
||||
trimesh/viewer/notebook.py,sha256=yQieeH6aP0T2VrfxhZXUxJfZwmR8PThTJWaY43KU-Xk,4652
|
||||
trimesh/viewer/trackball.py,sha256=Ac223FA8TuI5NqtylRjsbwIrKOvohy5k2m3FyFSOXW4,8233
|
||||
trimesh/viewer/widget.py,sha256=h7wkc_-P2XrTZdGjvMY4F3gl8tlKCZAoBNzFfIMRlNk,9561
|
||||
trimesh/viewer/windowed.py,sha256=U2ACdVSU37QKlN_LmHV6Hi3THnmj1IYWI-MQHUVHv3M,31760
|
||||
trimesh/visual/__init__.py,sha256=dGTdTpHWt66Rt7IvzqQivdlWNgH-ofHUD9iTfRm78_E,828
|
||||
trimesh/visual/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/visual/__pycache__/base.cpython-311.pyc,,
|
||||
trimesh/visual/__pycache__/color.cpython-311.pyc,,
|
||||
trimesh/visual/__pycache__/gloss.cpython-311.pyc,,
|
||||
trimesh/visual/__pycache__/material.cpython-311.pyc,,
|
||||
trimesh/visual/__pycache__/objects.cpython-311.pyc,,
|
||||
trimesh/visual/__pycache__/texture.cpython-311.pyc,,
|
||||
trimesh/visual/base.py,sha256=rLBIbRocEqx_NNgh-YK1Hgd5tY1V5PIEOTLKrd4Bajk,1014
|
||||
trimesh/visual/color.py,sha256=oNLuQE54_2mLGgth9l_PMwex0gGDuPJcsAcQBt1XmEk,36450
|
||||
trimesh/visual/gloss.py,sha256=zHJ72dZ1qH8-W28odZ3oFQ_Yw-J2uJerjaoan0OEr6s,14601
|
||||
trimesh/visual/material.py,sha256=fQQ9WAtNeHPlwALKVQ28b4OY73mILZFX1TR-nX9wK4w,36111
|
||||
trimesh/visual/objects.py,sha256=zqoB_BEBoMM06_8IlcEZmJCudN7-I6oIYelO2fXZNzs,2554
|
||||
trimesh/visual/texture.py,sha256=SiNtJFo_nW3YohFwDqTo14tkT6vx_BK5u5ZyF3BwnFU,10677
|
||||
trimesh/voxel/__init__.py,sha256=cRHtVx79ffVWI7GDV9YURMYzuRYqgcGQ4MKBXTFiLjk,88
|
||||
trimesh/voxel/__pycache__/__init__.cpython-311.pyc,,
|
||||
trimesh/voxel/__pycache__/base.cpython-311.pyc,,
|
||||
trimesh/voxel/__pycache__/creation.cpython-311.pyc,,
|
||||
trimesh/voxel/__pycache__/encoding.cpython-311.pyc,,
|
||||
trimesh/voxel/__pycache__/morphology.cpython-311.pyc,,
|
||||
trimesh/voxel/__pycache__/ops.cpython-311.pyc,,
|
||||
trimesh/voxel/__pycache__/runlength.cpython-311.pyc,,
|
||||
trimesh/voxel/__pycache__/transforms.cpython-311.pyc,,
|
||||
trimesh/voxel/base.py,sha256=XXvxPQ9bFEsCfyQobpiXfg1omJoMdprGfPRSo6VOW0s,12663
|
||||
trimesh/voxel/creation.py,sha256=TB8FMWdnaWN4VDJtaJKGNXHLQuiT7qvUhPWV-GJFuh8,9687
|
||||
trimesh/voxel/encoding.py,sha256=6pvX8fAHmWtKC6HyHdEOoxLkJqIXmL3qjDnHb2Dm4Is,27740
|
||||
trimesh/voxel/morphology.py,sha256=Pv1uqH3NVfGi1oUtt8alywmiAsqVOBGJDlvYpS5qj20,5455
|
||||
trimesh/voxel/ops.py,sha256=f_EpMe_68Bg25PH3cToKwXQv_zpdjmfa8riYweQAyQI,13645
|
||||
trimesh/voxel/runlength.py,sha256=AH3UJnjtQQrPt81u2kqfxHcXxlh9uAzqUzDvFSiCw5U,20297
|
||||
trimesh/voxel/transforms.py,sha256=1e80QD3343LuTwyqANPTuS-ZZiAaiCCayU03byt2p9U,5291
|
||||
@@ -0,0 +1,5 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: setuptools (80.9.0)
|
||||
Root-Is-Purelib: true
|
||||
Tag: py3-none-any
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
[console_scripts]
|
||||
trimesh = trimesh:__main__.main
|
||||
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2023 Michael Dawson-Haggerty
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1 @@
|
||||
trimesh
|
||||
Reference in New Issue
Block a user