Builder.java :  » Java-3D » jzy3d » org » jzy3d » plot3d » builder » Java Open Source

Java Open Source » Java 3D » jzy3d 
jzy3d » org » jzy3d » plot3d » builder » Builder.java
package org.jzy3d.plot3d.builder;

import java.util.List;

import org.jzy3d.maths.Coord3d;
import org.jzy3d.maths.Coordinates;
import org.jzy3d.plot3d.builder.concrete.OrthonormalGrid;
import org.jzy3d.plot3d.builder.concrete.OrthonormalTesselator;
import org.jzy3d.plot3d.builder.delaunay.DelaunayCoordinateValidator;
import org.jzy3d.plot3d.builder.delaunay.DelaunayTessellator;
import org.jzy3d.plot3d.builder.delaunay.OrthonormalCoordinateValidator;
import org.jzy3d.plot3d.builder.delaunay.Triangulation;
import org.jzy3d.plot3d.builder.delaunay.jdt.Delaunay_Triangulation;
import org.jzy3d.plot3d.primitives.AbstractDrawable;


public class Builder {

  public static AbstractDrawable build(Grid grid, Mapper mapper, Tesselator tesselator){
    return tesselator.build(grid.apply(mapper));
  }
  
  public static AbstractDrawable build(List<Coord3d> coordinates, Tesselator tesselator){
    return tesselator.build(coordinates);
  }
  
  public static AbstractDrawable build(float[] x, float[] y, float[] z, Tesselator tesselator){
    return tesselator.build(x, y, z);
  }
  
  /*******************************************************************************/

  //TODO: review these additions
  public static AbstractDrawable build(Grid grid, Mapper mapper, Tessellator tesselator) {
    CoordinateValidator cv = new OrthonormalCoordinateValidator(new Coordinates(grid.apply(mapper)));
    return buildDrawable(tesselator, cv);
  }

  public static AbstractDrawable build(List<Coord3d> coordinates, Tessellator tesselator) {
    CoordinateValidator cv = new OrthonormalCoordinateValidator(new Coordinates(coordinates));
    return buildDrawable(tesselator, cv);
  }

  public static AbstractDrawable build(float[] x, float[] y, float[] z, Tessellator tesselator) {
    CoordinateValidator cv = new OrthonormalCoordinateValidator(new Coordinates(x, y, z));
    return buildDrawable(tesselator, cv);
  }

  /*******************************************************************************/

  public static AbstractDrawable buildDelaunay(List<Coord3d> coordinates) {
    CoordinateValidator cv = new DelaunayCoordinateValidator(new Coordinates(coordinates));
    Triangulation dt = new Delaunay_Triangulation();
    Tessellator tesselator = new DelaunayTessellator(cv, dt);
    return tesselator.buildDrawable();

  }

  // public static Drawable buildOrthonormal(OrthonormalGrid grid, Mapper
  // mapper){
  // CoordinateValidator cv = new OrthonormalCoordinateValidator(new
  // Coordinates(grid.apply(mapper)));
  // Tessellator tesselator = new OrthonormalTesselator(cv);
  // return tesselator.buildDrawable();
  // }

  public static AbstractDrawable buildOrthonormal(OrthonormalGrid grid, Mapper mapper) {
    OrthonormalTesselator tesselator = new OrthonormalTesselator();
    return tesselator.build(grid.apply(mapper));
  }

  /*******************************************************************************/
  private static AbstractDrawable buildDrawable(Tessellator tesselator, CoordinateValidator cv) {
    tesselator.setX(cv.getX());
    tesselator.setY(cv.getY());
    tesselator.set_Z_as_fxy(cv.get_Z_as_fxy());
    return tesselator.buildDrawable();
  }

  /*
   * public static Drawable buildRing(OrthonormalGrid grid, Mapper mapper){
   * RingTesselator tesselator = new RingTesselator(); return
   * tesselator.build(grid.apply(mapper)); }
   */
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.