4 #include "teca_dataset.h"
5 #include "teca_metadata.h"
6 #include "teca_array_collection.h"
24 TECA_DATASET_METADATA(time,
double, 1)
25 TECA_DATASET_METADATA(calendar, std::string, 1)
26 TECA_DATASET_METADATA(time_units, std::string, 1)
27 TECA_DATASET_METADATA(time_step,
unsigned long, 1)
36 p_teca_array_collection &get_arrays(
int centering);
37 const_p_teca_array_collection get_arrays(
int centering)
const;
43 {
return m_impl->point_arrays; }
45 const_p_teca_array_collection get_point_arrays()
const
46 {
return m_impl->point_arrays; }
53 {
return m_impl->cell_arrays; }
55 const_p_teca_array_collection get_cell_arrays()
const
56 {
return m_impl->cell_arrays; }
63 {
return m_impl->x_edge_arrays; }
65 const_p_teca_array_collection get_x_edge_arrays()
const
66 {
return m_impl->x_edge_arrays; }
68 p_teca_array_collection &get_y_edge_arrays()
69 {
return m_impl->y_edge_arrays; }
71 const_p_teca_array_collection get_y_edge_arrays()
const
72 {
return m_impl->y_edge_arrays; }
74 p_teca_array_collection &get_z_edge_arrays()
75 {
return m_impl->z_edge_arrays; }
77 const_p_teca_array_collection get_z_edge_arrays()
const
78 {
return m_impl->z_edge_arrays; }
85 {
return m_impl->x_face_arrays; }
87 const_p_teca_array_collection get_x_face_arrays()
const
88 {
return m_impl->x_face_arrays; }
90 p_teca_array_collection &get_y_face_arrays()
91 {
return m_impl->y_face_arrays; }
93 const_p_teca_array_collection get_y_face_arrays()
const
94 {
return m_impl->y_face_arrays; }
96 p_teca_array_collection &get_z_face_arrays()
97 {
return m_impl->z_face_arrays; }
99 const_p_teca_array_collection get_z_face_arrays()
const
100 {
return m_impl->z_face_arrays; }
107 {
return m_impl->info_arrays; }
109 const_p_teca_array_collection get_information_arrays()
const
110 {
return m_impl->info_arrays; }
114 virtual unsigned long get_number_of_points()
const = 0;
117 virtual unsigned long get_number_of_cells()
const = 0;
120 bool empty() const noexcept override;
124 void copy(const const_p_teca_dataset &) override;
125 void shallow_copy(const p_teca_dataset &) override;
129 void append_arrays(const const_p_teca_mesh &);
130 void shallow_append_arrays(const p_teca_mesh &);
133 void swap(const p_teca_dataset &) override;
141 int to_stream(std::ostream &) const override;
142 int from_stream(std::istream &)
override {
return -1; }
152 p_teca_array_collection cell_arrays;
153 p_teca_array_collection x_edge_arrays;
154 p_teca_array_collection y_edge_arrays;
155 p_teca_array_collection z_edge_arrays;
156 p_teca_array_collection x_face_arrays;
157 p_teca_array_collection y_face_arrays;
158 p_teca_array_collection z_face_arrays;
159 p_teca_array_collection point_arrays;
160 p_teca_array_collection info_arrays;
161 p_teca_array_collection invalid;
163 std::shared_ptr<impl_t> m_impl;