package org.jzy3d.plot3d.primitives.vbo.builders;

import java.util.List;

import org.apache.log4j.Logger;
import org.jzy3d.colors.ColorMapper;
import org.jzy3d.io.IGLLoader;
import org.jzy3d.maths.Coord3d;
import org.jzy3d.plot3d.primitives.vbo.buffers.FloatVBO;
import org.jzy3d.plot3d.primitives.vbo.drawable.DrawableVBO;

import com.jogamp.opengl.GL;

/**
 * A simple loader loading an existing collection of coordinates into a Vertex
 * Buffer Objects once GL initialization stage requires it to be loaded.
 * 
 * If a colormapper is given, color buffer will be filled according to coloring policy.
 * 
 * @author martin
 */
public class VBOBuilderListCoord3d extends VBOBuilder implements IGLLoader {
    protected List coordinates = null;
    protected ColorMapper coloring = null;

    public VBOBuilderListCoord3d(List coordinates) {
        this.coordinates = coordinates;
    }
    
    public VBOBuilderListCoord3d(List coordinates, ColorMapper coloring) {
        this.coordinates = coordinates;
        this.coloring = coloring;
    }

    // @Override
    // @SuppressWarnings("unchecked")
    @Override
    public void load(GL gl, DrawableVBO drawable) throws Exception {
        FloatVBO vbo = initFloatVBO(drawable, coloring!=null, coordinates.size());
        fillWithCollection(drawable, coordinates, vbo, coloring);
        drawable.setData(gl, vbo);
        Logger.getLogger(VBOBuilderListCoord3d.class).info("done loading " + coordinates.size() + " coords");
    }
}

 

Ads help maintain this website.