NAPISD
PAHdb website C++ backend
Loading...
Searching...
No Matches
Panels.h
1#ifndef _PANELS_H_
2#define _PANELS_H_
3
4#include "Axis.h"
5#include "CanvasItem.h"
6#include "Plot.h"
7
8#include <array>
9
10class Panels : public CanvasItem {
11
12public:
13 typedef std::vector<std::unique_ptr<CanvasItem>>::iterator iterator;
14
15 Panels();
16 Panels(Panels const &other);
17 Panels *clone() const;
18 CanvasItem &operator[](std::size_t idx);
19
20 iterator begin() noexcept { return _items.begin(); }
21
22 iterator end() noexcept { return _items.end(); }
23
24 void add(CanvasItem &item);
25
26 void add(std::vector<Plot> &plot);
27
28 void erase();
29
30 void erase(std::vector<std::unique_ptr<CanvasItem>>::iterator begin,
31 std::vector<std::unique_ptr<CanvasItem>>::iterator end);
32
33 void setXMargins(const std::array<double, 2> &margins);
34
35 std::array<double, 2> const &getXMargins() const;
36
37 void setYMargins(const std::array<double, 2> &margins);
38
39 std::array<double, 2> const &getYMargins() const;
40
41 void setLayout(int columns, int rows);
42
43 void setColumns(int columns);
44
45 const int &getColumns() const;
46
47 void setRows(int rows);
48
49 const int &getRows() const;
50
51private:
52 std::vector<std::unique_ptr<CanvasItem>> _items;
53
54 std::array<double, 2> _xmargins;
55
56 std::array<double, 2> _ymargins;
57
58 int _columns;
59
60 int _rows;
61};
62
63inline CanvasItem &Panels::operator[](std::size_t idx) {
64 return (*_items[idx]);
65}
66
67inline void Panels::erase() { _items.erase(_items.begin(), _items.end()); }
68
69inline void
70Panels::erase(std::vector<std::unique_ptr<CanvasItem>>::iterator begin,
71 std::vector<std::unique_ptr<CanvasItem>>::iterator end) {
72 _items.erase(begin, end);
73}
74
75inline void Panels::setXMargins(const std::array<double, 2> &margins) {
76 _xmargins = margins;
77}
78
79inline void Panels::setYMargins(const std::array<double, 2> &margins) {
80 _ymargins = margins;
81}
82
83inline std::array<double, 2> const &Panels::getXMargins() const {
84 return (_xmargins);
85}
86
87inline std::array<double, 2> const &Panels::getYMargins() const {
88 return (_ymargins);
89}
90
91inline void Panels::setLayout(int columns, int rows) {
92 _columns = columns;
93 _rows = rows;
94}
95
96inline void Panels::setColumns(int columns) { _columns = columns; }
97
98inline const int &Panels::getColumns() const { return (_columns); }
99
100inline void Panels::setRows(int rows) { _rows = rows; }
101
102inline const int &Panels::getRows() const { return (_rows); }
103
104#endif /* _PANELS_H_ */

Since FY2019 the NASA Ames PAH IR Spectroscopic Database is being supported through a directed Work Package at NASA Ames titled: "Laboratory Astrophysics - The NASA Ames PAH IR Spectroscopic Database".
Since FY2023 the NASA Ames PAH IR Spectroscopic Database is being supported through the Laboratory Astrophysics Rd 2 directed Work Package at NASA Ames.
© Copyright 2021-2025, Christiaan Boersma