com.orsoncharts.marker.MarkerLine Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of orsoncharts Show documentation
Show all versions of orsoncharts Show documentation
Orson Charts is a 3D chart library for the Java platform.
The newest version!
/* ===========================================================
* Orson Charts : a 3D chart library for the Java(tm) platform
* ===========================================================
*
* (C)opyright 2013-2016, by Object Refinery Limited. All rights reserved.
*
* http://www.object-refinery.com/orsoncharts/index.html
*
* This program 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 3 of the License, or
* (at your option) any later version.
*
* This program 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. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
* [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.]
*
* If you do not wish to be bound by the terms of the GPL, an alternative
* commercial license can be purchased. For details, please see visit the
* Orson Charts home page:
*
* http://www.object-refinery.com/orsoncharts/index.html
*
*/
package com.orsoncharts.marker;
import java.awt.geom.Point2D;
/**
* A data object that represents a line within a {@link MarkerData} structure.
*
* @since 1.2
*/
public class MarkerLine {
/** The relative position along the axis (in the range 0.0 to 1.0). */
private double pos;
/**
* A flag indicating whether or not the line is pegged at the boundary of
* the axis. If the line is pegged, then it is not drawn (since it lies
* outside the visible range of the chart.
*/
private boolean pegged;
/** The vertex index for the start of the line. */
private int v0;
/** The vertex index for the end of the line. */
private int v1;
/** The projected start point. */
private Point2D startPoint;
/** The projected end point. */
private Point2D endPoint;
/**
* Creates a new marker line.
*
* @param pos the relative position (in the range 0.0 to 1.0).
* @param pegged a flag indicating whether or not the line has been
* pegged to the end of the range.
*/
public MarkerLine(double pos, boolean pegged) {
this(pos, pegged, -1, -1);
}
/**
* Creates a new marker line with vertex indices.
*
* @param pos the relative position (in the range 0.0 to 1.0).
* @param pegged a flag indicating whether or not the line has been
* pegged to the end of the range.
* @param v0 the index of the first vertex.
* @param v1 the index of the second vertex.
*/
public MarkerLine(double pos, boolean pegged, int v0, int v1) {
this.pos = pos;
this.pegged = pegged;
this.v0 = v0;
this.v1 = v1;
this.startPoint = null;
this.endPoint = null;
}
/**
* Returns the relative position of the line along the axis.
*
* @return The relative position of the line along the axis.
*/
public double getPos() {
return this.pos;
}
/**
* Returns {@code true} if the line is pegged, and {@code false}
* otherwise. This is used for range markers to indicate that the value
* represented by the line falls outside the current axis range, so the
* line has been moved to the nearest axis boundary ("pegged" to the axis
* range).
*
* @return A boolean.
*/
public boolean isPegged() {
return this.pegged;
}
/**
* Returns the index of the vertex for the start of the line.
*
* @return The index.
*/
public int getV0() {
return this.v0;
}
/**
* Sets the index of the vertex for the start of the line.
*
* @param v0 the index.
*/
public void setV0(int v0) {
this.v0 = v0;
}
/**
* Returns the index of the vertex for the end of the line.
*
* @return The index.
*/
public int getV1() {
return this.v1;
}
/**
* Sets the index of the vertex for the end of the line.
*
* @param v1 the index.
*/
public void setV1(int v1) {
this.v1 = v1;
}
/**
* Returns the projected starting point for the line.
*
* @return The projected starting point (possibly {@code null}).
*/
Point2D getStartPoint() {
return this.startPoint;
}
/**
* Sets the projected starting point for the line.
*
* @param pt the projected point.
*/
public void setStartPoint(Point2D pt) {
this.startPoint = pt;
}
/**
* Returns the projected ending point for the line.
*
* @return The projected ending point (possibly {@code null}).
*/
Point2D getEndPoint() {
return this.endPoint;
}
/**
* Sets the projected ending point for the line.
*
* @param pt the projected point.
*/
public void setEndPoint(Point2D pt) {
this.endPoint = pt;
}
}