SourceXtractorPlusPlus
0.19
SourceXtractor++, the next generation SExtractor
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SEFramework
SEFramework
Image
ImageTile.h
Go to the documentation of this file.
1
17
/*
18
* ImageTile.hm
19
*
20
* Created on: Feb 20, 2018
21
* Author: mschefer
22
*/
23
24
#ifndef _SEFRAMEWORK_IMAGE_IMAGETILE_H_
25
#define _SEFRAMEWORK_IMAGE_IMAGETILE_H_
26
#include <iostream>
27
#include "
SEFramework/Image/Image.h
"
28
#include "
SEFramework/Image/VectorImage.h
"
29
30
namespace
SourceXtractor {
31
32
class
ImageSource;
33
34
class
ImageTile
{
35
public
:
36
37
enum
ImageType
{
38
AutoType
=-1,
39
FloatImage
=0,
40
DoubleImage
,
41
IntImage
,
42
UIntImage
,
43
LongLongImage
,
44
};
45
46
static
std::shared_ptr<ImageTile>
create
(
ImageType
image_type,
int
x
,
int
y
,
int
width
,
int
height
,
std::shared_ptr<ImageSource>
source=
nullptr
);
47
48
virtual
~ImageTile
() =
default
;
49
50
bool
isPixelInTile
(
int
x
,
int
y
)
const
{
51
return
x >=
m_x
&& y >=
m_y
&& x <
m_max_x
&& y <
m_max_y
;
52
}
53
54
int
getPosX
()
const
{
55
return
m_x
;
56
}
57
58
int
getPosY
()
const
{
59
return
m_y
;
60
}
61
62
virtual
int
getTileMemorySize
()
const
= 0;
63
64
int
getWidth
()
const
{
65
return
m_max_x
-
m_x
;
66
}
67
68
int
getHeight
()
const
{
69
return
m_max_y
-
m_y
;
70
}
71
72
template
<
typename
T>
73
T
getValue
(
int
x
,
int
y
)
const
{
74
T value;
75
getValue
(x, y, value);
76
return
value;
77
}
78
79
virtual
void
setValue
(
int
x
,
int
y
,
float
value) = 0;
80
virtual
void
setValue
(
int
x
,
int
y
,
double
value) = 0;
81
virtual
void
setValue
(
int
x
,
int
y
,
int
value) = 0;
82
virtual
void
setValue
(
int
x
,
int
y
,
unsigned
int
value) = 0;
83
virtual
void
setValue
(
int
x
,
int
y
,
std::int64_t
value) = 0;
84
85
virtual
void
*
getDataPtr
()=0;
86
87
void
setModified
(
bool
modified) {
88
m_modified
= modified;
89
}
90
91
bool
isModified
()
const
{
92
return
m_modified
;
93
}
94
95
void
saveIfModified
();
96
97
static
ImageType
getTypeValue
(
float
) {
98
return
FloatImage
;
99
}
100
101
static
ImageType
getTypeValue
(
double
) {
102
return
DoubleImage
;
103
}
104
105
static
ImageType
getTypeValue
(
int
) {
106
return
IntImage
;
107
}
108
109
static
ImageType
getTypeValue
(
unsigned
int
) {
110
return
UIntImage
;
111
}
112
113
static
ImageType
getTypeValue
(
std::int64_t
) {
114
return
LongLongImage
;
115
}
116
117
static
size_t
getTypeSize
(
ImageType
image_type) {
118
switch
(image_type) {
119
default
:
120
case
ImageTile::FloatImage
:
121
case
ImageTile::IntImage
:
122
case
ImageTile::UIntImage
:
123
return
4;
124
case
ImageTile::LongLongImage
:
125
case
ImageTile::DoubleImage
:
126
return
8;
127
}
128
}
129
130
ImageType
getType
()
const
{
131
return
m_image_type
;
132
}
133
134
protected
:
135
virtual
void
getValue
(
int
x
,
int
y
,
float
& value)
const
= 0;
136
virtual
void
getValue
(
int
x
,
int
y
,
double
& value)
const
= 0;
137
virtual
void
getValue
(
int
x
,
int
y
,
int
& value)
const
= 0;
138
virtual
void
getValue
(
int
x
,
int
y
,
unsigned
int
& value)
const
= 0;
139
virtual
void
getValue
(
int
x
,
int
y
,
std::int64_t
& value)
const
= 0;
140
141
ImageTile
(
ImageType
image_type,
int
x
,
int
y
,
int
width
,
int
height
,
std::shared_ptr<ImageSource>
source=
nullptr
)
142
:
m_modified
(false),
m_image_type
(image_type),
m_source
(source),
m_x
(x),
m_y
(y),
m_max_x
(x+width),
m_max_y
(y+height) {
143
}
144
145
ImageTile
(
const
ImageTile
&) =
delete
;
146
ImageTile
(
ImageTile
&&) =
delete
;
147
ImageTile
&
operator=
(
const
ImageTile
&) =
delete
;
148
ImageTile
&
operator=
(
ImageTile
&&) =
delete
;
149
150
bool
m_modified
;
151
ImageType
m_image_type
;
152
std::shared_ptr<ImageSource>
m_source
;
153
int
m_x
,
m_y
;
154
int
m_max_x
,
m_max_y
;
155
};
156
157
template
<
typename
T>
158
class
ImageTileWithType
final :
public
ImageTile
{
159
public
:
160
161
ImageTileWithType
(
int
x
,
int
y
,
int
width
,
int
height
,
std::shared_ptr<ImageSource>
source)
162
:
ImageTile
(
getTypeValue
(T()), x, y, width, height, source) {
163
m_tile_image
=
VectorImage<T>::create
(width, height);
164
}
165
166
virtual
~ImageTileWithType
() {
167
saveIfModified
();
168
}
169
170
int
getTileMemorySize
()
const override
{
171
return
getWidth
() *
getHeight
() *
sizeof
(T);
172
}
173
174
void
*
getDataPtr
()
override
{
175
return
&
m_tile_image
->getData()[0];
176
}
177
178
const
std::shared_ptr<VectorImage<T>
>&
getImage
()
const
{
179
return
m_tile_image
;
180
}
181
182
template
<
typename
U>
183
void
getValueImpl
(
int
x
,
int
y
, U& value)
const
{
184
assert(
isPixelInTile
(x,y));
185
value =
m_tile_image
->getValue(x-
m_x
, y-
m_y
);
186
}
187
188
template
<
typename
U>
189
void
setValueImpl
(
int
x
,
int
y
, U value) {
190
assert(
isPixelInTile
(x,y));
191
m_tile_image
->setValue(x-
m_x
, y-
m_y
, value);
192
}
193
194
void
getValue
(
int
x
,
int
y
,
float
& value)
const override
{
195
getValueImpl
(x, y, value);
196
}
197
198
void
getValue
(
int
x
,
int
y
,
double
& value)
const override
{
199
getValueImpl
(x, y, value);
200
}
201
202
void
getValue
(
int
x
,
int
y
,
int
& value)
const override
{
203
getValueImpl
(x, y, value);
204
}
205
206
void
getValue
(
int
x
,
int
y
,
unsigned
int
& value)
const override
{
207
getValueImpl
(x, y, value);
208
}
209
210
void
getValue
(
int
x
,
int
y
,
std::int64_t
& value)
const override
{
211
getValueImpl
(x, y, value);
212
}
213
214
void
setValue
(
int
x
,
int
y
,
float
value)
override
{
215
setValueImpl
(x, y, value);
216
}
217
218
void
setValue
(
int
x
,
int
y
,
double
value)
override
{
219
setValueImpl
(x, y, value);
220
}
221
222
void
setValue
(
int
x
,
int
y
,
int
value)
override
{
223
setValueImpl
(x, y, value);
224
}
225
226
void
setValue
(
int
x
,
int
y
,
unsigned
int
value)
override
{
227
setValueImpl
(x, y, value);
228
}
229
230
void
setValue
(
int
x
,
int
y
,
std::int64_t
value)
override
{
231
setValueImpl
(x, y, value);
232
}
233
234
private
:
235
std::shared_ptr<VectorImage<T>
>
m_tile_image
;
236
};
237
238
}
239
240
241
#endif
/* _SEFRAMEWORK_IMAGE_IMAGETILE_H_ */
SourceXtractor::ImageTile::FloatImage
Definition:
ImageTile.h:39
SourceXtractor::ImageTile::~ImageTile
virtual ~ImageTile()=default
SourceXtractor::ImageTileWithType::setValueImpl
void setValueImpl(int x, int y, U value)
Definition:
ImageTile.h:189
std::shared_ptr
SourceXtractor::ImageTileWithType::getValue
void getValue(int x, int y, double &value) const override
Definition:
ImageTile.h:198
SourceXtractor::ImageTile::m_max_y
int m_max_y
Definition:
ImageTile.h:154
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, unsigned int value) override
Definition:
ImageTile.h:226
SourceXtractor::ImageTileWithType::m_tile_image
std::shared_ptr< VectorImage< T > > m_tile_image
Definition:
ImageTile.h:235
SourceXtractor::ImageTile::getType
ImageType getType() const
Definition:
ImageTile.h:130
SourceXtractor::ImageTileWithType::getValue
void getValue(int x, int y, unsigned int &value) const override
Definition:
ImageTile.h:206
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition:
MoffatModelFittingTask.cpp:94
SourceXtractor::ImageTileWithType::getValue
void getValue(int x, int y, float &value) const override
Definition:
ImageTile.h:194
SourceXtractor::VectorImage::create
static std::shared_ptr< VectorImage< T > > create(Args &&...args)
Definition:
VectorImage.h:100
SourceXtractor::ImageTile::ImageTile
ImageTile(ImageType image_type, int x, int y, int width, int height, std::shared_ptr< ImageSource > source=nullptr)
Definition:
ImageTile.h:141
SourceXtractor::ImageTile::m_image_type
ImageType m_image_type
Definition:
ImageTile.h:151
SourceXtractor::ImageTile::m_max_x
int m_max_x
Definition:
ImageTile.h:154
SourceXtractor::ImageTile::AutoType
Definition:
ImageTile.h:38
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition:
MoffatModelFittingTask.cpp:94
SourceXtractor::ImageTileWithType
Definition:
ImageTile.h:158
SourceXtractor::ImageTile::setModified
void setModified(bool modified)
Definition:
ImageTile.h:87
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(unsigned int)
Definition:
ImageTile.h:109
SourceXtractor::ImageTile::LongLongImage
Definition:
ImageTile.h:43
SourceXtractor::ImageTile::getPosX
int getPosX() const
Definition:
ImageTile.h:54
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, int value) override
Definition:
ImageTile.h:222
SourceXtractor::ImageTile::ImageType
ImageType
Definition:
ImageTile.h:37
Image.h
SourceXtractor::ImageTile::operator=
ImageTile & operator=(const ImageTile &)=delete
std::int64_t
SourceXtractor::ImageTile::DoubleImage
Definition:
ImageTile.h:40
SourceXtractor::ImageTileWithType::getImage
const std::shared_ptr< VectorImage< T > > & getImage() const
Definition:
ImageTile.h:178
SourceXtractor::ImageTile::setValue
virtual void setValue(int x, int y, float value)=0
VectorImage.h
SourceXtractor::ImageTile::saveIfModified
void saveIfModified()
Definition:
ImageTile.cpp:40
SourceXtractor::ImageTile
Definition:
ImageTile.h:34
SourceXtractor::ImageTileWithType::getValue
void getValue(int x, int y, int &value) const override
Definition:
ImageTile.h:202
SourceXtractor::ImageTileWithType::getValue
void getValue(int x, int y, std::int64_t &value) const override
Definition:
ImageTile.h:210
SourceXtractor::ImageTile::getTypeSize
static size_t getTypeSize(ImageType image_type)
Definition:
ImageTile.h:117
SourceXtractor::ImageTile::getTileMemorySize
virtual int getTileMemorySize() const =0
SourceXtractor::ImageTile::m_source
std::shared_ptr< ImageSource > m_source
Definition:
ImageTile.h:152
SourceXtractor::ImageTile::isModified
bool isModified() const
Definition:
ImageTile.h:91
SourceXtractor::ImageTile::getWidth
int getWidth() const
Definition:
ImageTile.h:64
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, std::int64_t value) override
Definition:
ImageTile.h:230
SourceXtractor::ImageTile::isPixelInTile
bool isPixelInTile(int x, int y) const
Definition:
ImageTile.h:50
SourceXtractor::ImageTile::m_y
int m_y
Definition:
ImageTile.h:153
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, float value) override
Definition:
ImageTile.h:214
SourceXtractor::ImageTile::UIntImage
Definition:
ImageTile.h:42
SourceXtractor::ImageTile::IntImage
Definition:
ImageTile.h:41
SourceXtractor::ImageTileWithType::ImageTileWithType
ImageTileWithType(int x, int y, int width, int height, std::shared_ptr< ImageSource > source)
Definition:
ImageTile.h:161
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(int)
Definition:
ImageTile.h:105
SourceXtractor::ImageTile::getValue
T getValue(int x, int y) const
Definition:
ImageTile.h:73
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(double)
Definition:
ImageTile.h:101
SourceXtractor::ImageTile::create
static std::shared_ptr< ImageTile > create(ImageType image_type, int x, int y, int width, int height, std::shared_ptr< ImageSource > source=nullptr)
Definition:
ImageTile.cpp:24
SourceXtractor::ImageTile::getHeight
int getHeight() const
Definition:
ImageTile.h:68
ModelFitting::height
height
Definition:
CompactModelBase.icpp:19
SourceXtractor::ImageTile::m_x
int m_x
Definition:
ImageTile.h:153
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(std::int64_t)
Definition:
ImageTile.h:113
SourceXtractor::ImageTile::m_modified
bool m_modified
Definition:
ImageTile.h:150
SourceXtractor::ImageTileWithType::getTileMemorySize
int getTileMemorySize() const override
Definition:
ImageTile.h:170
SourceXtractor::ImageTile::getPosY
int getPosY() const
Definition:
ImageTile.h:58
SourceXtractor::ImageTileWithType::getDataPtr
void * getDataPtr() override
Definition:
ImageTile.h:174
SourceXtractor::ImageTileWithType::getValueImpl
void getValueImpl(int x, int y, U &value) const
Definition:
ImageTile.h:183
ModelFitting::width
width
Definition:
CompactModelBase.icpp:19
SourceXtractor::ImageTileWithType::~ImageTileWithType
virtual ~ImageTileWithType()
Definition:
ImageTile.h:166
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(float)
Definition:
ImageTile.h:97
SourceXtractor::ImageTile::getDataPtr
virtual void * getDataPtr()=0
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, double value) override
Definition:
ImageTile.h:218
Generated by
1.8.5