Hi,
our intention was to hide the StatusInfo class from python, but this made it impossible to mark vertices as locked.
I added a way to specify locked vertices like this:
mesh = om.read_trimesh("bunny.stl")
for vh in mesh.vertices():
if mesh.point(vh)[2] > 0:
mesh.set_vertex_property("locked", vh, True)
decimater = om.TriMeshDecimater(mesh)
mod = om.TriMeshModQuadricHandle()
decimater.add(mod)
decimater.initialize()
decimater.decimate(10000, locked_vertex_propname="locked")
mesh.garbage_collection()
om.write_mesh("decimated_bunny.ply", mesh)
Best regards,
Alex
From: Jesse Vander Does <jvanderdoes@gmail.com>
Sent: Thursday, October 31, 2019 4:59:51 PM
To: Dielen, Alexander Michael
Cc: openmesh@lists.rwth-aachen.de
Subject: Re: [OpenMesh] Python - Bulk Add PointsWow, thank you! That worked great. Those methods have made it really easy to move between OpenMesh and TriMesh (https://trimsh.org/) which provides more import options and a scene graph. Combining these two libraries really makes for a very powerful python API.
My goal is to use OpenMesh for decimation. The next thing I bumped into was that the python API appears to have removed the ability to "lock" vertices. Do you know if there is a new way of doing so or why that functionality was removed?
Best regards,Jesse
On Thu, Oct 31, 2019 at 5:15 AM Dielen, Alexander Michael <alexander.dielen@rwth-aachen.de> wrote:
Hi,
I added the functions Isaak mentioned earlier. If you build from source, there are now three ways to add vertices and faces to a mesh using numpy arrays:
1. Using the mesh constructor as described by Isaak: mesh = om.TriMesh(points, face_vertex_indices). Here points is an array of vertex coordinates with shape (n, 3) and face_vertex_indices is an array of vertex indices with shape (m, 3) where each row defines a triangle.
2. By passing an array of vertex coordinates to mesh.add_vertices() or by passing an array of face_vertex_indices to mesh.add_faces().
3. By first calling mesh.resize_points(n) and then directly modifying the array returned by mesh.points().
Best regards,Alex
On 30. Oct 2019, at 18:15, Jesse Vander Does <jvanderdoes@gmail.com> wrote:
_______________________________________________Hello OpenMesh,
I would like to be able to quickly copy a numpy array of vertices and faces into a TriMesh. After some digging I found this task https://www.graphics.rwth-aachen.de:9000/OpenMesh/openmesh-python/issues/18 which suggests assigning multiple points by doing `m.points()[:] = p`. I can't, however, figure out how to resize the points array without using `add_point` or `new_vertex`.
Any help would be much appreciated.
As an aside, it would be great to be able to post and comment on issues. Is there a reason the project is managed such that gitlab project is readonly?
Best regards,--
Jesse Vander Does
424-465-0285 | jvanderdoes@gmail.com
OpenMesh mailing list -- openmesh@lists.rwth-aachen.de
To unsubscribe send an email to openmesh-leave@lists.rwth-aachen.de
https://lists.rwth-aachen.de/postorius/lists/openmesh.lists.rwth-aachen.de
--
Jesse Vander Does
424-465-0285 | jvanderdoes@gmail.com