SourceXtractorPlusPlus
0.13
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
template
<
typename
T>
88
std::shared_ptr<VectorImage<T>
>
getImage
()
const
{
89
if
(
m_image_type
==
getTypeValue
(T())) {
90
return
std::static_pointer_cast
<
VectorImage<T>
>(
m_tile_image
);
91
}
else
{
92
//FIXME implement type conversion !!!!!!!!!!!!!!!!
93
return
nullptr
;
94
}
95
}
96
97
virtual
void
*
getDataPtr
()=0;
98
99
void
setModified
(
bool
modified) {
100
m_modified
= modified;
101
}
102
103
bool
isModified
()
const
{
104
return
m_modified
;
105
}
106
107
virtual
void
saveIfModified
();
108
109
static
ImageType
getTypeValue
(
float
) {
110
return
FloatImage
;
111
}
112
113
static
ImageType
getTypeValue
(
double
) {
114
return
DoubleImage
;
115
}
116
117
static
ImageType
getTypeValue
(
int
) {
118
return
IntImage
;
119
}
120
121
static
ImageType
getTypeValue
(
unsigned
int
) {
122
return
UIntImage
;
123
}
124
125
static
ImageType
getTypeValue
(
std::int64_t
) {
126
return
LongLongImage
;
127
}
128
129
static
size_t
getTypeSize
(
ImageType
image_type) {
130
switch
(image_type) {
131
default
:
132
case
ImageTile::FloatImage
:
133
case
ImageTile::IntImage
:
134
case
ImageTile::UIntImage
:
135
return
4;
136
case
ImageTile::LongLongImage
:
137
case
ImageTile::DoubleImage
:
138
return
8;
139
}
140
}
141
142
ImageType
getType
()
const
{
143
return
m_image_type
;
144
}
145
146
protected
:
147
virtual
void
getValue
(
int
x
,
int
y
,
float
& value)
const
= 0;
148
virtual
void
getValue
(
int
x
,
int
y
,
double
& value)
const
= 0;
149
virtual
void
getValue
(
int
x
,
int
y
,
int
& value)
const
= 0;
150
virtual
void
getValue
(
int
x
,
int
y
,
unsigned
int
& value)
const
= 0;
151
virtual
void
getValue
(
int
x
,
int
y
,
std::int64_t
& value)
const
= 0;
152
153
154
ImageTile
(
ImageType
image_type,
int
x
,
int
y
,
int
width
,
int
height
,
std::shared_ptr<ImageSource>
source=
nullptr
)
155
:
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) {
156
createImage
(image_type, width, height);
157
}
158
159
void
createImage
(
ImageType
image_type,
int
width
,
int
height
) {
160
//std::cout << "create tile type " << image_type << "\n";
161
switch
(image_type) {
162
default
:
163
case
FloatImage
:
164
m_tile_image
=
VectorImage<float>::create
(width, height);
165
break
;
166
case
DoubleImage
:
167
m_tile_image
=
VectorImage<double>::create
(width, height);
168
break
;
169
case
IntImage
:
170
m_tile_image
=
VectorImage<int>::create
(width, height);
171
break
;
172
case
UIntImage
:
173
m_tile_image
=
VectorImage<unsigned int>::create
(width, height);
174
break
;
175
case
LongLongImage
:
176
m_tile_image
=
VectorImage<std::int64_t>::create
(width, height);
177
break
;
178
}
179
}
180
181
bool
m_modified
;
182
183
ImageType
m_image_type
;
184
185
std::shared_ptr<ImageSource>
m_source
;
186
int
m_x
,
m_y
;
187
int
m_max_x
,
m_max_y
;
188
189
std::shared_ptr<void>
m_tile_image
;
190
};
191
192
193
}
194
195
196
#endif
/* _SEFRAMEWORK_IMAGE_IMAGETILE_H_ */
SourceXtractor::ImageTile::FloatImage
Definition:
ImageTile.h:39
std::shared_ptr
SourceXtractor::ImageTile::m_max_y
int m_max_y
Definition:
ImageTile.h:187
SourceXtractor::ImageTile::getImage
std::shared_ptr< VectorImage< T > > getImage() const
Definition:
ImageTile.h:88
SourceXtractor::ImageTile::getType
ImageType getType() const
Definition:
ImageTile.h:142
SourceXtractor::ImageTile::m_tile_image
std::shared_ptr< void > m_tile_image
Definition:
ImageTile.h:189
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition:
MoffatModelFittingTask.cpp:94
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:154
SourceXtractor::ImageTile::m_image_type
ImageType m_image_type
Definition:
ImageTile.h:183
SourceXtractor::ImageTile::m_max_x
int m_max_x
Definition:
ImageTile.h:187
SourceXtractor::ImageTile::AutoType
Definition:
ImageTile.h:38
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition:
MoffatModelFittingTask.cpp:94
SourceXtractor::ImageTile::setModified
void setModified(bool modified)
Definition:
ImageTile.h:99
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(unsigned int)
Definition:
ImageTile.h:121
SourceXtractor::ImageTile::LongLongImage
Definition:
ImageTile.h:43
SourceXtractor::ImageTile::getPosX
int getPosX() const
Definition:
ImageTile.h:56
SourceXtractor::ImageTile::ImageType
ImageType
Definition:
ImageTile.h:37
Image.h
std::int64_t
SourceXtractor::ImageTile::DoubleImage
Definition:
ImageTile.h:40
SourceXtractor::VectorImage
Image implementation which keeps the pixel values in memory.
Definition:
VectorImage.h:53
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:112
SourceXtractor::ImageTile
Definition:
ImageTile.h:34
SourceXtractor::ImageTile::getTypeSize
static size_t getTypeSize(ImageType image_type)
Definition:
ImageTile.h:129
SourceXtractor::ImageTile::getTileMemorySize
virtual int getTileMemorySize() const =0
SourceXtractor::ImageTile::m_source
std::shared_ptr< ImageSource > m_source
Definition:
ImageTile.h:185
std::static_pointer_cast
T static_pointer_cast(T...args)
SourceXtractor::ImageTile::isModified
bool isModified() const
Definition:
ImageTile.h:103
SourceXtractor::ImageTile::getWidth
int getWidth() const
Definition:
ImageTile.h:66
SourceXtractor::ImageTile::isPixelInTile
bool isPixelInTile(int x, int y) const
Definition:
ImageTile.h:52
SourceXtractor::ImageTile::m_y
int m_y
Definition:
ImageTile.h:186
SourceXtractor::ImageTile::UIntImage
Definition:
ImageTile.h:42
SourceXtractor::ImageTile::IntImage
Definition:
ImageTile.h:41
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(int)
Definition:
ImageTile.h:117
SourceXtractor::ImageTile::getValue
T getValue(int x, int y) const
Definition:
ImageTile.h:75
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(double)
Definition:
ImageTile.h:113
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:96
SourceXtractor::ImageTile::getHeight
int getHeight() const
Definition:
ImageTile.h:70
ModelFitting::height
height
Definition:
CompactModelBase.icpp:19
SourceXtractor::ImageTile::createImage
void createImage(ImageType image_type, int width, int height)
Definition:
ImageTile.h:159
SourceXtractor::ImageTile::m_x
int m_x
Definition:
ImageTile.h:186
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(std::int64_t)
Definition:
ImageTile.h:125
SourceXtractor::ImageTile::m_modified
bool m_modified
Definition:
ImageTile.h:181
SourceXtractor::ImageTile::getPosY
int getPosY() const
Definition:
ImageTile.h:60
ModelFitting::width
width
Definition:
CompactModelBase.icpp:19
SourceXtractor::ImageTile::getTypeValue
static ImageType getTypeValue(float)
Definition:
ImageTile.h:109
SourceXtractor::ImageTile::getDataPtr
virtual void * getDataPtr()=0
Generated by
1.8.5