org.biojava.nbio.structure.xtal.BravaisLattice Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of biojava-structure Show documentation
Show all versions of biojava-structure Show documentation
The protein structure modules of BioJava.
/*
* BioJava development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. If you do not have a copy,
* see:
*
* http://www.gnu.org/copyleft/lesser.html
*
* Copyright for this code is held jointly by the individual
* authors. These should be listed in @author doc comments.
*
* For more information on the BioJava project and its aims,
* or to join the biojava-l mailing list, visit the home page
* at:
*
* http://www.biojava.org/
*
*/
package org.biojava.nbio.structure.xtal;
import java.util.HashMap;
/**
* An enum to represent the 7 Bravais lattices
*
* @author duarte_j
*
*/
public enum BravaisLattice {
TRICLINIC (1, "TRICLINIC", new CrystalCell(1.00,1.25,1.50, 60,70,80)), // alpha,beta,gamma!=90
MONOCLINIC (2, "MONOCLINIC", new CrystalCell(1.00,1.25,1.50, 90,60,90)), // beta!=90, alpha=gamma=90
ORTHORHOMBIC (3, "ORTHORHOMBIC", new CrystalCell(1.00,1.25,1.50, 90,90,90)), // alpha=beta=gamma=90
TETRAGONAL (4, "TETRAGONAL", new CrystalCell(1.00,1.00,1.25, 90,90,90)), // alpha=beta=gamma=90, a=b
TRIGONAL (5, "TRIGONAL", new CrystalCell(1.00,1.00,1.25, 90,90,120)),// a=b!=c, alpha=beta=90, gamma=120
HEXAGONAL (6, "HEXAGONAL", new CrystalCell(1.00,1.00,1.25, 90,90,120)),// a=b!=c, alpha=beta=90, gamma=120
CUBIC (7, "CUBIC", new CrystalCell(1.00,1.00,1.00, 90,90,90)); // a=b=c, alpha=beta=gamma=90
private static HashMap name2bl = initname2bl();
private String name;
private int id;
private CrystalCell exampleUnitCell;
private BravaisLattice(int id, String name, CrystalCell exampleUnitCell) {
this.name = name;
this.id = id;
this.exampleUnitCell = exampleUnitCell;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
public CrystalCell getExampleUnitCell() {
return exampleUnitCell;
}
private static HashMap initname2bl(){
HashMap name2bl = new HashMap<>();
for (BravaisLattice bl:BravaisLattice.values()) {
name2bl.put(bl.getName(), bl);
}
return name2bl;
}
public static BravaisLattice getByName(String blName) {
return name2bl.get(blName);
}
}