package org.jzy3d.plot3d.primitives;

import java.util.List;

import org.jzy3d.maths.Coord3d;
import org.jzy3d.plot3d.transform.Transform;

import com.jogamp.opengl.GL;

public class ConcurrentLineStrip extends LineStrip {

    public ConcurrentLineStrip() {
        super(100);
    }

    public ConcurrentLineStrip(int n) {
        super(n);
    }

    public ConcurrentLineStrip(List coords) {
        super(coords);
    }

    public ConcurrentLineStrip(Point c1, Point c2) {
        super(c1, c2);
    }

    @Override
    public void drawLine(GL gl) {
        gl.glLineWidth(width);
        // gl.glEnable(GL.GL_POLYGON_OFFSET_FILL);
        // gl.glPolygonOffset(1.0f, 1.0f);
        if (gl.isGL2()) {
            synchronized (points) {
                drawLineGL2(gl);
            }
        } else {
            synchronized (points) {
                drawLineGLES2();
            }
        }
    }

    @Override
    public void drawPoints(GL gl) {
        if (showPoints) {
            if (gl.isGL2()) {
                synchronized (points) {
                    drawPointsGL2(gl);
                }
            } else {
                synchronized (points) {
                    drawPointsGLES2();
                }
            }
        }
    }

    /* */

    @Override
    public void applyGeometryTransform(Transform transform) {
        synchronized (points) {
            for (Point p : points) {
                p.xyz = transform.compute(p.xyz);
            }
        }
        updateBounds();
    }

    @Override
    public void updateBounds() {
        bbox.reset();
        synchronized (points) {
            for (Point p : points)
                bbox.add(p);
        }
    }

    @Override
    public void add(Point point) {
        synchronized (points) {
            points.add(point);
        }
        bbox.add(point);
    }

    @Override
    public void clear() {
        synchronized (points) {
            points.clear();
        }
        updateBounds();
    }

    @Override
    public Point getLastPoint() {
        synchronized (points) {
            return super.getLastPoint();
        }
    }
}

 

Ads help maintain this website.