1 #ifndef teca_cartesian_mesh_h
2 #define teca_cartesian_mesh_h
5 #include "teca_shared_object.h"
13 TECA_DATASET_NEW_INSTANCE()
14 TECA_DATASET_NEW_COPY()
19 TECA_DATASET_METADATA(whole_extent,
unsigned long, 6)
20 TECA_DATASET_METADATA(extent,
unsigned long, 6)
21 TECA_DATASET_METADATA(bounds,
double, 6)
22 TECA_DATASET_METADATA(periodic_in_x,
int, 1)
23 TECA_DATASET_METADATA(periodic_in_y,
int, 1)
24 TECA_DATASET_METADATA(periodic_in_z,
int, 1)
25 TECA_DATASET_METADATA(x_coordinate_variable, std::
string, 1)
26 TECA_DATASET_METADATA(y_coordinate_variable, std::
string, 1)
27 TECA_DATASET_METADATA(z_coordinate_variable, std::
string, 1)
28 TECA_DATASET_METADATA(t_coordinate_variable, std::
string, 1)
31 p_teca_variant_array get_x_coordinates()
32 {
return m_coordinate_arrays->get(
"x"); }
34 const_p_teca_variant_array get_x_coordinates()
const
35 {
return m_coordinate_arrays->get(
"x"); }
38 p_teca_variant_array get_y_coordinates()
39 {
return m_coordinate_arrays->get(
"y"); }
41 const_p_teca_variant_array get_y_coordinates()
const
42 {
return m_coordinate_arrays->get(
"y"); }
45 p_teca_variant_array get_z_coordinates()
46 {
return m_coordinate_arrays->get(
"z"); }
48 const_p_teca_variant_array get_z_coordinates()
const
49 {
return m_coordinate_arrays->get(
"z"); }
52 void set_x_coordinates(
const std::string &name,
53 const p_teca_variant_array &array);
55 void set_y_coordinates(
const std::string &name,
56 const p_teca_variant_array &array);
58 void set_z_coordinates(
const std::string &name,
59 const p_teca_variant_array &array);
63 std::string get_class_name()
const override
64 {
return "teca_cartesian_mesh"; }
67 int get_type_code()
const override;
71 void copy(
const const_p_teca_dataset &)
override;
72 void shallow_copy(
const p_teca_dataset &)
override;
75 void copy_metadata(
const const_p_teca_dataset &other)
override;
78 void swap(p_teca_dataset &)
override;
86 int to_stream(std::ostream &)
const override;
92 p_teca_array_collection m_coordinate_arrays;