SourceXtractorPlusPlus
0.11
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
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_ */
std::shared_ptr
SourceXtractor::ImageTileBase::~ImageTileBase
virtual ~ImageTileBase()=default
SourceXtractor::ImageTile::setValue
void setValue(int x, int y, T value)
Definition:
ImageTile.h:81
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::ImageTile::getPosX
int getPosX() const
Definition:
ImageTile.h:102
SourceXtractor::ImageTileBase::saveIfModified
virtual void saveIfModified()=0
SourceXtractor::ImageTile::ImageTile
ImageTile(int x, int y, int width, int height)
Definition:
ImageTile.h:63
SourceXtractor::VectorImage::create
static std::shared_ptr< VectorImage< T > > create(Args &&...args)
Definition:
VectorImage.h:89
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::ImageTile::getPosY
int getPosY() const
Definition:
ImageTile.h:106
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::ImageTile::m_max_x
int m_max_x
Definition:
ImageTile.h:113
Image.h
SourceXtractor::ImageTile::isPixelInTile
bool isPixelInTile(int x, int y) const
Definition:
ImageTile.h:71
SourceXtractor::ImageTile::m_source
std::shared_ptr< ImageSource< T > > m_source
Definition:
ImageTile.h:111
SourceXtractor::ImageTile::getValue
T getValue(int x, int y) const
Definition:
ImageTile.h:75
SourceXtractor::ImageTileBase::getTileSize
virtual int getTileSize() const =0
VectorImage.h
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::ImageSource
Definition:
ImageSource.h:41
SourceXtractor::ImageTileBase::isModified
bool isModified() const
Definition:
ImageTile.h:46
ModelFitting::height
height
Definition:
CompactModelBase.icpp:16
SourceXtractor::ImageTileBase::ImageTileBase
ImageTileBase()
Definition:
ImageTile.h:36
SourceXtractor::ImageTile::m_max_y
int m_max_y
Definition:
ImageTile.h:113
SourceXtractor::ImageTile::saveIfModified
virtual void saveIfModified() override
Definition:
ImageTile.h:95
ModelFitting::width
width
Definition:
CompactModelBase.icpp:16
SourceXtractor::ImageTileBase
Definition:
ImageTile.h:34
SourceXtractor::ImageTileBase::m_modified
bool m_modified
Definition:
ImageTile.h:53
SourceXtractor::ImageTile::getImage
std::shared_ptr< VectorImage< T > > & getImage()
Definition:
ImageTile.h:87
Generated by
1.8.5