YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
LayeredImage.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2024-2024 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef YARP_LAYERED_IMAGE_H
7#define YARP_LAYERED_IMAGE_H
8
9#include <yarp/os/Portable.h>
10#include <yarp/sig/Image.h>
11#include <vector>
12
13namespace yarp::sig {
14class LayeredImage;
15class ImageLayer;
16} // namespace yarp::sig
17
24{
25 public:
27 bool enable=true;
29 {
30 public:
31 int value;
32 bool enable;
33
34 //default constructor
35 colorkey_s() : enable(true), value(0) {}
36
37 void setValueAsPixelRgb(yarp::sig::PixelRgb v)
38 {
39 value = *reinterpret_cast<int*>(&v);
40 }
41 yarp::sig::PixelRgb getValueAsPixelRgb()
42 {
43 return *reinterpret_cast<yarp::sig::PixelRgb*>(&value);
44 }
45 };
47
48 class alpha_s
49 {
50 public:
51 bool enable;
52 float value;
53
54 // default constructor
55 alpha_s() : enable(true), value(1.0) {}
56 };
58
59 bool can_be_compressed = true;
60 int offset_x=0;
61 int offset_y=0;
62
63 ImageLayer(const yarp::sig::FlexImage& img, bool ena = true, colorkey_s ckey = colorkey_s(), alpha_s alph = alpha_s(), bool compress = true, int off_x = 0, int off_y = 0)
64 {
65 layer = img;
66 enable = ena;
67 colorkey = ckey;
68 alpha = alph;
69 can_be_compressed = compress;
70 offset_x = off_x;
71 offset_y = off_y;
72 }
73};
74
81{
82public:
83 //internal data
85 std::vector<yarp::sig::ImageLayer> layers;
86
87public:
93
99 LayeredImage(const LayeredImage& alt);
100
106 LayeredImage(LayeredImage&& other) noexcept;
107
113 LayeredImage& operator=(const LayeredImage& alt);
114
122
128 bool operator==(const LayeredImage& alt) const;
129
133 ~LayeredImage() override;
134
138 yarp::sig::FlexImage convert_to_flexImage();
139
143 operator yarp::sig::FlexImage();
144
148 void clear();
149
154 bool read(yarp::os::ConnectionReader& connection) override;
155
160 bool write(yarp::os::ConnectionWriter& connection) const override;
161
162 yarp::os::Type getReadType() const override {
163 return yarp::os::Type::byName("yarp/layeredimage");
164 }
165};
166
167#endif // YARP_LAYERED_IMAGE_H
bool operator==(const struct v4l2_control &left, const struct v4l2_control &right)
Definition CApiMock.h:65
An interface for reading from a network connection.
An interface for writing to a network connection.
This is a base class for objects that can be both read from and be written to the YARP network.
Definition Portable.h:25
static Type byName(const char *name)
Definition Type.cpp:171
Image class with user control of representation details.
Definition Image.h:363
yarp::sig::PixelRgb getValueAsPixelRgb()
void setValueAsPixelRgb(yarp::sig::PixelRgb v)
A single layer of a layered image.
ImageLayer(const yarp::sig::FlexImage &img, bool ena=true, colorkey_s ckey=colorkey_s(), alpha_s alph=alpha_s(), bool compress=true, int off_x=0, int off_y=0)
yarp::sig::FlexImage layer
A Layered Image, composed by a background and multiple layers.
LayeredImage & operator=(LayeredImage &&other) noexcept
Move assignment operator.
yarp::os::Type getReadType() const override
yarp::sig::FlexImage background
std::vector< yarp::sig::ImageLayer > layers
The main, catch-all namespace for YARP.
Definition dirs.h:16
#define YARP_sig_API
Definition api.h:18