InsightSoftwareConsortium / InsightSoftwareConsortium/ITK

Name of FastMarching 'Base' filters

Open
#3,757 0 comments 0 reactions 0 assignees View on GitHub
type:Style
Dominant language
C++
Stars
1.7k
Forks
748
Avg merge
1d 1h
Merged PRs (30d)
64

Description

### Description

I am not sure if this is the right place to ask this, but here it is anyway. Why is [itkFastMarchingImageFilterBase](https://github.com/InsightSoftwareConsortium/ITK/blob/87a66198e11920eeb04db1d6125a37e83cf4ebf6/Modules/Filtering/FastMarching/include/itkFastMarchingImageFilterBase.h) named such? When I read 'itk...**Base**.h' I assume that it is (maybe) an abstract class from which `itkFastMarchingFilter` is derived, but surprisingly neither of these two assumptions are true! Am I the only one who finds this confusing?

The Fast marching module essentially implements the Fast Marching algorithm. There are 2 different implementations of the algorithm in the module. First one (lets call this one 'regular') is implemented in classes `itkFastMarchingImageFilter` etc. and the second more generalizable implementation (lets call it 'base') in classes `itkFastMarchingBase` and its subclasses. The 'base' implementation essentially implements the same algorithms expect that it works with generic 'nodes' instead of just voxels of images. As a consequence, we have an `itkFastMarchingImageFilterBase` and an `itkFastMarchingQuadMeshFilterBase` and others which are sub-classes of the more generic 'base' version. The 'regular' classes on the other hand are subclass of `ImageToImageFilter`, so only work for images.
What is not clear to me is the reason for naming the generic implementation 'base'.
### Expected coding style

I propose to rename all the fast marching 'Base' classes to something more appropriate. Perhaps something like 'itkFastMarchingImageDomainFilter' , ...QuadMeshDomainFilter.., etc. unless I am missing something here.

### Versions

5.2.1

edit: expanded description

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.