The WOF Point Cloud Mesher is a fast surface reconstruction and 3D meshing software: It consists of an executable for getting started quickly. Moreover you can use WOF as a C++ library for Windows and Linux programming and its basic functionality is:
- 3D Point Cloud to Triangle Mesh
- Triangle Mesh to Quality Point Cloud
- Triangle Mesh to Triangle Mesh
The C++ API is documented here. But let’s start to play with the executable:
3D Points to Triangle Mesh
The WOF mesher takes 3D points as input and it constructs a triangle mesh. For this purpose it estimates the density of the point cloud. But alternatively the user can also specify the density like in the below example commands:
stibbons@hex:~$ wof.exe –reconstruct cloud.bin -o mesh.list -a 1.1
stibbons@hex:~$ wof.exe –reconstruct cloud.bin -o mesh.list -b 100
stibbons@hex:~$ wof.exe –reconstruct cloud.ply -o mesh.ply -f 3.0
stibbons@hex:~$ wof.exe –reconstruct cloud.xyz -o mesh.stl
- The first line assumes that the user has knowledge about the clouds’ density. Therefore he specifies the spacing distance manually using “-a 1.1”.
- In the second line the user tells WOF to assume a resolution of 100, i.e., the bounding box of the point cloud has a side length of at most 100 points.
- The third command line tells WOF to estimate the input density automatically: But afterwards WOF shall multiply the determined value by factor 3.0 (“-f 3.0”) to account for non-uniform density i.e., to avoid holes OR to create a less complex mesh.
- The fourth command line does not specify -a, -b or -f. In this case WOF assumes -f 2.0 which is a reasonable factor to account for a non-homogeneous input density.
Supported point file formats are .xyz which is a simple ASCII format with 3 coordinates per line, .ply in ASCII and binary form and .bin which is a raw binary format. Moreover, triangle meshes can be .ply files or ASCII-.stl (no binary .stl yet) and WOF can write .list files for the Geomview viewer.
Triangle Mesh to Quality Point Cloud
This is the opposite computation: A triangle mesh exists and you create a quality point cloud that respects significant edges of the geometry.
stibbons@hex:~$ wof.exe -t Music_Art.stl -o cloud.ply -a .2
stibbons@hex:~$ wof.exe -t Music_Art.stl -o cloud.ply -b 200
The first above command uses the spacing distance “-a 0.2” while the second one specifies the resolution “-b 200”: WOF creates 432.673 points with “-a 0.2”. In contrast, when you choose half the distance (“-a 0.1”) then 4 times more points fit onto the surface (1.74 mio) and with a quarter (“-a 0.05”) you would get 16 times more (6.97 mio) points. Consequently you must choose the spacing distance carefully to avoid huge outputs!
Use the WOF executable for getting started quickly and keep in mind that anything you can do with the executable is also possible with the C++ library.