package org.mastodon.detection;

import bdv.spimdata.SpimDataMinimal;
import net.imglib2.Interval;

public class DetectorKeys
{

	/**
	 * Key for the parameter specifying what setup on the
	 * {@link SpimDataMinimal} to perform detection on. Expected values must be
	 * {@link Integer} larger or equal to 0.
	 */
	public static final String KEY_SETUP_ID = "SETUP";

	/**
	 * Default value for the {@link #KEY_SETUP_ID} parameter.
	 */
	public static final int DEFAULT_SETUP_ID = 0;

	/**
	 * Key for the parameter specifying from what time-point on to perform
	 * tracking, inclusive. Expected values must be {@link Integer}s.
	 */
	public static final String KEY_MIN_TIMEPOINT = "MIN_TIMEPOINT";

	/**
	 * Default value for the {@link #KEY_MIN_TIMEPOINT} parameter.
	 */
	public static final int DEFAULT_MIN_TIMEPOINT = 0;

	/**
	 * Key for the parameter specifying up to what time-point on to perform
	 * tracking, inclusive. Expected values must be {@link Integer}s, larger
	 * than {@link #KEY_MIN_TIMEPOINT}.
	 */
	public static final String KEY_MAX_TIMEPOINT = "MAX_TIMEPOINT";

	/**
	 * Default value for the {@link #KEY_MAX_TIMEPOINT} parameter.
	 */
	public static final int DEFAULT_MAX_TIMEPOINT = 0;

	/**
	 * Key for the parameter specifying what is the expected radius of
	 * particles, in units of the global coordinate system. Expected value must
	 * be {@link Double}s larger than 0.
	 */
	public static final String KEY_RADIUS = "RADIUS";

	/**
	 * Default value for the {@link #KEY_RADIUS} parameter.
	 */
	public static final double DEFAULT_RADIUS = 5;

	/**
	 * Key for the parameter specifying the threshold on quality values above
	 * which to discard detections. Expected values are {@link Double}s, larger
	 * than 0.
	 */
	public static final String KEY_THRESHOLD = "THRESHOLD";

	/**
	 * Default value for the {@link #KEY_THRESHOLD} parameter.
	 */
	public static final double DEFAULT_THRESHOLD = 1000.;

	/**
	 * Key for the parameter specifying what portion of the source image to
	 * process, specified as {@link Interval}. A value of <code>null</code>
	 * indicates that the whole image is to be processed.
	 */
	public static final String KEY_ROI = "ROI";

	/**
	 * Default value for the {@link #KEY_ROI} parameter.
	 */
	public static final Interval DEFAULT_ROI = null;

	private DetectorKeys()
	{}
}

@@ -2296,16 +2296,588 @@
  null;%0A%0A
+%09/**%0A%09 * Key for the parameter specifying what to do when adding a detection to a%0A%09 * model that contains an existing detection in the vicinity of the new one.%0A%09 * Expected values are %7B@link String%7Ds defining a behavior that can be%0A%09 * interpreted by the detector implementation. A %3Ccode%3Enull%3C/code%3E value is%0A%09 * acceptable and will results in picking a default behavior.%0A%09 */%0A%09public static final String KEY_ADD_BEHAVIOR = %22ADD_BEHAVIOR%22;%0A%0A%09/**%0A%09 * Default value for the %7B@link #KEY_ADD_BEHAVIOR%7D parameter.%0A%09 */%0A%09public static final String DEFAULT_ADD_BEHAVIOR = null;%0A%0A
 %09private

Add a settings key that lets the user specify what is the detection creator to use.