/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.jlab.groot.math;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author gavalian
*/
public class Dimension3D {
private List dimensions = new ArrayList();
public Dimension3D(){
this.dimensions.add(new Dimension1D());
this.dimensions.add(new Dimension1D());
this.dimensions.add(new Dimension1D());
}
public final void set(double min1, double max1, double min2, double max2,
double min3, double max3){
dimensions.get(0).setMinMax(min1, max1);
dimensions.get(1).setMinMax(min2, max2);
dimensions.get(2).setMinMax(min3, max3);
}
public Dimension1D getDimension(int index){
return this.dimensions.get(index);
}
public void grow(double x, double y, double z){
dimensions.get(0).grow(x);
dimensions.get(1).grow(y);
dimensions.get(2).grow(z);
}
public void grow(Dimension3D dim){
getDimension(0).grow(dim.getDimension(0).getMin());
getDimension(0).grow(dim.getDimension(0).getMax());
getDimension(1).grow(dim.getDimension(1).getMin());
getDimension(1).grow(dim.getDimension(1).getMax());
getDimension(2).grow(dim.getDimension(2).getMin());
getDimension(2).grow(dim.getDimension(2).getMax());
}
public void copy(Dimension3D object){
this.set(object.getDimension(0).getMin(),
object.getDimension(0).getMax(),
object.getDimension(1).getMin(),
object.getDimension(1).getMax(),
object.getDimension(2).getMin(),
object.getDimension(2).getMax()
);
}
public void combine(Dimension3D dim){
this.getDimension(0).grow(dim.getDimension(0).getMin());
this.getDimension(0).grow(dim.getDimension(0).getMax());
this.getDimension(1).grow(dim.getDimension(1).getMin());
this.getDimension(1).grow(dim.getDimension(1).getMax());
this.getDimension(2).grow(dim.getDimension(2).getMin());
this.getDimension(2).grow(dim.getDimension(2).getMax());
}
@Override
public String toString(){
return String.format("Dimension2D : (%8.3f - %8.3f) (%8.3f - %8.3f) (%8.3f - %8.3f)",
dimensions.get(0).getMin(),
dimensions.get(0).getMax(),
dimensions.get(1).getMin(),
dimensions.get(1).getMax(),
dimensions.get(2).getMin(),
dimensions.get(2).getMax()
);
}
}
Ads help maintain this website.