Ok. Read pcl-git (see docs/3rdParty.tmp/pcl-git) and find me the implementation of this (https://pointclouds.org/documentation/classpcl_1_1_organized_fast_mesh.html) ofm algo in there. Tell me what language it's written in, and what input format it expects, and look at this pcloud stim producer pipeline relative to it. I want to set up a way for the livox lidar here to dump its points out to a file in the format expected by the PCL impl of that ofm algo.

Then I want to extract that algo and test it on the captured lidar data by having it output a mesh from the data it gets.

The way that the dump should work is that it should produce one file per produced pcloud simultaneity frame. So for this current codebase, that would basically mean dumping out the contents of the collation buffer each production cycle, into a new file whose name is timestamped and formatted as <deviceSelector>-<+%Y-m-d--%T>.<ext_of_the_pcloud_file_format_that_the_pcl_ofm_impl_expects_as_input>.

Then you'll write a standalone program that can take the name of an input pcloud file as an arg, and then convert it into an output triangle mesh file with the same name format, except that the file extension is whatever is used by the output format that this libpcl ofm algo uses.

I can reduce the produceFrameReq rate if I wish (see CONFIG_STIMBUFF_FRAME_PERIOD_MS) so if the algo moves too slow for the production rate, that can be fixed easily so don't worry about that side of things.

Make sure to put all of the code that will be linked into the smo binary into its own .h/cpp files and only invoke methods from that code in the smo code.
For enabling/disabling dumping, add an stim-buff-api param on livoxGen1 (DAPS param)  called "pcloud-dump-dir=<folder-name-relative-to-cwd>". The PcloudStimProducer should create-if-not-exists that dir before running, if that param is supplied. Supplying that arg is itself the flag to enable dumping.
The program that runs on the pcloud dump files should profile how long it took to convert the input points into a mesh surface.

Add profiling to the sandalone binary that does the meshing, and allow it to process multiple files at once via multiple filenames passed as args. So it can print profiling info about each conversion and averages too.
