Search code examples
meshlab

How to use conditional select faces in MeshLab filter script?


I want to delete faces selected with the filter conditional face selection. (e.g. y0 > 1.0)
It is easy do that on MeshLab GUI. ([Filters]-[Selection]-[Conditional Face Selection], and [Filters]-[Selection]-[Delete Selected Faces])
But, conditional face selection is not displayed on current filter script.

How to use conditional select faces in MeshLab filter script?
Or, Can I specify parameters for Delete Selected Faces?

Thanks,


Solution

  • I have tried on my machine to create that script and apparently it is working...

    it works

    Yeah, it was working and I even could save the script as delete_y0_1.mlx

    <!DOCTYPE FilterScript>
    <FilterScript>
     <filter name="Conditional Face Selection">
      <Param name="condSelect" value="(y0 > 1)" description="boolean function" type="RichString"/>
     </filter>
     <filter name="Delete Selected Faces"/>
    </FilterScript>
    

    And I could re-apply the filter using a command like this:

    meshlabserver -i gargoyle.ply -o output.ply -s delete_y0_1.mlx
    

    enter image description here

    But then.... I tried again and got the same unexpected behavior that you... one filter is lost.

    enter image description here

    So... congratulations you have found a bug in meshlab and should report it in meshlab bugtracker.

    Meanwhile... you can save the delete_y0_1.mlx script in this page and edit it to change the condition to apply.

    Edit: This bug has been solved on current version of meshlab (dec 13th, 2019)