Img2Num C++ (Internal Developer Docs)
dev
API Documentation
Loading...
Searching...
No Matches
LABAPixel.h
1
#ifndef LABAPixel_H
2
#define LABAPixel_H
3
4
#include "internal/LABPixel.h"
5
6
namespace
ImageLib {
7
8
#ifdef _MSC_VER
9
#pragma pack(push, 1)
10
#endif
11
template
<
typename
NumberT>
struct
LABAPixel
:
public
ImageLib::LABPixel
<NumberT> {
12
// ----- Members -----
13
NumberT alpha;
14
15
// ----- Constructors -----
16
constexpr
LABAPixel
(NumberT l = 0, NumberT a = 0, NumberT b = 0, NumberT alpha = 255)
17
:
LABPixel<NumberT>
(l, a, b)
18
, alpha(alpha) {
19
}
20
21
// ----- Modifiers -----
22
[[nodiscard]]
inline
bool
operator==(
const
LABAPixel
& other)
const
{
23
return
LABPixel<NumberT>::operator==
(other) && alpha == other.alpha;
24
}
25
[[nodiscard]]
inline
bool
operator!=(
const
LABAPixel
& other)
const
{
26
return
!(*
this
== other);
27
}
28
29
// ----- Utilities -----
30
inline
void
setGray(NumberT gray, NumberT alpha = 255) {
31
LABPixel<NumberT>::setGray
(gray);
32
this->alpha = alpha;
33
}
34
35
}
36
#ifndef _MSC_VER
37
__attribute__((packed))
38
#endif
39
;
40
#ifdef _MSC_VER
41
#pragma pack(pop)
42
#endif
43
44
template
<
typename
NumberT>
45
std::ostream& operator<<(std::ostream& out,
const
ImageLib::LABAPixel<NumberT>
& pixel) {
46
out <<
"( "
<< pixel.l <<
","
<< pixel.a <<
","
<< pixel.b <<
","
<< pixel.alpha <<
" )"
;
47
return
out;
48
}
49
50
}
// namespace ImageLib
51
52
#endif
// LABAPixel_H
ImageLib::LABAPixel
Definition
LABAPixel.h:11
ImageLib::LABPixel
Definition
LABPixel.h:19
include
internal
LABAPixel.h
Generated by
1.9.8