4#include <initializer_list>
7#include <iolink/IOLinkAPI.h>
63 explicit ImageType(std::initializer_list<ImageDimension> dimensionsList);
189using AxesInterpretation = ImageType;
A flag system that describes the dimensions of an image.
Definition ImageType.h:43
ImageType(const ImageDimension *dimensionsList, size_t count)
Create an ImageType with a list of dimensions (C array style)
ImageType()
Create an ImageType with no known dimensions.
ImageDimension dimension(size_t index) const
Return the nth dimension at the given position.
size_t dimensionCount() const
Give the number of dimensions in the ImageType.
void add(ImageType other)
Add all the dimensions from given ImageType to current ImageType.
std::string toString() const
Return string interpretation.
ImageType(uint64_t val)
Create an ImageType from an 64-bits integer.
void remove(size_t index)
Remove the nth dimension to the ImageType.
void remove(ImageDimension dimension)
Remove the given dimension to the ImageType.
bool has(ImageDimension dimension) const
Checks if the ImageType has the given dimension.
uint64_t value() const
Return internal 64-bit integer value.
bool operator==(ImageType other) const
Equality operator.
ImageType(std::initializer_list< ImageDimension > dimensionsList)
Create an ImageType with a list of dimensions.
bool operator!=(ImageType other) const
Not-Equality operator.
size_t indexDimension(ImageDimension dimension)
Return the position of given dimension in the current ImageType.
void add(ImageDimension dimension)
Add the given dimension to the ImageType.
ImageType(ImageDimension dimension)
Create an ImageType with only one given dimension.
ImageType operator|(ImageDimension rhs) const
Equivalent to add.
void remove(ImageType other)
Remove all the given dimensions to the ImageType.
Enum for the image type (see ImageType)
Definition ImageType.h:214
static const ImageType VOLUME
Represents a 3D image (COLUMN, ROW, SLICE)
Definition ImageType.h:222
static const ImageType MULTISPECTRAL_VOLUME_SEQUENCE
Represents a 5D temporal volume (COLUMN, ROW, SLICE, CHANNEL, SEQUENCE)
Definition ImageType.h:241
static const ImageType VOLUME_SEQUENCE
Represents a 4D temporal volume (COLUMN, ROW, SLICE, SEQUENCE)
Definition ImageType.h:234
static const ImageType MULTISPECTRAL_IMAGE_SEQUENCE
Represents a 4D temporal volume (COLUMN, ROW, CHANNEL, SEQUENCE)
Definition ImageType.h:237
static const ImageType IMAGE_SEQUENCE
Represents a 3D temporal image (COLUMN, ROW, SEQUENCE)
Definition ImageType.h:231
static const ImageType MULTISPECTRAL_VOLUME
Represents a 4D multi-spectral volume (COLUMN, ROW, SLICE, CHANNEL)
Definition ImageType.h:228
static const ImageType IMAGE
Represents a 2D image (COLUMN, ROW)
Definition ImageType.h:219
static const ImageType UNKNOWN
When ImageType is not known or defined.
Definition ImageType.h:217
static const ImageType MULTISPECTRAL_IMAGE
Represents a 3D multi-spectral image (COLUMN, ROW, CHANNEL)
Definition ImageType.h:225
All IOLink symbols are enclosed in this namespace.
Definition ArrayX.h:8
ImageType operator|(ImageDimension lhs, ImageDimension rhs)
Binary Operator to combine two dimensions.
Definition ImageType.h:183
ImageDimension
Enum used in ImageType to represent each dimension of an Image.
Definition ImageType.h:16
@ SLICE
represents depth for a volumetric image
@ SEQUENCE
represents the temporality for a sequence of images
@ ROW
represents a image height
@ COLUMN
represents a image width
@ CHANNEL
represents channel planes of a multi-spectral image