Skip to content

Image::Buffer*: Interface & naming #211

@Lestropie

Description

@Lestropie

Thijs is yelling in my ear and won't let me go home until I write this up...

So he ran into a few understanding hiccups on figuring out MRtrix3's image access classes, and got me wondering about whether things could be improved a little bit. Let's enumerate these for the sake of responses:

  1. Naming of Image::Buffer; I'm not a big fan of having Image::Buffer then Image::Buffer*, as it appears as though the former is a base class of the latter, which isn't the case; it's a different mechanism for providing access to image data. Maybe Image::Buffer should in fact be Image::BufferDisk; that way it's explicit both that it provides access to image files, and that it lives alongside e.g. BufferScratch rather than above/below?
  2. Naming of Image::Buffer (again): a 'buffer' could be thought of as a block of data; in our case, image intensities. But our Image::Buffer* also contains header information. So maybe these should instead be called Image::Image*?
  3. I'm sure I've discussed this before: Having a single class that is not templated, but will operate on any type of underlying Image::Buffer* and any data type. I still don't see any way to make it possible (at least not without an absurd amount of code branching), but he's pleading.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions