110 int d_array_data_size;
118 int d_latitude_index_top;
119 int d_latitude_index_bottom;
120 int d_longitude_index_left;
121 int d_longitude_index_right;
123 bool d_bounding_box_set;
124 bool d_longitude_rightmost;
126 Notation d_longitude_notation;
127 LatitudeSense d_latitude_sense;
133 set<string> d_coards_lat_units;
134 set<string> d_coards_lon_units;
136 set<string> d_lat_names;
137 set<string> d_lon_names;
167 void transform_constraint_to_pos_notation(
double &left,
double &right)
const;
170 virtual bool is_bounding_box_valid(
const double left,
const double top,
const double right,
171 const double bottom)
const;
172 void find_longitude_indeces(
double left,
double right,
int &longitude_index_left,
int &longitude_index_right)
const;
179 int &latitude_index_bottom)
const;
182 virtual void flip_latitude_within_array(
libdap::Array &a,
int lat_length,
int lon_length);
184 friend class GridGeoConstraintTest;
192 virtual ~GeoConstraint() {
197 delete[] d_array_data;
204 char *get_array_data()
const {
return d_array_data; }
205 int get_array_data_size()
const {
return d_array_data_size; }
207 double *get_lat()
const {
return d_lat; }
208 double *get_lon()
const {
return d_lon; }
209 void set_lat(
double *lat) { d_lat = lat; }
210 void set_lon(
double *lon) { d_lon = lon; }
212 int get_lat_length()
const {
return d_lat_length; }
213 int get_lon_length()
const {
return d_lon_length; }
214 void set_lat_length(
int len) { d_lat_length = len; }
215 void set_lon_length(
int len) { d_lon_length = len; }
223 int get_latitude_index_top()
const {
return d_latitude_index_top; }
224 int get_latitude_index_bottom()
const {
return d_latitude_index_bottom; }
225 void set_latitude_index_top(
int top) { d_latitude_index_top = top; }
226 void set_latitude_index_bottom(
int bottom) { d_latitude_index_bottom = bottom; }
228 int get_longitude_index_left()
const {
return d_longitude_index_left; }
229 int get_longitude_index_right()
const {
return d_longitude_index_right; }
230 void set_longitude_index_left(
int left) { d_longitude_index_left = left; }
231 void set_longitude_index_right(
int right) { d_longitude_index_right = right; }
233 bool is_bounding_box_set()
const {
return d_bounding_box_set; }
234 bool is_longitude_rightmost()
const {
return d_longitude_rightmost; }
235 void set_longitude_rightmost(
bool state) { d_longitude_rightmost = state; }
237 Notation get_longitude_notation()
const {
return d_longitude_notation; }
238 LatitudeSense get_latitude_sense()
const {
return d_latitude_sense; }
239 void set_longitude_notation(
Notation n) { d_longitude_notation = n; }
240 void set_latitude_sense(
LatitudeSense l) { d_latitude_sense = l; }
242 set<string> get_coards_lat_units()
const {
return d_coards_lat_units; }
243 set<string> get_coards_lon_units()
const {
return d_coards_lon_units; }
245 set<string> get_lat_names()
const {
return d_lat_names; }
246 set<string> get_lon_names()
const {
return d_lon_names; }
249 void set_bounding_box(
double top,
double left,
double bottom,
double right);