Source: bu/typedefs.js

/**
 * @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;