• Alexis SALZMAN's avatar
    [xFastMarching] File dispatching and API change · 362685b2
    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