mirror of https://github.com/rusefi/jzy3d-api.git
Axe Cross Annotation
This commit is contained in:
parent
b12a603e06
commit
0af957b7ae
|
@ -0,0 +1,31 @@
|
||||||
|
package org.jzy3d.plot3d.primitives.axes;
|
||||||
|
|
||||||
|
import javax.media.opengl.GL;
|
||||||
|
|
||||||
|
import org.jzy3d.maths.Coord2d;
|
||||||
|
import org.jzy3d.maths.Range;
|
||||||
|
|
||||||
|
public class AxeCrossAnnotation extends AxeLineAnnotation implements AxeAnnotation {
|
||||||
|
protected Coord2d value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(GL gl, AxeBox axe) {
|
||||||
|
Range xrange = axe.getBoxBounds().getXRange();
|
||||||
|
Range yrange = axe.getBoxBounds().getYRange();
|
||||||
|
if (gl.isGL2()) {
|
||||||
|
drawHorizontalLineGL2(gl, xrange, value.y);
|
||||||
|
drawVerticalLineGL2(gl, yrange, value.x);
|
||||||
|
} else {
|
||||||
|
drawHorizontalLineGLES2(xrange, value.y);
|
||||||
|
drawVerticalLineGLES2(yrange, value.x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized Coord2d getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized void setValue(Coord2d value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
package org.jzy3d.plot3d.primitives.axes;
|
||||||
|
|
||||||
|
import javax.media.opengl.GL;
|
||||||
|
|
||||||
|
import org.jzy3d.colors.Color;
|
||||||
|
import org.jzy3d.maths.Range;
|
||||||
|
import org.jzy3d.plot3d.rendering.compat.GLES2CompatUtils;
|
||||||
|
|
||||||
|
public class AxeLineAnnotation {
|
||||||
|
protected Color color = Color.RED;
|
||||||
|
protected float width = 3;
|
||||||
|
|
||||||
|
public AxeLineAnnotation() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawVerticalLineGLES2(Range yrange, float value) {
|
||||||
|
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 drawVerticalLineGL2(GL gl, Range yrange, float value) {
|
||||||
|
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, 0);
|
||||||
|
gl.getGL2().glVertex3f(value, yrange.getMax()+yrange.getRange()/30, 0);
|
||||||
|
gl.getGL2().glEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawHorizontalLineGLES2(Range xrange, float value) {
|
||||||
|
GLES2CompatUtils.glBegin(GL.GL_LINE_STRIP);
|
||||||
|
GLES2CompatUtils.glLineWidth(width);
|
||||||
|
GLES2CompatUtils.glColor4f(color.r, color.g, color.b, color.a);
|
||||||
|
GLES2CompatUtils.glVertex3f(xrange.getMin(), value, 0);
|
||||||
|
GLES2CompatUtils.glVertex3f(xrange.getMax(), value, 0);
|
||||||
|
GLES2CompatUtils.glEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized void drawHorizontalLineGL2(GL gl, Range xrange, float value) {
|
||||||
|
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(xrange.getMin()-xrange.getRange()/30, value, 0);
|
||||||
|
gl.getGL2().glVertex3f(xrange.getMax()+xrange.getRange()/30, value, 0);
|
||||||
|
gl.getGL2().glEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,48 +2,22 @@ package org.jzy3d.plot3d.primitives.axes;
|
||||||
|
|
||||||
import javax.media.opengl.GL;
|
import javax.media.opengl.GL;
|
||||||
|
|
||||||
import org.jzy3d.colors.Color;
|
|
||||||
import org.jzy3d.maths.Range;
|
import org.jzy3d.maths.Range;
|
||||||
import org.jzy3d.plot3d.rendering.compat.GLES2CompatUtils;
|
|
||||||
|
|
||||||
public class AxeXLineAnnotation implements AxeAnnotation {
|
public class AxeXLineAnnotation extends AxeLineAnnotation implements AxeAnnotation {
|
||||||
protected float value;
|
protected float value;
|
||||||
protected Color color = Color.RED;
|
|
||||||
protected float width = 3;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(GL gl, AxeBox axe) {
|
public void draw(GL gl, AxeBox axe) {
|
||||||
Range yrange = axe.getBoxBounds().getYRange();
|
Range yrange = axe.getBoxBounds().getYRange();
|
||||||
Range zrange = axe.getBoxBounds().getYRange();
|
|
||||||
if (gl.isGL2()) {
|
if (gl.isGL2()) {
|
||||||
drawLineGL2(gl, yrange, zrange);
|
drawVerticalLineGL2(gl, yrange, value);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
drawLineGLES2(yrange, zrange);
|
drawVerticalLineGLES2(yrange, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
//System.out.println("x=" + value + " y:" + yrange);
|
|
||||||
gl.getGL2().glEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
public synchronized float getValue() {
|
public synchronized float getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
@ -51,21 +25,4 @@ public class AxeXLineAnnotation implements AxeAnnotation {
|
||||||
public synchronized void setValue(float value) {
|
public synchronized void setValue(float value) {
|
||||||
this.value = 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
package org.jzy3d.plot3d.primitives.axes;
|
||||||
|
|
||||||
|
import javax.media.opengl.GL;
|
||||||
|
|
||||||
|
import org.jzy3d.colors.Color;
|
||||||
|
import org.jzy3d.maths.Range;
|
||||||
|
import org.jzy3d.plot3d.rendering.compat.GLES2CompatUtils;
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
//System.out.println("x=" + value + " y:" + yrange);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue