public boolean translateAtomsTo(int i, int j, Point3f p) {
		if (i < 0 || j < 0 || i >= iAtom || j > iAtom)
			return false;
		if (tempAtomBitSet == null)
			tempAtomBitSet = new BitSet(SIZE);
		Point3f center = getCenterOfAtoms(i, j);
		for (int k = i; k < j; k++) {
			atom[k].rx += p.x - center.x;
			atom[k].ry += p.y - center.y;
			atom[k].rz += p.z - center.z;
			tempAtomBitSet.set(k);
		}
		if (outOfSimulationBox(tempAtomBitSet) || overlapWithObstacles(tempAtomBitSet) || getMinimumDistance(tempAtomBitSet) < 0) {
			removeAtoms(tempAtomBitSet);
			return false;
		}
		formMolecules();
		return true;
	}