public Point3d rescaleBondLength ( IAtom atom1 , IAtom atom2 , Point3d point2 ) { Point3d point1 = atom1 . getPoint3d ( ) ; Double d1 = atom1 . getCovalentRadius ( ) ; Double d2 = atom2 . getCovalentRadius ( ) ; // in case we have no covalent radii, set to 1.0 double distance = ( d1 == null || d2 == null ) ? 1.0 : d1 + d2 ; if ( pSet != null ) { distance = getDistanceValue ( atom1 . getAtomTypeName ( ) , atom2 . getAtomTypeName ( ) ) ; } Vector3d vect = new Vector3d ( point2 ) ; vect . sub ( point1 ) ; vect . normalize ( ) ; vect . scale ( distance ) ; Point3d newPoint = new Point3d ( point1 ) ; newPoint . add ( vect ) ; return newPoint ; }
Rescales Point2 so that length 1 - 2 is sum of covalent radii . If covalent radii cannot be found use bond length of 1 . 0