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 Points
 
Wow, 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