SourceXtractorPlusPlus
0.10
Please provide a description of the project.
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
27
#include "
SEFramework/Image/Image.h
"
28
#include "
SEFramework/Image/VectorImage.h
"
29
30
namespace
SourceXtractor
{
31
32
template
<
typename
T>
class
ImageSource;
33
34
class
ImageTileBase
{
35
public
:
36
ImageTileBase
() :
m_modified
(false) {}
37
38
virtual
~ImageTileBase
() =
default
;
39
40
virtual
int
getTileSize
()
const
= 0;
41
42
void
setModified
(
bool
modified) {
43
m_modified
= modified;
44
}
45
46
bool
isModified
()
const
{
47
return
m_modified
;
48
}
49
50
virtual
void
saveIfModified
() = 0;
51
52
private
:
53
bool
m_modified
;
54
};
55
56
template
<
typename
T>
57
class
ImageTile
:
public
ImageTileBase
{
58
public
:
59
ImageTile
(
std::shared_ptr
<
ImageSource<T>
> source,
int
x
,
int
y
,
int
width,
int
height) :
m_source
(source),
m_x
(
x
),
m_y
(
y
),
m_max_x
(
x
+width),
m_max_y
(
y
+height) {
60
m_tile_image
=
VectorImage<T>::create
(width, height);
61
}
62
63
ImageTile
(
int
x
,
int
y
,
int
width,
int
height) :
m_source
(nullptr),
m_x
(
x
),
m_y
(
y
),
m_max_x
(
x
+width),
m_max_y
(
y
+height) {
64
m_tile_image
=
VectorImage<T>::create
(width, height);
65
}
66
67
virtual
~ImageTile
()
override
{
68
saveIfModified
();
69
}
70
71
bool
isPixelInTile
(
int
x
,
int
y
)
const
{
72
return
x
>=
m_x
&&
y
>=
m_y
&&
x
<
m_max_x
&&
y
<
m_max_y
;
73
}
74
75
T
getValue
(
int
x
,
int
y
)
const
{
76
assert(
isPixelInTile
(
x
,
y
));
77
78
return
m_tile_image
->getValue(
x
-
m_x
,
y
-
m_y
);
79
}
80
81
void
setValue
(
int
x
,
int
y
, T value) {
82
assert(
isPixelInTile
(
x
,
y
));
83
84
return
m_tile_image
->setValue(
x
-
m_x
,
y
-
m_y
, value);
85
}
86
87
std::shared_ptr<VectorImage<T>
>
getImage
() {
88
return
m_tile_image
;
89
}
90
91
int
getTileSize
()
const override
{
92
return
(
m_max_x
-
m_x
) * (
m_max_y
-
m_y
) *
sizeof
(T);
93
}
94
95
virtual
void
saveIfModified
()
override
{
96
if
(
isModified
()) {
97
m_source
->saveTile(*
this
);
98
setModified
(
false
);
99
}
100
}
101
102
int
getPosX
()
const
{
103
return
m_x
;
104
}
105
106
int
getPosY
()
const
{
107
return
m_y
;
108
}
109
110
private
:
111
std::shared_ptr<ImageSource<T>
>
m_source
;
112
int
m_x
,
m_y
;
113
int
m_max_x
,
m_max_y
;
114
std::shared_ptr<VectorImage<T>
>
m_tile_image
;
115
};
116
117
118
}
119
120
121
#endif
/* _SEFRAMEWORK_IMAGE_IMAGETILE_H_ */
SourceXtractor::ImageTile::getPosY
int getPosY() const
Definition:
ImageTile.h:106
std::shared_ptr
STL class.
SourceXtractor::ImageTileBase::~ImageTileBase
virtual ~ImageTileBase()=default
SourceXtractor::ImageTile::setValue
void setValue(int x, int y, T value)
Definition:
ImageTile.h:81
SourceXtractor::ImageTile::getImage
std::shared_ptr< VectorImage< T > > getImage()
Definition:
ImageTile.h:87
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition:
MoffatModelFittingTask.cpp:93
SourceXtractor::ImageTile::m_x
int m_x
Definition:
ImageTile.h:112
SourceXtractor::ImageTile::getTileSize
int getTileSize() const override
Definition:
ImageTile.h:91
SourceXtractor::ImageTileBase::saveIfModified
virtual void saveIfModified()=0
SourceXtractor::ImageTile::ImageTile
ImageTile(int x, int y, int width, int height)
Definition:
ImageTile.h:63
SourceXtractor::ImageTile::getPosX
int getPosX() const
Definition:
ImageTile.h:102
SourceXtractor::ImageTile::m_tile_image
std::shared_ptr< VectorImage< T > > m_tile_image
Definition:
ImageTile.h:114
SourceXtractor::ImageTile::ImageTile
ImageTile(std::shared_ptr< ImageSource< T >> source, int x, int y, int width, int height)
Definition:
ImageTile.h:59
SourceXtractor::ImageTileBase::setModified
void setModified(bool modified)
Definition:
ImageTile.h:42
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition:
MoffatModelFittingTask.cpp:93
SourceXtractor::ImageTileBase::isModified
bool isModified() const
Definition:
ImageTile.h:46
SourceXtractor::ImageTile::m_max_x
int m_max_x
Definition:
ImageTile.h:113
Image.h
SourceXtractor::ImageTile::m_source
std::shared_ptr< ImageSource< T > > m_source
Definition:
ImageTile.h:111
SourceXtractor::ImageTileBase::getTileSize
virtual int getTileSize() const =0
VectorImage.h
SourceXtractor
Definition:
Aperture.h:30
SourceXtractor::VectorImage::create
static std::shared_ptr< VectorImage< T > > create(Args &&... args)
Definition:
VectorImage.h:89
SourceXtractor::ImageTile
Definition:
ImageTile.h:57
SourceXtractor::ImageTile::~ImageTile
virtual ~ImageTile() override
Definition:
ImageTile.h:67
SourceXtractor::ImageTile::m_y
int m_y
Definition:
ImageTile.h:112
SourceXtractor::ImageTile::isPixelInTile
bool isPixelInTile(int x, int y) const
Definition:
ImageTile.h:71
SourceXtractor::ImageSource
Definition:
ImageSource.h:41
SourceXtractor::ImageTileBase::ImageTileBase
ImageTileBase()
Definition:
ImageTile.h:36
SourceXtractor::ImageTile::getValue
T getValue(int x, int y) const
Definition:
ImageTile.h:75
SourceXtractor::ImageTile::m_max_y
int m_max_y
Definition:
ImageTile.h:113
SourceXtractor::ImageTile::saveIfModified
virtual void saveIfModified() override
Definition:
ImageTile.h:95
SourceXtractor::ImageTileBase
Definition:
ImageTile.h:34
SourceXtractor::ImageTileBase::m_modified
bool m_modified
Definition:
ImageTile.h:53
Generated by
1.8.15