package org.jzy3d.plot2d.primitives;

import java.util.List;

import org.jzy3d.colors.Color;
import org.jzy3d.maths.Coord2d;
import org.jzy3d.maths.Coord3d;
import org.jzy3d.plot3d.primitives.AbstractDrawable;
import org.jzy3d.plot3d.primitives.ConcurrentScatterPoint;
import org.jzy3d.plot3d.primitives.LightPoint;

// TODO : create LightPoint that don't hold a bounding box
public class ScatterPointSerie2d implements Serie2d {
    protected ConcurrentScatterPoint scatter;
    protected String name;
    protected Color defaultColor = Color.YELLOW.clone();
    
    public ScatterPointSerie2d(String name){
        this.name = name;
        this.scatter = makeDrawable();
    }
    
    public ConcurrentScatterPoint getScatter() {
        return scatter;
    }

    public void setScatter(ConcurrentScatterPoint scatter) {
        this.scatter = scatter;
    }

    public void setName(String name) {
        this.name = name;
    }

    protected ConcurrentScatterPoint makeDrawable() {
        ConcurrentScatterPoint s = new ConcurrentScatterPoint();
        s.setWidth(3);
        return s;
    }

    @Override
    public void add(float x, float y) {
        scatter.add(new LightPoint(new Coord3d(x, y, 0), defaultColor));
    }

    @Override
    public void add(double x, double y) {
        scatter.add(new LightPoint(new Coord3d(x, y, 0), defaultColor));
    }

    @Override
    public void add(Coord2d c) {
        scatter.add(new LightPoint(new Coord3d(c.x, c.y, 0), defaultColor));
    }
    
    @Override
    public void add(Coord2d c, Color color) {
        scatter.add(new LightPoint(new Coord3d(c.x, c.y, 0), color));
    }

    @Override
    public void add(float x, float y, Color color) {
        scatter.add(new LightPoint(new Coord3d(x, y, 0), color));
    }

    @Override
    public void add(double x, double y, Color color) {
        scatter.add(new LightPoint(new Coord3d(x, y, 0), color));
    }


    @Override
    public void add(List c) {
        for(Coord2d c2: c){
            scatter.add(new LightPoint(new Coord3d(c2.x, c2.y, 0), defaultColor));
        }
    }
    
    @Override
    public void setColor(Color color){
        defaultColor = color;
    }
    
    @Override
    public Color getColor(){
        return defaultColor;//line.getWireframeColor();
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public AbstractDrawable getDrawable() {
        return scatter;
    }

    @Override
    public void clear() {
        scatter.clear();
    }
    

    @Override
    public void setWidth(int width) {
        scatter.setWidth(width);   
    }
}


 

Ads help maintain this website.