4 #include "teca_config.h"
5 #include "teca_dataset.h"
6 #include "teca_metadata.h"
7 #include "teca_array_collection.h"
10 TECA_SHARED_OBJECT_FORWARD_DECL(
teca_mesh)
25 TECA_DATASET_METADATA(time,
double, 1)
26 TECA_DATASET_METADATA(calendar, std::string, 1)
27 TECA_DATASET_METADATA(time_units, std::string, 1)
28 TECA_DATASET_METADATA(time_step,
unsigned long, 1)
37 p_teca_array_collection &get_arrays(
int centering);
38 const_p_teca_array_collection get_arrays(
int centering)
const;
44 {
return m_impl->point_arrays; }
46 const_p_teca_array_collection get_point_arrays()
const
47 {
return m_impl->point_arrays; }
54 {
return m_impl->cell_arrays; }
56 const_p_teca_array_collection get_cell_arrays()
const
57 {
return m_impl->cell_arrays; }
64 {
return m_impl->x_edge_arrays; }
66 const_p_teca_array_collection get_x_edge_arrays()
const
67 {
return m_impl->x_edge_arrays; }
69 p_teca_array_collection &get_y_edge_arrays()
70 {
return m_impl->y_edge_arrays; }
72 const_p_teca_array_collection get_y_edge_arrays()
const
73 {
return m_impl->y_edge_arrays; }
75 p_teca_array_collection &get_z_edge_arrays()
76 {
return m_impl->z_edge_arrays; }
78 const_p_teca_array_collection get_z_edge_arrays()
const
79 {
return m_impl->z_edge_arrays; }
86 {
return m_impl->x_face_arrays; }
88 const_p_teca_array_collection get_x_face_arrays()
const
89 {
return m_impl->x_face_arrays; }
91 p_teca_array_collection &get_y_face_arrays()
92 {
return m_impl->y_face_arrays; }
94 const_p_teca_array_collection get_y_face_arrays()
const
95 {
return m_impl->y_face_arrays; }
97 p_teca_array_collection &get_z_face_arrays()
98 {
return m_impl->z_face_arrays; }
100 const_p_teca_array_collection get_z_face_arrays()
const
101 {
return m_impl->z_face_arrays; }
108 {
return m_impl->info_arrays; }
110 const_p_teca_array_collection get_information_arrays()
const
111 {
return m_impl->info_arrays; }
115 virtual unsigned long get_number_of_points()
const = 0;
118 virtual unsigned long get_number_of_cells()
const = 0;
121 bool empty() const noexcept override;
124 void copy(const const_p_teca_dataset &other,
125 allocator alloc = allocator::malloc) override;
128 void shallow_copy(const p_teca_dataset &other) override;
132 void append_arrays(const const_p_teca_mesh &);
133 void shallow_append_arrays(const p_teca_mesh &);
136 void swap(const p_teca_dataset &) override;
144 int to_stream(std::ostream &) const override;
145 int from_stream(std::istream &)
override {
return -1; }
160 p_teca_array_collection cell_arrays;
161 p_teca_array_collection x_edge_arrays;
162 p_teca_array_collection y_edge_arrays;
163 p_teca_array_collection z_edge_arrays;
164 p_teca_array_collection x_face_arrays;
165 p_teca_array_collection y_face_arrays;
166 p_teca_array_collection z_face_arrays;
167 p_teca_array_collection point_arrays;
168 p_teca_array_collection info_arrays;
169 p_teca_array_collection invalid;
171 std::shared_ptr<impl_t> m_impl;