package org.jzy3d.plot3d.primitives.graphs.impl;

import java.util.HashMap;
import java.util.Map;

import org.jzy3d.colors.Color;
import org.jzy3d.maths.BoundingBox3d;
import org.jzy3d.maths.Coord2d;
import org.jzy3d.maths.Coord3d;
import org.jzy3d.maths.graphs.IGraph;
import org.jzy3d.picking.PickingSupport;
import org.jzy3d.plot3d.primitives.pickable.PickablePoint;
import org.jzy3d.plot3d.rendering.view.Camera;

import com.jogamp.opengl.GL;
import com.jogamp.opengl.glu.GLU;

public class PointGraph2d  extends DefaultDrawableGraph2d {
	public PointGraph2d(){
		super();		
		bbox = new BoundingBox3d();
		labelScreenOffset = new Coord2d(0, -2);
	}
	
	@Override
public void setGraphModel(IGraph graph, PickingSupport picking){
	super.setGraphModel(graph, picking);
	
	for(V v: graph.getVertices()){
		PickablePoint p = newPoint(v);
		p.setWidth(formatter.getVertexWidth());
		vertexObjects.put(v, p);
		picking.registerDrawableObject(p, v);
	}
}
	
	@Override
	public void setGraphModel(IGraph graph){
		super.setGraphModel(graph);
		
		for(V v: graph.getVertices()){
			PickablePoint p = newPoint(v);
			p.setWidth(formatter.getVertexWidth());
			vertexObjects.put(v, p);
		}
	}
	
	protected PickablePoint newPoint(V vertex){
		PickablePoint p = new PickablePoint(Coord3d.ORIGIN, formatter.getVertexColor(), formatter.getVertexWidth());
		return p;
	}
	
	/*******************************************************/
	
	@Override
	protected void drawVertices(GL gl, GLU glu, Camera cam){
		for(V v: graph.getVertices()){
			if(highlights.get(v))
				drawVertexNode(gl, glu, cam, v, layout.get(v), formatter.getHighlightedVertexColor());
			else
				drawVertexNode(gl, glu, cam, v, layout.get(v), formatter.getVertexColor());
		}
	}
	
	@Override
	protected void drawVertexNode(GL gl, GLU glu, Camera cam, V v, Coord2d coord, Color color){
		PickablePoint pt = vertexObjects.get(v);
		pt.setData(new Coord3d(coord, Z));
		pt.setColor(color);
		pt.draw(gl, glu, cam);
	}
	
	/*******************************************************/

	
	protected Map vertexObjects = new HashMap();
}

 

Ads help maintain this website.