All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.meteoinfo.chart.graphic.ParticleGraphics Maven / Gradle / Ivy

There is a newer version: 3.8
Show newest version
package org.meteoinfo.chart.graphic;

import java.util.*;

public class ParticleGraphics extends GraphicCollection3D {

    /**
     * Inner Particle class
     */
    public static class Particle {
        public float x, y, z;    //position
        public float[] rgba;    //color
    }

    private float pointSize;
    private HashMap particles;

    /**
     * Constructor
     */
    public ParticleGraphics() {
        super();
        this.pointSize = 2;
        this.particles = new HashMap<>();
    }

    /**
     * Get point size
     * @return Size Single point size
     */
    public float getPointSize() {
        return pointSize;
    }

    /**
     * Set point size
     * @param value Single point size
     */
    public void setPointSize(float value) {
        pointSize = value;
    }

    /**
     * Get particles
     * @return Particles
     */
    public HashMap getParticles() {
        return particles;
    }

    /**
     * Set particles
     * @param value Particles
     */
    public void setParticles(HashMap value) {
        particles = value;
    }

    /**
     * Add a particle
     * @param particle The particle
     */
    public void addParticle(int key, Particle particle) {
        if (this.particles.containsKey(key)) {
            this.particles.get(key).add(particle);
        } else {
            List list = new ArrayList();
            list.add(particle);
            this.particles.put(key, list);
        }
    }

    /**
     * Get sorted particle list
     * @return Particle list
     */
    public List> getParticleList() {
        List> list = new ArrayList>(particles.entrySet());
        Collections.sort(list, new Comparator>() {
            public int compare(Map.Entry mapping1, Map.Entry mapping2) {
                return mapping2.getKey() - mapping1.getKey();
            }
        });

        return list;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy