<commit_before>/*
 *    Debrief - the Open Source Maritime Analysis Application
 *    http://debrief.info
 *
 *    (C) 2000-2014, PlanetMayo Ltd
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the Eclipse Public License v1.0
 *    (http://www.eclipse.org/legal/epl-v10.html)
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 */
// @Author : <NAME>
// @Project: Debrief 3
// @File   : PlainProjection.java

package MWC.Algorithms;


import java.awt.Point;
import java.beans.IntrospectionException;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyDescriptor;
import java.io.Serializable;

import MWC.GUI.Editable;
import MWC.GenericData.WorldArea;
import MWC.GenericData.WorldLocation;

/**
 * interface describing how to transform from
 * earth coordinates to screen coordinates
 */
abstract public class PlainProjection implements Serializable,
  Editable
{

  /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

/**
   * event name for zoom
   */
  public static final String ZOOM_EVENT = "Zoom";

  /**
   * event name for this projection being replaced by another<commit_msg>introduce marker interface for classes that want to know when the projection has changed<commit_after>/*
 *    Debrief - the Open Source Maritime Analysis Application
 *    http://debrief.info
 *
 *    (C) 2000-2014, PlanetMayo Ltd
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the Eclipse Public License v1.0
 *    (http://www.eclipse.org/legal/epl-v10.html)
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 */
// @Author : <NAME>
// @Project: Debrief 3
// @File   : PlainProjection.java

package MWC.Algorithms;


import java.awt.Point;
import java.beans.IntrospectionException;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyDescriptor;
import java.io.Serializable;

import MWC.GUI.Editable;
import MWC.GenericData.WorldArea;
import MWC.GenericData.WorldLocation;

/**
 * interface describing how to transform from
 * earth coordinates to screen coordinates
 */
abstract public class PlainProjection implements Serializable,
  Editable
{
	
	/** marker interface for layers that wish to know when the viewport has been changed
	 * 
	 * @author ian
	 *
	 */
	public static interface ViewportChangedListener
	{
	}

  /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

/**
   * event name for zoom
   */
  public static final String ZOOM_EVENT = "Zoom";

  /**
   * event name for this projection being replaced by another
{'fraction_non_alphanumeric': 0.08439811701412239, 'fraction_numerical': 0.00941492938802959, 'mean_word_length': 3.5910493827160495, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7057377', 'n_tokens_mistral': 862, 'n_tokens_neox': 815, 'n_words': 300}