16 #ifndef SURGSIM_DATASTRUCTURES_IMAGEBASE_H 17 #define SURGSIM_DATASTRUCTURES_IMAGEBASE_H 25 namespace DataStructures
48 std::array<size_t, 3>
getSize()
const;
58 Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1>>
operator()(
size_t x,
size_t y);
64 Eigen::Map<const Eigen::Matrix<T, Eigen::Dynamic, 1>>
operator()(
size_t x,
size_t y)
const;
67 typedef Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>
ChannelType;
77 Eigen::Map<
const ChannelType, Eigen::Unaligned, Eigen::Stride<-1, -1>>
getChannel(
size_t index)
const;
82 void setChannel(
size_t index,
const Eigen::Ref<const ChannelType>& data);
89 Eigen::Map<VectorType, Eigen::Unaligned>
getAsVector();
93 Eigen::Map<const VectorType, Eigen::Unaligned>
getAsVector()
const;
97 void setAsVector(
const Eigen::Ref<const VectorType>& data);
101 virtual T*
const getData() = 0;
105 virtual const T*
const getData()
const = 0;
112 void setSize(
size_t width,
size_t height,
size_t channels);
117 size_t m_channels = 0;
123 #include "SurgSim/DataStructures/ImageBase-inl.h" 125 #endif //SURGSIM_DATASTRUCTURES_IMAGEBASE_H Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
std::array< size_t, 3 > getSize() const
Get the Image size.
Definition: ImageBase-inl.h:115
size_t getHeight() const
Get the Image height.
Definition: ImageBase-inl.h:109
void setChannel(size_t index, const Eigen::Ref< const ChannelType > &data)
Set the image data in the channel.
Definition: ImageBase-inl.h:71
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > ChannelType
2D Channel Type;
Definition: ImageBase.h:67
Eigen::Map< Eigen::Matrix< T, Eigen::Dynamic, 1 > > operator()(size_t x, size_t y)
Get the pixel value at (x, y)
Definition: ImageBase-inl.h:33
Eigen::Map< ChannelType, Eigen::Unaligned, Eigen::Stride<-1, -1 > > getChannel(size_t index)
Get the 2D image channel data.
Definition: ImageBase-inl.h:52
virtual T *const getData()=0
Get the pointer to the data.
Base class for Image-like classes.
Definition: ImageBase.h:32
Eigen::Matrix< T, Eigen::Dynamic, 1 > VectorType
1D Vector Type;
Definition: ImageBase.h:85
void setSize(size_t width, size_t height, size_t channels)
Set the Image size.
Definition: ImageBase-inl.h:128
size_t getWidth() const
Get the Image width.
Definition: ImageBase-inl.h:103
Eigen::Map< VectorType, Eigen::Unaligned > getAsVector()
Get the data as a 1D Vector.
Definition: ImageBase-inl.h:81
void setAsVector(const Eigen::Ref< const VectorType > &data)
Set the image data as a 1D Vector.
Definition: ImageBase-inl.h:93
virtual ~ImageBase()
Destructor.
Definition: ImageBase-inl.h:28
size_t getNumChannels() const
Get the number of channels in this Image.
Definition: ImageBase-inl.h:122