source: trunk/src/Plotting/CutoutPlot.hh @ 1339

Last change on this file since 1339 was 1241, checked in by MatthewWhiting, 11 years ago

Ticket #195 - Large amount of code refactoring the plotting classes into separate ones with inheritance.

File size: 2.8 KB
Line 
1// -----------------------------------------------------------------------
2// CutoutPlot.hh: Definition of the class producing a page of cutout plots
3// -----------------------------------------------------------------------
4// Copyright (C) 2006, Matthew Whiting, ATNF
5//
6// This program is free software; you can redistribute it and/or modify it
7// under the terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 2 of the License, or (at your
9// option) any later version.
10//
11// Duchamp is distributed in the hope that it will be useful, but WITHOUT
12// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14// for more details.
15//
16// You should have received a copy of the GNU General Public License
17// along with Duchamp; if not, write to the Free Software Foundation,
18// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
19//
20// Correspondence concerning Duchamp may be directed to:
21//    Internet email: Matthew.Whiting [at] atnf.csiro.au
22//    Postal address: Dr. Matthew Whiting
23//                    Australia Telescope National Facility, CSIRO
24//                    PO Box 76
25//                    Epping NSW 1710
26//                    AUSTRALIA
27// -----------------------------------------------------------------------
28#ifndef CUTOUTPLOT_H
29#define CUTOUTPLOT_H
30
31#include <string>
32#include <duchamp/Plotting/MultipleDuchampPlot.hh>
33
34namespace duchamp
35{
36
37    /// @brief A namespace to control plotting of the spectral output and the
38    /// spatial image output.
39
40    namespace Plot
41    {
42
43        // These are the constants used for spacing out elements in CutoutPlot.
44        const float cuMainX1 = 1.0;
45        const float cuMainX2 = 15.8;
46        const float cuMainY1 = 1.0;
47        const float cuMainY2 = 3.8;
48        const float cuMapX1 = 16.0;
49
50        class CutoutPlot: public MultipleDuchampPlot
51        {
52        public:
53            CutoutPlot();    ///< Constructor
54            virtual ~CutoutPlot(){}; ///< Destructor
55            CutoutPlot(const CutoutPlot& other);
56            CutoutPlot& operator=(const CutoutPlot& other);
57
58            /// @brief Calculate boundaries for boxes.
59            void calcCoords();
60            /// @brief Write first line of header information (position/velocity info) in correct place.
61            void firstHeaderLine(std::string line);   
62   
63            /// @brief Write second line of header information (fluxes) in correct place.
64            void secondHeaderLine(std::string line); 
65
66            /// @brief Write third line of header information (WCS widths) in correct place.
67            void thirdHeaderLine(std::string line);   
68
69            /// @brief Write fourth line of header information (pixel coordinates) in correct place.
70            void fourthHeaderLine(std::string line);   
71
72            /// @brief Defines the region for the moment map.
73            void gotoMap();
74           
75        };
76
77    }
78
79}
80
81#endif
Note: See TracBrowser for help on using the repository browser.