Example #1
0
 @Override
 public void initShape() {
   super.initShape();
   myType = "axes";
   font3d = g3d.getFont3D(JmolConstants.AXES_DEFAULT_FONTSIZE);
   int axesMode = viewer.getAxesMode();
   if (fixedOrigin == null) originPoint.set(0, 0, 0);
   else originPoint.set(fixedOrigin);
   if (axesMode == JmolConstants.AXES_MODE_UNITCELL && modelSet.getCellInfos() != null) {
     SymmetryInterface unitcell = viewer.getCurrentUnitCell();
     if (unitcell != null && unitcell.haveUnitCell()) {
       Point3f[] vectors = unitcell.getUnitCellVertices();
       Point3f offset = unitcell.getCartesianOffset();
       if (fixedOrigin == null) {
         originPoint.set(offset);
       } else {
         offset = fixedOrigin;
       }
       scale = viewer.getAxesScale() / 2f;
       // We must divide by 2 because that is the default for ALL axis types.
       // Not great, but it will have to do.
       axisPoints[0].scaleAdd(scale, vectors[4], offset);
       axisPoints[1].scaleAdd(scale, vectors[2], offset);
       axisPoints[2].scaleAdd(scale, vectors[1], offset);
       return;
     }
   } else if (axesMode == JmolConstants.AXES_MODE_BOUNDBOX) {
     if (fixedOrigin == null) originPoint.set(viewer.getBoundBoxCenter());
   }
   setScale(viewer.getAxesScale() / 2f);
 }