void getBondDipoles() {
		if (partialCharges == null)
			return;
		loadShape(JmolConstants.SHAPE_DIPOLES);
		Dipoles dipoles = (Dipoles) shapes[JmolConstants.SHAPE_DIPOLES];
		dipoles.clear(true);
		for (int i = bondCount; --i >= 0;) {
			if (!bonds[i].isCovalent())
				continue;
			Atom atom1 = bonds[i].atom1;
			Atom atom2 = bonds[i].atom2;
			float c1 = partialCharges[atom1.atomIndex];
			float c2 = partialCharges[atom2.atomIndex];
			if (c1 != c2) {
				Dipole dipole = dipoles.findDipole(atom1, atom2, true);
				float value = (c1 - c2) / 2f * atom1.distance(atom2) / E_ANG_PER_DEBYE;
				if (value < 0) {
					dipole.set(atom2, atom1, -value);
				}
				else {
					dipole.set(atom1, atom2, value);
				}
				dipole.type = Dipole.DIPOLE_TYPE_BOND;
				dipole.modelIndex = atom1.modelIndex;
			}
		}
	}