5#include <iolink/DataType.h>
6#include <iolink/FlagSet.h>
7#include <iolink/IOLinkAPI.h>
8#include <iolink/Indexer.h>
9#include <iolink/RegionX.h>
10#include <iolink/VectorX.h>
11#include <iolink/metadata/MetadataNode.h>
12#include <iolink/property/ImageProperties.h>
13#include <iolink/view/ParallelAccessExtension.h>
14#include <iolink/view/TilingInfoExtension.h>
15#include <iolink/view/View.h>
35extern template class IOLINK_API_IMPORT FlagSet<ImageCapability>;
111 virtual std::shared_ptr<const ImageProperties>
properties() = 0;
129 virtual std::shared_ptr<const MetadataNode>
metadata()
const;
232 virtual void setProperties(std::shared_ptr<const ImageProperties> properties);
Stores information about a data type.
Definition: DataType.h:162
Template class to handle a flags system from an enum.
Definition: FlagSet.h:43
A flag system that describes the dimensions of an image.
Definition: ImageType.h:40
Interface representing an N dimensional image.
Definition: ImageView.h:70
std::string spatialUnit()
Shortcut to access the spatial unit from image properties.
size_t dimensionCount()
Returns the dimension of the View.
Definition: ImageView.h:78
Vector3d spatialOrigin()
Shortcut to access spatial origin from image properties.
std::shared_ptr< TilingInfoExtension > tilingInfo()
Shortcut to retrieve TilingInfo extension.
virtual void read(const VectorXu64 &index, void *dst)
Read the data at the given index into a buffer.
Vector3d spatialSpacing()
Shortcut to access spatial spacing from image properties.
virtual ImageCapabilitySet capabilities() const =0
Return the capabilities of this image.
virtual DataType dataType()=0
Return the data type of the samples of this image.
virtual void writeRegion(const RegionXu64 ®ion, const void *src)
Write a input buffer into a given region of the image.
size_t bitDepth()
Shortcut to access the sample bitdepth from image properties.
ImageType axesInterpretation()
Shortcut to access axes interpretation from image properties.
Vector2d valueRange()
Shortcut to access the sample value range from image properties.
bool hasAlpha()
Shortcut to access hasAlpha status from image properties.
virtual const void * bufferReadOnly() const
Return an immutable pointer to the internal CPU memory buffer.
const SpatialDirections & spatialDirections()
Shortcut to access spatial directions from image properties.
void setAlpha(bool value)
Shortcut to indicate the presence of an alpha channel into image properties.
void setSpatialOrigin(const Vector3d &origin)
Shortcut to set spatial origin into image properties.
virtual std::shared_ptr< const ImageProperties > properties()=0
Return the view's properties.
std::string toString() const
Return a string representation.
virtual size_t bufferSize()
Size in bytes of the internal CPU buffer.
void setValueRange(const Vector2d &range)
Shortcut to set sample value range into image properties.
void setImageInterpretation(const ImageInterpretation interpretation)
Shortcut to set Image interpretation into image properties.
void setSpatialDirections(const SpatialDirections &directions)
Shortcut to set spatial direcitons into image properties.
void setAxesInterpretation(const ImageType type)
Shortcut to set axes interpretation into image properties.
bool support(ImageCapabilitySet flags)
Checks if the ImageView supports the given capabilities.
Definition: ImageView.h:83
std::shared_ptr< ParallelAccessExtension > parallelAccess()
Shortcut to retrieve ParallelAccess extension.
virtual void readRegion(const RegionXu64 ®ion, void *dst)
Read a region of the image into a buffer.
void setBitDepth(size_t bitDepth)
Shortcut to set sample bitdepth into image properties.
virtual void write(const VectorXu64 &index, const void *src)
Write value from a buffer at the given index.
virtual void * buffer()
Return a mutable pointer to the internal CPU memory buffer.
virtual void setProperties(std::shared_ptr< const ImageProperties > properties)
Update the image's properties.
virtual std::shared_ptr< const MetadataNode > metadata() const
Return the root node of the metadata attached to this image.
ImageInterpretation imageInterpretation()
Shortcut to access Image interpretation from image properties.
void setSpatialUnit(const std::string &unit)
Shortcut to set spatial unit into image properties.
virtual const Indexer & indexer()
Return an Indexer describing the memory layout of the buffer.
virtual void reshape(const VectorXu64 &shape, DataType dataType)
Change the shape and sample data type of the image.
virtual const VectorXu64 & shape()=0
Return the shape of the image, each component containing the size in this dimension.
virtual void setMetadata(std::shared_ptr< MetadataNode > metadata)
Attach a new metadata node to the image.
void setSpatialSpacing(const Vector3d &spacing)
Shortcut to set spatial spacing into image properties.
This class is used to index a classic array into a multi dimensional array.
Definition: Indexer.h:36
A Region using dynamic vectors.
Definition: RegionX.h:14
Describes a spatial axis system, with direction vectors describing the three axes.
Definition: SpatialDirections.h:16
A dynamically sized arithmetic vector.
Definition: VectorX.h:18
Interface representing a generic view on data.
Definition: View.h:16
All IOLink symbols are enclosed in this namespace.
Definition: ArrayX.h:8
ImageInterpretation
Interpretation of an Image.
Definition: ImageInfoProperty.h:17
ImageCapability
Define capabilities of an ImageView.
Definition: ImageView.h:24
@ MEMORY_ACCESS
Accessing internal CPU memory buffer.
@ WRITE
Data can be written.
@ RESHAPE
Ability to add or remove columns and rows.