/**
* @fileoverview Typedefs for the core BlomURBEX Web API.
* Created 23/03/2017.
* @author josea.hernandez@blom.no (Jose Antonio Hernandez)
* @copyright Blom Data S.L. 2017
*/
goog.provide('bu.Coordinate');
goog.provide('bu.Extent');
goog.provide('bu.LayoutView');
goog.provide('bu.Layout');
goog.provide('bu.WorkspaceOptions');
/**
* An array of any number of numbers representing an xy, xyz or zyzm coordinate.
* Example: `[16, 48]`, `[20.50, 47.60, 1225.0]`, `[15, 60.5, 150.6, 12]`.
* First number is always interpreted as X coordinate or longitude, second as Y
* or latitude, third, if exists, as Z, and fourth, if exists, as M. Fifth and
* following numbers are ignored because usually they do not have meaning in
* geographic apps.
* The reference system is not provided in it, and must be known or stored in
* and appropiate class object.
* @typedef {Array.<number>}
*/
bu.Coordinate;
/**
* An array of numbers representing an extent in 2D: `[minx, miny, maxx, maxy]`.
* minx and maxx values represent X or longitude coordinates.
* miny and maxy values represent Y or latitude coordinates.
* The reference system is not provided in it, and must be known or stored in
* and appropiate class object.
* @typedef {Array.<number>}
*/
bu.Extent;
/**
* Each of the views that compose a {@linlk bu.Layout}
* column is the column in which the view lays. If
* two views must be in the same column then the value is
* the same.
* @typedef {{column: number,
* viewer: Object,
* syncedViews: (Array.<number>|undefined)
* }}
*/
bu.LayoutView;
/**
* A collection of {@link bu.LayoutView} with a name.
* @typedef {{name: (string|undefined),
* views: (Array.<bu.LayoutView>|undefined)
* }}
*/
bu.Layout;
/**
* Options for {@link bu.Workspace}.
* @typedef {{layout: (bu.Layout|undefined),
* target: (Element|string|undefined)
* }}
*/
bu.WorkspaceOptions;
/**
* Options for {@link bu.Viewer}.
* @typedef {{
* target: (Element|string|undefined)
* }}
*/
bu.ViewerOptions;