1 #ifndef teca_cartesian_mesh_source_h
2 #define teca_cartesian_mesh_source_h
4 #include "teca_config.h"
5 #include "teca_algorithm.h"
6 #include "teca_metadata.h"
30 field_generator_callback generator;
38 return l.name == r.name;
44 return l.name != r.name;
76 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
77 TECA_SET_ALGORITHM_PROPERTIES()
85 TECA_ALGORITHM_PROPERTY(
unsigned int, coordinate_type_code)
94 TECA_ALGORITHM_PROPERTY(
unsigned int, field_type_code)
103 TECA_ALGORITHM_VECTOR_PROPERTY(
unsigned long, whole_extent)
111 int set_spatial_extents(const
teca_metadata &md,
bool three_d = true);
120 TECA_ALGORITHM_VECTOR_PROPERTY(
double, bound)
127 int set_spatial_bounds(const
teca_metadata &md,
bool three_d = true);
137 void set_x_axis_variable(const std::
string &name);
142 void set_x_axis_variable(const std::
string &name, const
teca_metadata &atts);
158 void set_y_axis_variable(const std::
string &name);
163 void set_y_axis_variable(const std::
string &name, const
teca_metadata &atts);
179 void set_z_axis_variable(const std::
string &name);
184 void set_z_axis_variable(const std::
string &name, const
teca_metadata &atts);
200 void set_t_axis_variable(const std::
string &name);
203 void set_calendar(const std::
string &calendar, const std::
string &units);
208 void set_t_axis_variable(const std::
string &name,
254 void append_field_generator(const std::
string &name,
255 const
teca_metadata &atts, field_generator_callback &callback);
278 const_p_teca_dataset execute(
unsigned int port,
279 const std::vector<const_p_teca_dataset> &input_data,
283 void set_modified() override;
286 void clear_cached_metadata();
289 unsigned int coordinate_type_code;
290 unsigned int field_type_code;
291 std::
string x_axis_variable;
292 std::
string y_axis_variable;
293 std::
string z_axis_variable;
294 std::
string t_axis_variable;
299 std::vector<
unsigned long> whole_extents;
300 std::vector<
double> bounds;
305 internals_t *internals;