package org.jzy3d.plot3d.primitives.axes;
import org.jzy3d.colors.Color;
import org.jzy3d.maths.Range;
import org.jzy3d.plot3d.rendering.compat.GLES2CompatUtils;
import com.jogamp.opengl.GL;
public class AxeYLineAnnotation implements AxeAnnotation {
protected float value;
protected Color color = Color.RED;
protected float width = 3;
@Override
public void draw(GL gl, AxeBox axe) {
Range xrange = axe.getBoxBounds().getXRange();
Range zrange = axe.getBoxBounds().getYRange();
if (gl.isGL2()) {
drawLineGL2(gl, xrange, zrange);
} else {
drawLineGLES2(xrange, zrange);
}
}
public void drawLineGLES2(Range yrange, Range zrange) {
GLES2CompatUtils.glBegin(GL.GL_LINE_STRIP);
GLES2CompatUtils.glLineWidth(width);
GLES2CompatUtils.glColor4f(color.r, color.g, color.b, color.a);
GLES2CompatUtils.glVertex3f(value, yrange.getMin(), 0);
GLES2CompatUtils.glVertex3f(value, yrange.getMax(), 0);
GLES2CompatUtils.glEnd();
}
public synchronized void drawLineGL2(GL gl, Range yrange, Range zrange) {
gl.getGL2().glLineWidth(width);
gl.getGL2().glBegin(GL.GL_LINE_STRIP);
gl.getGL2().glColor4f(color.r, color.g, color.b, color.a);
gl.getGL2().glVertex3f(value, yrange.getMin()-yrange.getRange()/30, zrange.getMin()-2);
gl.getGL2().glVertex3f(value, yrange.getMax()+yrange.getRange()/30, zrange.getMin()-2);
gl.getGL2().glEnd();
}
public synchronized float getValue() {
return value;
}
public synchronized void setValue(float value) {
this.value = value;
}
public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
public float getWidth() {
return width;
}
public void setWidth(float width) {
this.width = width;
}
}
Ads help maintain this website.