package org.jzy3d.plot3d.primitives.log;
import java.util.ArrayList;
import java.util.List;
import org.jzy3d.maths.BoundingBox3d;
import org.jzy3d.maths.Coord3d;
import org.jzy3d.plot3d.primitives.LineStrip;
import org.jzy3d.plot3d.primitives.Point;
import org.jzy3d.plot3d.rendering.compat.GLES2CompatUtils;
import org.jzy3d.plot3d.transform.space.SpaceTransformer;
import com.jogamp.opengl.GL;
public class AxeTransformableLineStrip extends LineStrip {
public AxeTransformableLineStrip(SpaceTransformer transformers) {
this(2, transformers);
}
public AxeTransformableLineStrip(int n, SpaceTransformer transformers) {
this.transformers = transformers;
points = new ArrayList(n);
bbox = new BoundingBox3d();
for (Point p : points)
bbox.add(p);
setWireframeColor(null);
}
public AxeTransformableLineStrip(List coords, SpaceTransformer transformers) {
this(transformers);
for (Coord3d c : coords) {
Point p = new Point(c);
add(p);
}
}
public AxeTransformableLineStrip(Point c1, Point c2,SpaceTransformer transformers) {
this(transformers);
add(c1);
add(c2);
}
@Override
public void drawLineGLES2() {
GLES2CompatUtils.glBegin(GL.GL_LINE_STRIP);
if (wfcolor == null) {
for (Point p : points) {
GLES2CompatUtils.glColor4f(p.rgb.r, p.rgb.g, p.rgb.b, p.rgb.a);
GLES2CompatUtils.glVertex3f(transformers.getX().compute(p.xyz.x), transformers.getY().compute(p.xyz.y), transformers.getZ().compute(p.xyz.z));
}
} else {
for (Point p : points) {
GLES2CompatUtils.glColor4f(wfcolor.r, wfcolor.g, wfcolor.b, wfcolor.a);
GLES2CompatUtils.glVertex3f(transformers.getX().compute(p.xyz.x), transformers.getY().compute(p.xyz.y), transformers.getZ().compute(p.xyz.z));
}
}
GLES2CompatUtils.glEnd();
}
@Override
public void drawLineGL2(GL gl) {
gl.getGL2().glBegin(GL.GL_LINE_STRIP);
if (wfcolor == null) {
for (Point p : points) {
gl.getGL2().glColor4f(p.rgb.r, p.rgb.g, p.rgb.b, p.rgb.a);
GlVertexExecutor.Vertex(gl, new Coord3d(p.xyz.x, p.xyz.y, p.xyz.z), transformers);
}
} else {
for (Point p : points) {
gl.getGL2().glColor4f(wfcolor.r, wfcolor.g, wfcolor.b, wfcolor.a);
GlVertexExecutor.Vertex(gl, new Coord3d(p.xyz.x, p.xyz.y, p.xyz.z), transformers);
}
}
gl.getGL2().glEnd();
}
@Override
public void drawPoints(GL gl) {
if (showPoints) {
if (gl.isGL2()) {
drawPointsGL2(gl);
} else {
drawPointsGLES2();
}
}
}
@Override
public void drawPointsGLES2() {
GLES2CompatUtils.glBegin(GL.GL_POINTS);
for (Point p : points) {
if (wfcolor == null)
GLES2CompatUtils.glColor4f(p.rgb.r, p.rgb.g, p.rgb.b, p.rgb.a);
else
GLES2CompatUtils.glColor4f(wfcolor.r, wfcolor.g, wfcolor.b, wfcolor.a);
GLES2CompatUtils.glVertex3f(transformers.getX().compute(p.xyz.x), transformers.getY().compute(p.xyz.y), transformers.getZ().compute(p.xyz.z));
}
GLES2CompatUtils.glEnd();
}
@Override
public void drawPointsGL2(GL gl) {
gl.getGL2().glBegin(GL.GL_POINTS);
for (Point p : points) {
if (wfcolor == null)
gl.getGL2().glColor4f(p.rgb.r, p.rgb.g, p.rgb.b, p.rgb.a);
else
gl.getGL2().glColor4f(wfcolor.r, wfcolor.g, wfcolor.b, wfcolor.a);
GlVertexExecutor.Vertex(gl, new Coord3d(p.xyz.x, p.xyz.y, p.xyz.z), transformers);
}
gl.getGL2().glEnd();
}
@Override
public void updateBounds() {
bbox.reset();
for (Point p : points)
bbox.add(transform.compute(p.xyz));
}
SpaceTransformer transformers;
}
Ads help maintain this website.