/* * This file is part of LaTeXDraw. * Copyright (c) 2005-2017 Arnaud BLOUIN * LaTeXDraw is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later version. * LaTeXDraw is distributed without any warranty; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. */ package net.sf.latexdraw.view.pst; import java.awt.geom.Point2D; import net.sf.latexdraw.models.ShapeFactory; import net.sf.latexdraw.models.interfaces.shape.AxesStyle; import net.sf.latexdraw.models.interfaces.shape.BorderPos; import net.sf.latexdraw.models.interfaces.shape.Color; import net.sf.latexdraw.models.interfaces.shape.DotStyle; import net.sf.latexdraw.models.interfaces.shape.FillingStyle; import net.sf.latexdraw.models.interfaces.shape.LineStyle; import net.sf.latexdraw.models.interfaces.shape.PlottingStyle; import net.sf.latexdraw.models.interfaces.shape.TicksStyle; import net.sf.latexdraw.view.latex.DviPsColors; /** * Contains several PSTricks constants. * @author Arnaud Blouin */ public final class PSTricksConstants { /** The size in centimetres of an inch */ public static final double INCH_VAL_CM = 2.54; /** A inch is 72 postscript points */ public static final double INCH_VAL_PT = 72; /** A point is INCH_VAL_PT/INCH_VAL_CM postscript points */ public static final double CM_VAL_PT = INCH_VAL_PT/INCH_VAL_CM; /** For psaxes, the Ox value by default. */ public static final int DEFAULT_OX = 0; /** For psaxes, the Oy value by default. */ public static final int DEFAULT_OY = 0; /** For psaxes, the dx value by default. */ public static final int DEFAULT_DX = 1; /** For psaxes, the dy value by default. */ public static final int DEFAULT_DY = 1; /** The distance between each X label in cm (Dx). */ public static final double DEFAULT_DIST_X_LABEL = 0./CM_VAL_PT; /** The distance between each Y label in cm (Dy). */ public static final double DEFAULT_DIST_Y_LABEL = 0./CM_VAL_PT; /** For psaxes, the showorigin value by default. */ public static final boolean DEFAULT_SHOW_ORIGIN = true; /** The default size of the ticks in cm. */ public static final double DEFAULT_TICKS_SIZE = 4./CM_VAL_PT; /** The text to display when all the labels must be displayed. */ public static final String TOKEN_LABELS_DISPLAYED_ALL = "all"; //$NON-NLS-1$ /** The text to display when only the X labels must be displayed. */ public static final String TOKEN_LABELS_DISPLAYED_X = "x"; //$NON-NLS-1$ /** The text to display when only the Y labels must be displayed. */ public static final String TOKEN_LABELS_DISPLAYED_Y = "y";//$NON-NLS-1$ /** The text to display when no labels must be displayed. */ public static final String TOKEN_LABELS_DISPLAYED_NONE = "none";//$NON-NLS-1$ /** The token when the ticks must be fully shown. */ public static final String TOKEN_TICKS_STYLE_FULL = "full";//$NON-NLS-1$ /** The token when the ticks only the top of them must be shown. */ public static final String TOKEN_TICKS_STYLE_TOP = "top";//$NON-NLS-1$ /** The token when the ticks only the bottom of them must be shown. */ public static final String TOKEN_TICKS_STYLE_BOTTOM = "bottom";//$NON-NLS-1$ /** The text to display when the axes have the axes shape. */ public static final String TOKEN_AXES_STYLE_AXES = "axes";//$NON-NLS-1$ /** The text to display when the axes have the frame shape. */ public static final String TOKEN_AXES_STYLE_FRAME = "frame";//$NON-NLS-1$ /** The text to display when the axes must not be shown. */ public static final String TOKEN_AXES_STYLE_NONE = "none";//$NON-NLS-1$ public static final AxesStyle DEFAULT_AXES_STYLE = AxesStyle.AXES; public static final TicksStyle DEFAULT_TICKS_STYLE = TicksStyle.FULL; public static final PlottingStyle DEFAULT_LABELS_DISPLAYED = PlottingStyle.ALL; public static final PlottingStyle DEFAULT_TICKS_DISPLAYED = PlottingStyle.ALL; /** The first colour of a gradient by default. */ public static final Color DEFAULT_GRADIENT_START_COLOR = ShapeFactory.INST.createColor(0.0, 0.1, 0.95, 1.0); /** The second color of a gradient by default. */ public static final Color DEFAULT_GRADIENT_END_COLOR = ShapeFactory.INST.createColor(0.0, 1.0, 1.0, 1.0); /** The position of the midpoint, as a fraction of the distance from top to bottom. Should be between 0 and 1. */ public static final double DEFAULT_GRADIENT_MID_POINT = .9; /** The number of lines. More lines means finer gradation. */ public static final int DEFAULT_GRADIENT_LINES = 500; /** The angle of the gradient in degree. */ public static final double DEFAULT_GRADIENT_ANGLE = 0; /** The value by default of a missing coordinate : (5,) */ public static final double DEFAULT_VALUE_MISSING_COORDINATE = 1.; /** gangle is the angle of rotation of a diamond and a triangle * around their centre. */ public static final double DEFAULT_GANGLE = 0; /** The token of the parameters : fillstyle = none */ public static final String TOKEN_FILL_NONE = "none";//$NON-NLS-1$ /** The token of the parameters : fillstyle = gradient */ public static final String TOKEN_FILL_GRADIENT = "gradient";//$NON-NLS-1$ /** The token of the parameters : fillstyle = solid */ public static final String TOKEN_FILL_SOLID = "solid";//$NON-NLS-1$ /** The token of the parameters : fillstyle = vlines */ public static final String TOKEN_FILL_VLINES = "vlines";//$NON-NLS-1$ /** The token of the parameters : fillstyle = vlines* */ public static final String TOKEN_FILL_VLINES_F = "vlines*";//$NON-NLS-1$ /** The token of the parameters : fillstyle = hlines */ public static final String TOKEN_FILL_HLINES = "hlines";//$NON-NLS-1$ /** The token of the parameters : fillstyle = hlines* */ public static final String TOKEN_FILL_HLINES_F = "hlines*";//$NON-NLS-1$ /** The token of the parameters : fillstyle = crosshatch */ public static final String TOKEN_FILL_CROSSHATCH = "crosshatch";//$NON-NLS-1$ /** The token of the parameters : fillstyle = crosshatch* */ public static final String TOKEN_FILL_CROSSHATCH_F = "crosshatch*";//$NON-NLS-1$ /** The token of the parameters : cornersize = relative */ public static final String TOKEN_RELATIVE = "relative";//$NON-NLS-1$ /** The token of the parameters : cornersize = absolute */ public static final String TOKEN_ABSOLUTE = "absolute";//$NON-NLS-1$ /** The token of the postscript point unit of length */ public static final String TOKEN_PS_PT = "pt";//$NON-NLS-1$ /** The token of the unit of length : centimeter */ public static final String TOKEN_CM = "cm";//$NON-NLS-1$ /** The token of the unit of length : millimeter */ public static final String TOKEN_MM = "mm";//$NON-NLS-1$ /** The token of the unit of length : inch */ public static final String TOKEN_INCH = "in";//$NON-NLS-1$ /** The style which draw a o and aplus */ public static final String OPLUS_STYLE = "oplus"; //$NON-NLS-1$ /** The style which draw a o and a cross */ public static final String OTIMES_STYLE = "otimes"; //$NON-NLS-1$ /** The style which draw a plus */ public static final String PLUS_STYLE = "+"; //$NON-NLS-1$ /** The style which draw an asterisk */ public static final String ASTERISK_STYLE = "asterisk"; //$NON-NLS-1$ /** The style which draw a triangle */ public static final String TRIANGLE_STYLE = "triangle"; //$NON-NLS-1$ /** The style which draw a square */ public static final String SQUARE_STYLE = "square"; //$NON-NLS-1$ /** The style which draw a diamond */ public static final String DIAMOND_STYLE = "diamond"; //$NON-NLS-1$ /** The style which draw a pentagon */ public static final String PENTAGON_STYLE = "pentagon"; //$NON-NLS-1$ /** The style which draw a o */ public static final String O_STYLE = "o"; //$NON-NLS-1$ /** The style which draw a dot */ public static final String DOT_STYLE = "*"; //$NON-NLS-1$ /** The style which draw a cross */ public static final String X_STYLE = "x"; //$NON-NLS-1$ /** The style which draw a vertical bar */ public static final String BAR_STYLE = "|"; //$NON-NLS-1$ /** The style which draw a full triangle */ public static final String FTRIANGLE_STYLE = "triangle*"; //$NON-NLS-1$ /** The style which draw a full square */ public static final String FSQUARE_STYLE = "square*"; //$NON-NLS-1$ /** The style which draw a full diamond */ public static final String FDIAMOND_STYLE = "diamond*"; //$NON-NLS-1$ /** The style which draw a full pentagon */ public static final String FPENTAGON_STYLE = "pentagon*"; //$NON-NLS-1$ /** Is the special coor activated by default */ public static final boolean DEFAULT_SPECIAL_COOR = false; /** Is the unit of length is rad by default */ public static final boolean DEFAULT_ON_RADIANS = false; /** The angle in degrees by default */ public static final double DEFAULT_DEGREES = 360; /** The width of the line by default (in cm) */ public static final double DEFAULT_LINE_WIDTH = 0.8/CM_VAL_PT; /** Is points are displayed by default */ public static final boolean DEFAULT_SHOW_POINTS = false; /** The radius of arcs drawn at the corner of lines by default (in pt) **/ public static final double DEFAULT_LINE_ARC = 0; /** The radius of rounded corners by default (between 0 and 1) * The radius is compute with : * radius = min(width, height)*1.5*frameArc **/ public static final double DEFAULT_FRAME_ARC = 0; /** Is the corner size relative by default (if not, it's absolute) * If cornersize is relative, then the framearc parameter determines * the radius of the rounded corners for \psframe. If * cornersize is absolute, then the linearc parameter determines the * radius of the rounded corners for \psframe.*/ public static final boolean DEFAULT_CORNER_SIZE_RELATIVE = true; /** The value of arcsepA by default (in pt)*/ public static final double DEFAULT_ARC_SEP_A = 0; /** The value of arcsepB by default (in pt)*/ public static final double DEFAULT_ARC_SEP_B = 0; public static final double DEFAULT_ARC_SEP = 0; /** The curvature parameters control the curvature of a parabola */ public static final double DEFAULT_CURVATURE_NUM1 = 1; /** The curvature parameters control the curvature of a parabola */ public static final double DEFAULT_CRUVATURE_NUM2 = 0.1; /** The curvature parameters control the curvature of a parabola */ public static final double DEFAULT_CRUVATURE_NUM3 = 0; /** The type of the dot by default */ public static final DotStyle DEFAULT_DOT_STYLE = DotStyle.DOT; /** The scale of the dot by default */ public static final double DEFAULT_DOT_SCALE1 = 1; /** The scale of the dot by default */ public static final double DEFAULT_DOT_SCALE2 = 1; /** The angle of the dot by default */ public static final double DEFAULT_DOT_ANGLE = 0; /** The width of the main lines of the grid by default in cm */ public static final double DEFAULT_GRID_WIDTH = 0.8/CM_VAL_PT; /** The size of the labels of a grid by default */ public static final double DEFAULT_GRID_LABEL = 10; /** The size of the sub-grid lines of a grid by default in cm */ public static final double DEFAULT_SUB_GRID_WIDTH = 0.4/CM_VAL_PT; /** The colour of the sub grid by default */ public static final Color DEFAULT_SUB_GRID_COLOR = DviPsColors.GRAY; /** The dimensions of the figure are with reference to the inner boundary. */ public static final String BORDERS_INSIDE = "outer"; //$NON-NLS-1$ /** The dimensions of the figure are with reference to the outter boundary. */ public static final String BORDERS_OUTSIDE = "inner"; //$NON-NLS-1$ /** The dimensions of the figure are with reference to the middle boundary. */ public static final String BORDERS_MIDDLE = "middle"; //$NON-NLS-1$ /** The position of the borders by default */ public static final BorderPos DEFAULT_BORDERS_POS = BorderPos.INTO; /** The colour of the double boundary of the figure by default */ public static final Color DEFAULT_DOUBLE_COLOR = DviPsColors.WHITE; /** The colour of the hatching of the figure by default */ public static final Color DEFAULT_HATCHING_COLOR = DviPsColors.BLACK; /** The colour of the interior of the figure by default */ public static final Color DEFAULT_INTERIOR_COLOR = DviPsColors.WHITE; /** The colour of the borders of the figure by default */ public static final Color DEFAULT_LINE_COLOR = DviPsColors.BLACK; /** The colour of the labels by default */ public static final Color DEFAULT_LABELGRIDCOLOR = DviPsColors.BLACK; /** The colour of the grid by default */ public static final Color DEFAULT_GRIDCOLOR = DviPsColors.BLACK; /** The number of division in a sub-grid by default */ public static final int DEFAULT_SUBGRIDDIV = 5; /** The number of dots in a line of the grid by default */ public static final int DEFAULT_GRIDDOTS = 0; /** The number of dots in a line of the sub-grid by default */ public static final int DEFAULT_SUBGRIDDOTS = 0; /** The unit by default in cm */ public static final double DEFAULT_UNIT = 1; /** The origin of the coordinate system by default */ public static final Point2D.Double DEFAULT_ORIGIN = new Point2D.Double(0,0); /** Is the axes swept by default */ public static final boolean DEFAULT_SWAP_AXES = false; /** The line(s) of the figure are dotted */ public static final String LINE_DOTTED_STYLE = "dotted"; //$NON-NLS-1$ /** The line(s) of the figure are dashed */ public static final String LINE_DASHED_STYLE = "dashed"; //$NON-NLS-1$ /** The line(s) of the figure have no style */ public static final String LINE_NONE_STYLE = "none"; //$NON-NLS-1$ /** The line(s) of the figure are solid */ public static final String LINE_SOLID_STYLE = "solid"; //$NON-NLS-1$ /** The style of the lines by default */ public static final LineStyle DEFAULT_LINE_STYLE = LineStyle.SOLID; /** The black-white dash pattern for the dashed line style (in cm) */ public static final double DEFAULT_DASH_BLACK = 5./CM_VAL_PT; /** The black-white dash pattern for the dashed line style (in cm) */ public static final double DEFAULT_DASH_WHITE = 3./CM_VAL_PT; /** The distance between dots in the dotted line style (in cm) */ public static final double DEFAULT_DOT_STEP = 3./CM_VAL_PT; /** A positive value draws a border of width DEFAULT_BORDER. */ public static final double DEFAULT_BORDER = 0.; /** The colour by default of the border */ public static final Color DEFAULT_BORDER_COLOR = DviPsColors.WHITE; /** Is a double line by default */ public static final boolean DEFAULT_DOUBLE_LINE = false; /** The width of the separation between the double lines */ public static final double DEFAULT_DOUBLE_SEP = 1.25/(DEFAULT_LINE_WIDTH*CM_VAL_PT)/CM_VAL_PT; /** Is there shadow by default */ public static final boolean DEFAULT_SHADOW = false; /** The size of the shadow by default in cm */ public static final double DEFAULT_SHADOW_SIZE = 3/CM_VAL_PT; /** The angle of the shadow by default in degrees */ public static final double DEFAULT_SHADOW_ANGLE = -45; /** The colour of the shadow by default */ public static final Color DEFAULT_SHADOW_COLOR = DviPsColors.DARKGRAY; /** The type of the fill by default */ public static final FillingStyle DEFAULT_FILL_STYLE = FillingStyle.NONE; /** The colour of the filling */ public static final Color DEFAULT_FILL_COLOR = DviPsColors.WHITE; /** The width of the hatching in cm */ public static final double DEFAULT_HATCH_WIDTH = 0.8/CM_VAL_PT; /** The separation between the lines of the hatching in cm */ public static final double DEFAULT_HATCH_SEP = 4/CM_VAL_PT; /** The angle of the hatching by default */ public static final double DEFAULT_HATCH_ANGLE = 45; public static final String LARROW_STYLE = "<"; //$NON-NLS-1$ public static final String RARROW_STYLE = ">"; //$NON-NLS-1$ public static final String DLARROW_STYLE = "<<";//$NON-NLS-1$ public static final String DRARROW_STYLE = ">>";//$NON-NLS-1$ public static final String BAREND_STYLE = "|*";//$NON-NLS-1$ public static final String BARIN_STYLE = "|";//$NON-NLS-1$ public static final String LSBRACKET_STYLE = "[";//$NON-NLS-1$ public static final String RSBRACKET_STYLE = "]";//$NON-NLS-1$ public static final String LRBRACKET_STYLE = "(";//$NON-NLS-1$ public static final String RRBRACKET_STYLE = ")";//$NON-NLS-1$ public static final String CIRCLEEND_STYLE = "o";//$NON-NLS-1$ public static final String CIRCLEIN_STYLE = "oo";//$NON-NLS-1$ public static final String DISKEND_STYLE = "*";//$NON-NLS-1$ public static final String DISKIN_STYLE = "**";//$NON-NLS-1$ public static final String ROUNDEND_STYLE = "c";//$NON-NLS-1$ public static final String ROUNDIN_STYLE = "cc";//$NON-NLS-1$ public static final String SQUAREEND_STYLE = "C";//$NON-NLS-1$ /** Width of arrowheads, in cm */ public static final double DEFAULT_ARROW_SIZE_DIM = 1.5/CM_VAL_PT; /** Width of arrowheads */ public static final double DEFAULT_ARROW_SIZE_NUM = 2.; /** The length of the arrowhead by default*/ public static final double DEFAULT_ARROW_LENGTH = 1.4; /** The inset of the arrowhead by default */ public static final double DEFAULT_ARROW_INSET = 0.4; /** The width of a t-bar,in cm */ public static final double DEFAULT_ARROW_TBARSIZE_DIM = 2/CM_VAL_PT; /** The width of a t-bar */ public static final double DEFAULT_ARROW_TBARSIZE_NUM = 5; /** The height of a square bracket */ public static final double DEFAULT_ARROW_BRACKET_LGTH = 0.15; /** The height of a round bracket */ public static final double DEFAULT_ARROW_RBRACKET_LGTH = 0.15; /** The diameter of a circle in cm */ public static final double DEFAULT_ARROW_DOTSIZE_DIM = 2/CM_VAL_PT; /** The diameter of a circle */ public static final double DEFAULT_ARROW_DOTSIZE_NUM = 2; /** The scale of the arrowhead */ public static final double DEFAULT_ARROW_SCALE1 = 1; /** The scale of the arrowhead */ public static final double DEFAULT_ARROW_SCALE2 = 1; /** Distance between each side of a frame and the enclosed box (in cm). */ public static final double DEFAULT_FRAME_SEP = 3/CM_VAL_PT; /** When true, the box that is produced is the size of the frame or whatever that is drawn around the object. */ public static final boolean DEFAULT_BOX_SEP = true; /** * Allows to know if the kind of filling is valid or not. * @param style The style to check. * @return True is the style is valid. */ public static boolean isValidFillStyle(final String style) { return style != null && (style.equals(TOKEN_FILL_NONE) || style.equals(TOKEN_FILL_HLINES) || style.equals(TOKEN_FILL_HLINES_F) || style.equals(TOKEN_FILL_CROSSHATCH) || style.equals(TOKEN_FILL_CROSSHATCH_F) || style.equals(TOKEN_FILL_VLINES) || style.equals(TOKEN_FILL_VLINES_F) || style.equals(TOKEN_FILL_GRADIENT) || style.equals(TOKEN_FILL_SOLID)); } private PSTricksConstants() { super(); } }