GammaLib 2.0.0
Loading...
Searching...
No Matches
GFitsImageULong.hpp
Go to the documentation of this file.
1/***************************************************************************
2 * GFitsImageULong.hpp - Unsigned long image FITS class *
3 * ----------------------------------------------------------------------- *
4 * copyright (C) 2010-2017 by Juergen Knoedlseder *
5 * ----------------------------------------------------------------------- *
6 * *
7 * This program is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * This program is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
19 * *
20 ***************************************************************************/
21/**
22 * @file GFitsImageULong.hpp
23 * @brief Unsigned long image FITS class definition
24 * @author Juergen Knoedlseder
25 */
26
27#ifndef GFITSIMAGEULONG_HPP
28#define GFITSIMAGEULONG_HPP
29
30/* __ Includes ___________________________________________________________ */
31#include "GFitsImage.hpp"
32
33
34/***********************************************************************//**
35 * @class GFitsImageULong
36 *
37 * @brief Unsigned long image FITS class
38 ***************************************************************************/
40
41public:
42 // Constructors and destructors
43 GFitsImageULong(void);
44 GFitsImageULong(const int& nx, const unsigned long* pixels = NULL);
45 GFitsImageULong(const int& nx, const int& ny, const unsigned long* pixels = NULL);
46 GFitsImageULong(const int& nx, const int& ny, const int& nz, const unsigned long* pixels = NULL);
47 GFitsImageULong(const int& nx, const int& ny, const int& nz, const int& nt, const unsigned long* pixels = NULL);
48 GFitsImageULong(const std::vector<int>& naxes, const unsigned long* pixels = NULL);
49 GFitsImageULong(const GFitsImage& image);
50 GFitsImageULong(const GFitsImageULong& image);
51 virtual ~GFitsImageULong(void);
52
53 // Operators
55 unsigned long& operator()(const int& ix);
56 unsigned long& operator()(const int& ix, const int& iy);
57 unsigned long& operator()(const int& ix, const int& iy, const int& iz);
58 unsigned long& operator()(const int& ix, const int& iy, const int& iz, const int& it);
59 const unsigned long& operator()(const int& ix) const;
60 const unsigned long& operator()(const int& ix, const int& iy) const;
61 const unsigned long& operator()(const int& ix, const int& iy, const int& iz) const;
62 const unsigned long& operator()(const int& ix, const int& iy, const int& iz, const int& it) const;
63
64 // Methods
65 void clear(void);
66 GFitsImageULong* clone(void) const;
67 std::string classname(void) const;
68 unsigned long& at(const int& ix);
69 unsigned long& at(const int& ix, const int& iy);
70 unsigned long& at(const int& ix, const int& iy, const int& iz);
71 unsigned long& at(const int& ix, const int& iy, const int& iz, const int& it);
72 const unsigned long& at(const int& ix) const;
73 const unsigned long& at(const int& ix, const int& iy) const;
74 const unsigned long& at(const int& ix, const int& iy, const int& iz) const;
75 const unsigned long& at(const int& ix, const int& iy, const int& iz, const int& it) const;
76 double pixel(const int& ix) const;
77 double pixel(const int& ix, const int& iy) const;
78 double pixel(const int& ix, const int& iy, const int& iz) const;
79 double pixel(const int& ix, const int& iy, const int& iz, const int& it) const;
80 void* pixels(void);
81 int type(void) const;
82
83private:
84 // Private methods
85 void init_members(void);
86 void copy_members(const GFitsImageULong& image);
87 void free_members(void);
88 void alloc_data(void);
89 void init_data(void);
90 void release_data(void);
91 void construct_data(const unsigned long* pixels);
92 void load_data(void) const;
93 void alloc_nulval(const void* value);
94 void* ptr_data(void) { return m_pixels; }
95 void* ptr_nulval(void) { return m_nulval; }
96
97 // Private data area
98 unsigned long* m_pixels; //!< Pixels
99 unsigned long* m_nulval; //!< NULL value
100};
101
102
103/***********************************************************************//**
104 * @brief Return class name
105 *
106 * @return String containing the class name ("GFitsImageULong").
107 ***************************************************************************/
108inline
109std::string GFitsImageULong::classname(void) const
110{
111 return ("GFitsImageULong");
112}
113
114#endif /* GFITSIMAGEULONG_HPP */
Abstract FITS image base class definition.
Unsigned long image FITS class.
void alloc_data(void)
Allocate data.
unsigned long * m_pixels
Pixels.
void free_members(void)
Delete class members.
void load_data(void) const
Load data.
void construct_data(const unsigned long *pixels)
Construct data from array.
void init_members(void)
Initialise class members.
void copy_members(const GFitsImageULong &image)
Copy class members.
double pixel(const int &ix) const
Return value of image pixel.
GFitsImageULong(void)
Void constructor.
void clear(void)
Clear instance.
GFitsImageULong & operator=(const GFitsImageULong &image)
Assignment operator.
void * pixels(void)
Return pointer to image pixel.
void * ptr_data(void)
unsigned long & operator()(const int &ix)
Image pixel access operator.
unsigned long & at(const int &ix)
Image pixel access operator.
virtual ~GFitsImageULong(void)
Destructor.
int type(void) const
Return image type.
GFitsImageULong * clone(void) const
Clone FITS image.
void init_data(void)
Initialise data.
void release_data(void)
Release data.
void * ptr_nulval(void)
unsigned long * m_nulval
NULL value.
void alloc_nulval(const void *value)
Allocates nul value.
std::string classname(void) const
Return class name.
Abstract FITS image base class.
int naxes(const int &axis) const
Return dimension of an image axis.