
package jp.riken.brain.ni.samuraigraph.base;


import java.util.ArrayList;


/**
 * XY軸のインタフェース
 */

public interface SGIAxisElement extends SGIFigureElement
{


	/**
	 * 
	 */
	public static final int AXIS_HORIZONTAL_1 = 1;


	/**
	 * 
	 */
	public static final int AXIS_HORIZONTAL_2 = -1;


	/**
	 * 
	 */
	public static final int AXIS_PERPENDICULAR_1 = 2;


	/**
	 * 
	 */
	public static final int AXIS_PERPENDICULAR_2 = -2;



	/**
	 * 
	 */
	public static final int VIEW_XY = 0;


	/**
	 * 
	 */
	public static final int VIEW_XZ = 1;


	/**
	 * 
	 */
	public static final int VIEW_YZ = 2;



	/**
	 * 
	 */
	public static final int LOCATION_XAXIS_1 = 1;

	/**
	 * 
	 */
	public static final int LOCATION_XAXIS_2 = 2;

	/**
	 * 
	 */
	public static final int LOCATION_XAXIS_3 = 3;

	/**
	 * 
	 */
	public static final int LOCATION_XAXIS_4 = 4;

	/**
	 * 
	 */
	public static final int LOCATION_YAXIS_1 = 5;

	/**
	 * 
	 */
	public static final int LOCATION_YAXIS_2 = 6;

	/**
	 * 
	 */
	public static final int LOCATION_YAXIS_3 = 7;

	/**
	 * 
	 */
	public static final int LOCATION_YAXIS_4 = 8;

	/**
	 * 
	 */
	public static final int LOCATION_ZAXIS_1 = 9;

	/**
	 * 
	 */
	public static final int LOCATION_ZAXIS_2 = 10;

	/**
	 * 
	 */
	public static final int LOCATION_ZAXIS_3 = 11;

	/**
	 * 
	 */
	public static final int LOCATION_ZAXIS_4 = 12;


	/**
	 * 
	 */
	public static final String AXIS_TOP = "Top";

	/**
	 * 
	 */
	public static final String AXIS_BOTTOM = "Bottom";

	/**
	 * 
	 */
	public static final String AXIS_LEFT = "Left";

	/**
	 * 
	 */
	public static final String AXIS_RIGHT = "Right";



	/**
	 * 
	 * @return
	 */
	public ArrayList getXAxisList();


	/**
	 * 
	 * @return
	 */
	public ArrayList getYAxisList();


	/**
	 * 
	 * @return
	 */
	public ArrayList getZAxisList();



	/**
	 * 
	 * @param axis
	 * @return
	 */
	public ArrayList getAxisList();


	/**
	 * 
	 */
	public ArrayList getHorizontalAxisList();


	/**
	 * 
	 */
	public ArrayList getPerpendicularAxisList();


	/**
	 * 
	 */
	public ArrayList getNormalAxisList();



	/**
	 * 
	 * @param axis
	 * @return
	 */
	public int getConfigurationInCube( final SGAxis axis );


	/**
	 * 
	 */
	public int getConfigurationInPlane( final SGAxis axis );


	/**
	 * 
	 */
	public SGAxis getAxisInCube( final int configurationInCube );


	/**
	 * 
	 */
	public SGAxis getAxisInPlane( final int configurationInPlane );


	/**
	 * 
	 * @return
	 */
	public int getConfigurationInPlaneByCube( final int configurationInCube );


	/**
	 * 
	 */
	public String getConfigurationStringInPlaneByCube( final int configuraionInCube );


	/**
	 * 
	 */
	public int getConfigurationInCubeFromStringInPlane( final String str );


	/**
	 * 
	 */
	public boolean getTimingElementList(
		final ArrayList axisList,
		final ArrayList elementListListList,
		final ArrayList valueListList );


	/**
	 * 
	 * @return
	 */
	public boolean setSpaceAxisLineAndNumber( final float space );


	/**
	 * 
	 * @return
	 */
	public boolean setSpaceNumberAndTitle( final float space );




	/**
	 * 
	 */
	public float getSpaceAxisLineAndNumber();


	/**
	 * 
	 */
	public float getSpaceNumberAndTitle();



	/**
	 * 
	 */
	public float getNumberFontSize();


	/**
	 * 
	 */
	public float getTitleFontSize();


	/**
	 * 
	 */
	public boolean addTimingLine( final int x, final int y );



	public static final String PF_AXIS_TITLE = "[Axis]";
	public static final String PF_VIEW_DIRECTION = "View Direction";
	public static final String PF_FRAME_LINE_VISIBLE = "Frame Lines Visible";
	public static final String PF_FRAME_LINE_WIDTH = "Frame Line Width";
	public static final String PF_FRAME_LINE_COLOR = "Frame Line Color";
	public static final String PF_LINE_COLOR = "Line Color";
	public static final String PF_AXIS_LINE_WIDTH = "Axis Line Width";
	public static final String PF_SCALE_LINE_WIDTH = "Scale Line Width";
	public static final String PF_SCALE_LINE_LENGTH = "Scale Line Length";

	public static final String PF_INDIVIDUAL_AXIS_TITLE = "<Axis>";
	public static final String PF_AXIS_LOCATION = "Location";
	public static final String PF_AXIS_MIN_VALUE = "Axis Min Value";
	public static final String PF_AXIS_MAX_VALUE = "Axis Max Value";
	public static final String PF_AXIS_SCALE_TYPE = "Axis Scale Type";
	public static final String PF_INCREMENT_VALUE = "Increment Value";
	public static final String PF_INCREMENT_REFERECE_VALUE = "Increment Reference Value";
	public static final String PF_AUTO_CALC_SCALE_NUMBERS = "Auto Calculation Axis Number";
	public static final String PF_TITLE_STRING = "Title String";
	public static final String PF_AXIS_VISIBLE = "Axis Visible";
	public static final String PF_TITLE_VISIBLE = "Title Visible";
	public static final String PF_SCALE_LINES_VISIBLE = "Scale Lines Visible";
	public static final String PF_SCALE_NUMBERS_VISIBLE = "Scale Numbers Visible";
	public static final String PF_SCALE_LINES_INSIDE = "Scale Lines Inside";
	public static final String PF_SCALE_NUMBERS_INTEGER = "Scale Numbers Integer";
	public static final String PF_EXPONENT_FLAG = "Exponent";
	public static final String PF_EXPONENT_VALUE = "Exponent Value";


	public static final String PF_TIMING_ELEMENTS_TITLE = "<Timing Element>";
	public static final String PF_TIMING_VALUE = "Value";
	public static final String PF_TIMING_ELEMENTS_END = "Timing groupSet end";



}

