4#include <initializer_list>
7#include <iolink/IOLinkAPI.h>
60 explicit ImageType(std::initializer_list<ImageDimension> dimensionsList);
165 return ImageType(dimensionFlag(lhs) | dimensionFlag(rhs));
A flag system that describes the dimensions of an image.
Definition: ImageType.h:40
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.
friend ImageType operator|(ImageDimension lhs, ImageDimension rhs)
Binary Operator to combine two dimensions.
Definition: ImageType.h:163
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.
friend ImageType operator|(ImageDimension lhs, ImageType rhs)
Binary Operator to combine a dimension with an ImageType.
Definition: ImageType.h:174
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:203
static const ImageType VOLUME
Represents a 3D image (COLUMN, ROW, SLICE)
Definition: ImageType.h:211
static const ImageType MULTISPECTRAL_VOLUME_SEQUENCE
Represents a 5D temporal volume (COLUMN, ROW, SLICE, CHANNEL, SEQUENCE)
Definition: ImageType.h:230
static const ImageType VOLUME_SEQUENCE
Represents a 4D temporal volume (COLUMN, ROW, SLICE, SEQUENCE)
Definition: ImageType.h:223
static const ImageType MULTISPECTRAL_IMAGE_SEQUENCE
Represents a 4D temporal volume (COLUMN, ROW, CHANNEL, SEQUENCE)
Definition: ImageType.h:226
static const ImageType IMAGE_SEQUENCE
Represents a 3D temporal image (COLUMN, ROW, SEQUENCE)
Definition: ImageType.h:220
static const ImageType MULTISPECTRAL_VOLUME
Represents a 4D multi-spectral volume (COLUMN, ROW, SLICE, CHANNEL)
Definition: ImageType.h:217
static const ImageType IMAGE
Represents a 2D image (COLUMN, ROW)
Definition: ImageType.h:208
static const ImageType UNKNOWN
When ImageType is not known or defined.
Definition: ImageType.h:206
static const ImageType MULTISPECTRAL_IMAGE
Represents a 3D multi-spectral image (COLUMN, ROW, CHANNEL)
Definition: ImageType.h:214
All IOLink symbols are enclosed in this namespace.
Definition: ArrayX.h:8
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