-
Alexis SALZMAN authored
The parallel and sequential version have been merged in one single folder. The old xDistFM folder is not present anymore and the trick in FindxFastMarching.cmake had disappear. To hold both version and avoid code duplication sources have been dispatched in several files. The use of a new namespace call internal give a way to clarify what user should include and what he should not include (TODO to protect from inclusion by macro). FM.h and FMDist.h correspond to the API available for users (i.e. fmeik and fmeikDist functions declaration). Note that fmeik and fmeikDist run over one process do not behave the same way (the // version work by stride even with one process). This is why both exist for now. Maybe in future this may be merged. FMinternal.h and FMDistInternal.h store the internal counterpart of fmeik and fmeikDist where fast marching is proceed. FMUpdater.h and FMUpdaterDist.h store internal helping class that help updating vertex values. FMUtil.h store internal computation tool available for all versions (// or seq). It gives also a definition of transport concept. FMDataExchanger.h is dedicated to // version. It give exchanging tool for in between processes communication. In this commit the fmeik and fmeikDist API has been modified to make those functions entitystorage independent. Now a template parameter call DATAMANAGER is given by user to store information at node. It force now user to call fmeik/Dist with appropriate type for first template parameter (no argument deduction available anymore). This done, in future commit, it will be possible to use something else then entitystorage to work with FM. entitystorage class is now in the FMEntityStorage.h file and user has to include this file to use like before the FM algo. Due to API change and namspace addition the old FM.h has been copied in Skeleton with a new name (FM_seq.h). It is now this file which is included by FMSK_fastmarching.h. Originally this Skeleton folder was independent. Unfortunately it looks to be dependent of src folder content now. I am not sure that copying FM.h will be sufficient. I let this integration (or return to original separate context) works to others ... TLSFastMarchingTools file are using new API with entitystorage as template parameter type (via a using) Checked by N.C.
362685b2