function SnapContext() {

  /**
   * Map<String, SnapPoints> mapping drop targets to
   * a list of possible snappings.
   *
   * @type {Object}
   */
  this._targets = {};

  /**
   * Map<String, Point> initial positioning of element
   * regarding various snap directions.
   *
   * @type {Object}
   */
  this._snapOrigins = {};

  /**
   * List of snap locations
   *
   * @type {Array<string>}
   */
  this._snapLocations = [];

  /**
   * Map<String, Array<Point>> of default snapping locations
   *
   * @type {Object}
   */
  this._defaultSnaps = {};
}
/**
 * A snap context, containing the (possibly incomplete)
 * mappings of drop targets (to identify the snapping)
 * to computed snap points.
 */
A snap context, containing the (possibly incomplete)
mappings of drop targets (to identify the snapping)
to computed snap points.
A snap context containing the ( possibly incomplete ) mappings of drop targets ( to identify the snapping ) to computed snap points .
function SnapContext() {
  this._targets = {};
  this._snapOrigins = {};
  this._snapLocations = [];
  this._defaultSnaps = {};
}
function SnapContext ( ) { this . _targets = { } ; this . _snapOrigins = { } ; this . _snapLocations = [ ] ; this . _defaultSnaps = { } ; }
A snap context, containing the (possibly incomplete)
 mappings of drop targets (to identify the snapping)
 to computed snap points.
A snap context containing the ( possibly incomplete ) mappings of drop targets ( to identify the snapping ) to computed snap points .
/**
   * Map<String, SnapPoints> mapping drop targets to
   * a list of possible snappings.
   *
   * @type {Object}
   */ /**
   * Map<String, Point> initial positioning of element
   * regarding various snap directions.
   *
   * @type {Object}
   */ /**
   * List of snap locations
   *
   * @type {Array<string>}
   */ /**
   * Map<String, Array<Point>> of default snapping locations
   *
   * @type {Object}
   */