SourceXtractorPlusPlus
0.14
Please provide a description of the project.
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
() {
49
saveIfModified
();
50
}
51
52
bool
isPixelInTile
(
int
x
,
int
y
)
const
{
53
return
x >=
m_x
&& y >=
m_y
&& x <
m_max_x
&& y <
m_max_y
;
54
}
55
56
int
getPosX
()
const
{
57
return
m_x
;
58
}
59
60
int
getPosY
()
const
{
61
return
m_y
;
62
}
63
64
virtual
int
getTileMemorySize
()
const
= 0;
65
66
int
getWidth
()
const
{
67
return
m_max_x
-
m_x
;
68
}
69
70
int
getHeight
()
const
{
71
return
m_max_y
-
m_y
;
72
}
73
74
template
<
typename
T>
75
T
getValue
(
int
x
,
int
y
)
const
{
76
T value;
77
getValue
(x, y, value);
78
return
value;
79
}
80
81
virtual
void
setValue
(
int
x
,
int
y
,
float
value) = 0;
82
virtual
void
setValue
(
int
x
,
int
y
,
double
value) = 0;
83
virtual
void
setValue
(
int
x
,
int
y
,
int
value) = 0;
84
virtual
void
setValue
(
int
x
,
int
y
,
unsigned
int
value) = 0;
85
virtual
void
setValue
(
int
x
,
int
y
,
std::int64_t
value) = 0;
86
87
virtual
void
*
getDataPtr
()=0;
88
89
void
setModified
(
bool
modified) {
90
m_modified
= modified;
91
}
92
93
bool
isModified
()
const
{
94
return
m_modified
;
95
}
96
97
virtual
void
saveIfModified
();
98
99
static
ImageType
getTypeValue
(
float
) {
100
return
FloatImage
;
101
}
102
103
static
ImageType
getTypeValue
(
double
) {
104
return
DoubleImage
;
105
}
106
107
static
ImageType
getTypeValue
(
int
) {
108
return
IntImage
;
109
}
110
111
static
ImageType
getTypeValue
(
unsigned
int
) {
112
return
UIntImage
;
113
}
114
115
static
ImageType
getTypeValue
(
std::int64_t
) {
116
return
LongLongImage
;
117
}
118
119
static
size_t
getTypeSize
(
ImageType
image_type) {
120
switch
(image_type) {
121
default
:
122
case
ImageTile::FloatImage
:
123
case
ImageTile::IntImage
:
124
case
ImageTile::UIntImage
:
125
return
4;
126
case
ImageTile::LongLongImage
:
127
case
ImageTile::DoubleImage
:
128
return
8;
129
}
130
}
131
132
ImageType
getType
()
const
{
133
return
m_image_type
;
134
}
135
136
protected
:
137
virtual
void
getValue
(
int
x
,
int
y
,
float
& value)
const
= 0;
138
virtual
void
getValue
(
int
x
,
int
y
,
double
& value)
const
= 0;
139
virtual
void
getValue
(
int
x
,
int
y
,
int
& value)
const
= 0;
140
virtual
void
getValue
(
int
x
,
int
y
,
unsigned
int
& value)
const
= 0;
141
virtual
void
getValue
(
int
x
,
int
y
,
std::int64_t
& value)
const
= 0;
142
143
ImageTile
(
ImageType
image_type,
int
x
,
int
y
,
int
width
,
int
height
,
std::shared_ptr<ImageSource>
source=
nullptr
)
144
:
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) {
145
}
146
147
ImageTile
(
const
ImageTile
&) =
delete
;
148
ImageTile
(
ImageTile
&&) =
delete
;
149
ImageTile
&
operator=
(
const
ImageTile
&) =
delete
;
150
ImageTile
&
operator=
(
ImageTile
&&) =
delete
;
151
152
bool
m_modified
;
153
ImageType
m_image_type
;
154
std::shared_ptr<ImageSource>
m_source
;
155
int
m_x
,
m_y
;
156
int
m_max_x
,
m_max_y
;
157
};
158
159
template
<
typename
T>
160
class
ImageTileWithType
final :
public
ImageTile
{
161
public
:
162
163
ImageTileWithType
(
int
x
,
int
y
,
int
width
,
int
height
,
std::shared_ptr<ImageSource>
source)
164
:
ImageTile
(
getTypeValue
(T()), x, y, width, height, source) {
165
m_tile_image
=
VectorImage<T>::create
(width, height);
166
}
167
168
int
getTileMemorySize
()
const override
{
169
return
getWidth
() *
getHeight
() *
sizeof
(T);
170
}
171
172
void
*
getDataPtr
()
override
{
173
return
&
m_tile_image
->getData()[0];
174
}
175
176
const
std::shared_ptr<VectorImage<T>
>&
getImage
()
const
{
177
return
m_tile_image
;
178
}
179
180
template
<
typename
U>
181
void
getValueImpl
(
int
x
,
int
y
, U& value)
const
{
182
assert(
isPixelInTile
(x,y));
183
value =
m_tile_image
->getValue(x-
m_x
, y-
m_y
);
184
}
185
186
template
<
typename
U>
187
void
setValueImpl
(
int
x
,
int
y
, U value) {
188
assert(
isPixelInTile
(x,y));
189
m_tile_image
->setValue(x-
m_x
, y-
m_y
, value);
190
}
191
192
void
getValue
(
int
x
,
int
y
,
float
& value)
const override
{
193
getValueImpl
(x, y, value);
194
}
195
196
void
getValue
(
int
x
,
int
y
,
double
& value)
const override
{
197
getValueImpl
(x, y, value);
198
}
199
200
void
getValue
(
int
x
,
int
y
,
int
& value)
const override
{
201
getValueImpl
(x, y, value);
202
}
203
204
void
getValue
(
int
x
,
int
y
,
unsigned
int
& value)
const override
{
205
getValueImpl
(x, y, value);
206
}
207
208
void
getValue
(
int
x
,
int
y
,
std::int64_t
& value)
const override
{
209
getValueImpl
(x, y, value);
210
}
211
212
void
setValue
(
int
x
,
int
y
,
float
value)
override
{
213
setValueImpl
(x, y, value);
214
}
215
216
void
setValue
(
int
x
,
int
y
,
double
value)
override
{
217
setValueImpl
(x, y, value);
218
}
219
220
void
setValue
(
int
x
,
int
y
,
int
value)
override
{
221
setValueImpl
(x, y, value);
222
}
223
224
void
setValue
(
int
x
,
int
y
,
unsigned
int
value)
override
{
225
setValueImpl
(x, y, value);
226
}
227
228
void
setValue
(
int
x
,
int
y
,
std::int64_t
value)
override
{
229
setValueImpl
(x, y, value);
230
}
231
232
private
:
233
std::shared_ptr<VectorImage<T>
>
m_tile_image
;
234
};
235
236
}
237
238
239
#endif
/* _SEFRAMEWORK_IMAGE_IMAGETILE_H_ */
SourceXtractor::ImageTile::FloatImage
Definition:
ImageTile.h:39
SourceXtractor::ImageTileWithType::setValueImpl
void setValueImpl(int x, int y, U value)
Definition:
ImageTile.h:187
std::shared_ptr
SourceXtractor::ImageTileWithType::getValue
void getValue(int x, int y, double &value) const override
Definition:
ImageTile.h:196
SourceXtractor::ImageTile::m_max_y
int m_max_y
Definition:
ImageTile.h:156
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, unsigned int value) override
Definition:
ImageTile.h:224
SourceXtractor::ImageTileWithType::m_tile_image
std::shared_ptr< VectorImage< T > > m_tile_image
Definition:
ImageTile.h:233
SourceXtractor::ImageTile::getType
ImageType getType() const
Definition:
ImageTile.h:132
SourceXtractor::ImageTileWithType::getValue
void getValue(int x, int y, unsigned int &value) const override
Definition:
ImageTile.h:204
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:192
SourceXtractor::VectorImage::create
static std::shared_ptr< VectorImage< T > > create(Args &&...args)
Definition:
VectorImage.h:89
SourceXtractor::ImageTile::ImageTile
ImageTile(ImageType image_type, int x, int y, int width, int height, std::shared_ptr< ImageSource > source=nullptr)
Definition:
ImageTile.h:143
SourceXtractor::ImageTile::m_image_type
ImageType m_image_type
Definition:
ImageTile.h:153
SourceXtractor::ImageTile::m_max_x
int m_max_x
Definition:
ImageTile.h:156
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:160
SourceXtractor::ImageTile::setModified
void setModified(bool modified)
Definition:
ImageTile.h:89
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(unsigned int)
Definition:
ImageTile.h:111
SourceXtractor::ImageTile::LongLongImage
Definition:
ImageTile.h:43
SourceXtractor::ImageTile::getPosX
int getPosX() const
Definition:
ImageTile.h:56
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, int value) override
Definition:
ImageTile.h:220
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:176
SourceXtractor::ImageTile::setValue
virtual void setValue(int x, int y, float value)=0
VectorImage.h
SourceXtractor::ImageTile::~ImageTile
virtual ~ImageTile()
Definition:
ImageTile.h:48
SourceXtractor::ImageTile::saveIfModified
virtual 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:200
SourceXtractor::ImageTileWithType::getValue
void getValue(int x, int y, std::int64_t &value) const override
Definition:
ImageTile.h:208
SourceXtractor::ImageTile::getTypeSize
static size_t getTypeSize(ImageType image_type)
Definition:
ImageTile.h:119
SourceXtractor::ImageTile::getTileMemorySize
virtual int getTileMemorySize() const =0
SourceXtractor::ImageTile::m_source
std::shared_ptr< ImageSource > m_source
Definition:
ImageTile.h:154
SourceXtractor::ImageTile::isModified
bool isModified() const
Definition:
ImageTile.h:93
SourceXtractor::ImageTile::getWidth
int getWidth() const
Definition:
ImageTile.h:66
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, std::int64_t value) override
Definition:
ImageTile.h:228
SourceXtractor::ImageTile::isPixelInTile
bool isPixelInTile(int x, int y) const
Definition:
ImageTile.h:52
SourceXtractor::ImageTile::m_y
int m_y
Definition:
ImageTile.h:155
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, float value) override
Definition:
ImageTile.h:212
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:163
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(int)
Definition:
ImageTile.h:107
SourceXtractor::ImageTile::getValue
T getValue(int x, int y) const
Definition:
ImageTile.h:75
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(double)
Definition:
ImageTile.h:103
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:70
ModelFitting::height
height
Definition:
CompactModelBase.icpp:19
SourceXtractor::ImageTile::m_x
int m_x
Definition:
ImageTile.h:155
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(std::int64_t)
Definition:
ImageTile.h:115
SourceXtractor::ImageTile::m_modified
bool m_modified
Definition:
ImageTile.h:152
SourceXtractor::ImageTileWithType::getTileMemorySize
int getTileMemorySize() const override
Definition:
ImageTile.h:168
SourceXtractor::ImageTile::getPosY
int getPosY() const
Definition:
ImageTile.h:60
SourceXtractor::ImageTileWithType::getDataPtr
void * getDataPtr() override
Definition:
ImageTile.h:172
SourceXtractor::ImageTileWithType::getValueImpl
void getValueImpl(int x, int y, U &value) const
Definition:
ImageTile.h:181
ModelFitting::width
width
Definition:
CompactModelBase.icpp:19
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(float)
Definition:
ImageTile.h:99
SourceXtractor::ImageTile::getDataPtr
virtual void * getDataPtr()=0
SourceXtractor::ImageTileWithType::setValue
void setValue(int x, int y, double value) override
Definition:
ImageTile.h:216
Generated by
1.8.5