content: package edu.stanford.rsl.conrad.geometry.bounds;
  
  import edu.stanford.rsl.conrad.geometry.AbstractSurface;
  import edu.stanford.rsl.conrad.geometry.shapes.simple.PointND;
  
  /**
   * Implementation of a Bounding Box
   * 
   * @author Akm
   * @author Rotimi X Ojo
   *
   */
  public class BoundingBox extends AbstractBoundingCondition {
  	private static final long serialVersionUID = -5984414347382076217L;
  	protected PointND min;
  	protected PointND max;
  	
  	public BoundingBox(PointND min, PointND max){
  		this.min = min;
  		this.max = max;
  	}
  	
  	public BoundingBox(BoundingBox bb){
  		super(bb);
  		min = (bb.min != null) ? new PointND(bb.min) : null;
  		max = (bb.max != null) ? new PointND(bb.max) : null;
  	}
  	
  	@Override
  	public boolean isSatisfiedBy(PointND point) {
  		boolean retval = true;
  		for (int i=0; i < point.getDimension(); i++){
  			if ((point.get(i) > max.get(i)) || (point.get(i) < min.get(i))) retval = false;
  		}
  		return retval;
  	}
  
  	@Override
  	public AbstractSurface getBoundingSurface() {
  		return null;
  	}
  
  	@Override
  	public void flipCondition() {
  		
  	}
  
  	@Override
  	public AbstractBoundingCondition clone() {
  		return new BoundingBox(this);
  	}
  
  }
  /*
   * Copyright (C) 2010 - Rotimi X Ojo, Andreas Maier
   * CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
  */
  