void generateQuantumCube() {
		QuantumCalculation q;
		float[] origin = { volumetricOrigin.x, volumetricOrigin.y, volumetricOrigin.z };
		switch (qmOrbitalType) {
		case QM_TYPE_GAUSSIAN:
			q = new QuantumCalculation((String) moData.get("calculationType"), qm_atoms, (Vector) moData.get("shells"),
					(float[][]) moData.get("gaussians"), (Hashtable) moData.get("atomicOrbitalOrder"), null, null,
					moCoefficients);
			q.createGaussianCube(voxelData, voxelCounts, origin, volumetricVectorLengths);
			break;
		case QM_TYPE_SLATER:
			q = new QuantumCalculation((String) moData.get("calculationType"), qm_atoms, (Vector) moData.get("shells"),
					null, null, (int[][]) moData.get("slaterInfo"), (float[][]) moData.get("slaterData"),
					moCoefficients);
			q.createSlaterCube(voxelData, voxelCounts, origin, volumetricVectorLengths);
			break;
		default:
		}
	}