#A* -------------------------------------------------------------------
#B* This file contains source code for the PyMOL computer program
#C* copyright 1998-2000 by Warren Lyford Delano of DeLano Scientific.
#D* -------------------------------------------------------------------
#E* It is unlawful to modify or remove this copyright notice.
#F* -------------------------------------------------------------------
#G* Please see the accompanying LICENSE file for further information.
#H* -------------------------------------------------------------------
#I* Additional authors of this source file include:
#-*
#-*
#-*
#Z* -------------------------------------------------------------------

# bond lengths and other information useful for simply building atoms
#
# compatible with parm94, 96, or 99

length = {
    ( 'OW', 'HW' ) : 0.9572,
    ( 'HW', 'HW' ) : 1.5136,
    ( 'C',  'C'  ) : 1.525 ,
    ( 'C',  'CA' ) : 1.409 ,
    ( 'C',  'CB' ) : 1.419 ,
    ( 'C',  'CM' ) : 1.444 ,
    ( 'C',  'CT' ) : 1.522 ,
    ( 'C',  'N' ) :  1.335 ,
    ( 'C',  'N*' ) : 1.383 ,
    ( 'C',  'NA' ) : 1.388 ,
    ( 'C',  'NC' ) : 1.358 ,
    ( 'C',  'O' ) :  1.229 ,
    ( 'C',  'O2' ) : 1.250 ,
    ( 'C',  'OH' ) : 1.364 ,
    ( 'C',  'OS' ) : 1.323 ,
    ( 'C',  'H4' ) : 1.080 ,
    ( 'C',  'H5' ) : 1.080 ,
    ( 'CA', 'CA' ) : 1.400 ,
    ( 'CA', 'CB' ) : 1.404 ,
    ( 'CA', 'CM' ) : 1.433 ,
    ( 'CA', 'CN' ) : 1.400 ,
    ( 'CA', 'CT' ) : 1.510 ,
    ( 'CA', 'HA' ) : 1.080 ,
    ( 'CA', 'H4' ) : 1.080 ,
    ( 'CA', 'N2' ) : 1.340 ,
    ( 'CA', 'NA' ) : 1.381 ,
    ( 'CA', 'NC' ) : 1.339 ,
    ( 'CA', 'OH' ) : 1.364 ,
    ( 'CB', 'CB' ) : 1.370 ,
    ( 'CB', 'N*' ) : 1.374 ,
    ( 'CB', 'NB' ) : 1.391 ,
    ( 'CB', 'NC' ) : 1.354 ,
    ( 'CD', 'HA' ) : 1.080 ,
    ( 'CD', 'CD' ) : 1.400 ,
    ( 'CD', 'CM' ) : 1.350 ,
    ( 'CD', 'CT' ) : 1.510 ,
    ( 'CK', 'H5' ) : 1.080 ,
    ( 'CK', 'N*' ) : 1.371 ,
    ( 'CK', 'NB' ) : 1.304 ,
    ( 'CM', 'CM' ) : 1.350 ,
    ( 'CM', 'CT' ) : 1.510 ,
    ( 'CM', 'HA' ) : 1.080 ,
    ( 'CM', 'H4' ) : 1.080 ,
    ( 'CM', 'H5' ) : 1.080 ,
    ( 'CM', 'N*' ) : 1.365 ,
    ( 'CM', 'OS' ) : 1.240 ,
    ( 'CQ', 'H5' ) : 1.080 ,
    ( 'CQ', 'NC' ) : 1.324 ,
    ( 'CT', 'CT' ) : 1.526 ,
    ( 'CT', 'HC' ) : 1.090 ,
    ( 'CT', 'H1' ) : 1.090 ,
    ( 'CT', 'H2' ) : 1.090 ,
    ( 'CT', 'H3' ) : 1.090 ,
    ( 'CT', 'HP' ) : 1.090 ,
    ( 'CT', 'N*' ) : 1.475 ,
    ( 'CT', 'N2' ) : 1.463 ,
    ( 'CT', 'OH' ) : 1.410 ,
    ( 'CT', 'OS' ) : 1.410 ,
    ( 'C*', 'HC' ) : 1.080 ,
    ( 'C*', 'CB' ) : 1.459 ,
    ( 'C*', 'CT' ) : 1.495 ,
    ( 'C*', 'CW' ) : 1.352 ,
    ( 'CB', 'CN' ) : 1.419 ,
    ( 'CC', 'CT' ) : 1.504 ,
    ( 'CC', 'CV' ) : 1.375 ,
    ( 'CC', 'CW' ) : 1.371 ,
    ( 'CC', 'NA' ) : 1.385 ,
    ( 'CC', 'NB' ) : 1.394 ,
    ( 'CN', 'NA' ) : 1.380 ,
    ( 'CR', 'H5' ) : 1.080 ,
    ( 'CR', 'NA' ) : 1.343 ,
    ( 'CR', 'NB' ) : 1.335 ,
    ( 'CT', 'N'  ) : 1.449 ,
    ( 'CT', 'N3' ) : 1.471 ,
    ( 'CT', 'NT' ) : 1.471 ,
    ( 'CT', 'S'  ) : 1.810 ,
    ( 'CT', 'SH' ) : 1.810 ,
    ( 'CT', 'CY' ) : 1.458 ,
    ( 'CT', 'CZ' ) : 1.459 ,
    ( 'CV', 'H4' ) : 1.080 ,
    ( 'CV', 'NB' ) : 1.394 ,
    ( 'CW', 'H4' ) : 1.080 ,
    ( 'CW', 'NA' ) : 1.381 ,
    ( 'CY', 'NY' ) : 1.150 ,
    ( 'CZ', 'CZ' ) : 1.206 ,
    ( 'CZ', 'HZ' ) : 1.056 ,
    ( 'O2', 'P'  ) : 1.480 ,
    ( 'OH', 'P'  ) : 1.610 ,
    ( 'OS', 'P'  ) : 1.610 ,
    ( 'H',  'N2' ) : 1.010 ,
    ( 'H',  'N*' ) : 1.010 ,
    ( 'H',  'NA' ) : 1.010 ,
    ( 'H',  'N'  ) : 1.010 ,
    ( 'H',  'N3' ) : 1.010 ,
    ( 'H',  'NT' ) : 1.010 ,
    ( 'HO', 'OH' ) : 0.960 ,
    ( 'HO', 'OS' ) : 0.960 ,
    ( 'HS', 'SH' ) : 1.336 ,
    ( 'S',  'S'  ) : 2.038 ,
    ( 'F',  'CT' ) : 1.380 ,
    ( 'Cl', 'CT' ) : 1.766 ,
    ( 'Br', 'CT' ) : 1.944 ,
    ( 'I',  'CT' ) : 2.166 ,
    ( 'F',  'CA' ) : 1.359 ,
    ( 'Cl', 'CA' ) : 1.727 ,
    ( 'I',  'CA' ) : 2.075 ,
    ( 'Br', 'CA' ) : 1.890 ,
    ( 'LP', 'O'  ) : 0.200 ,
    ( 'LP', 'OH' ) : 0.200 ,
    ( 'LP', 'OS' ) : 0.200 ,
    ( 'LP', 'N3' ) : 0.200 ,
    ( 'LP', 'NT' ) : 0.200 ,
    ( 'LP', 'NB' ) : 0.200 ,
    ( 'LP', 'NC' ) : 0.200 ,
    ( 'LP', 'S'  ) : 0.700 ,
    ( 'LP', 'SH' ) : 0.700,
}

for a in list(length.keys()):
    length[(a[1],a[0])]=length[a]

nonlinear = {
    'OW' : 1 ,
    'OH' : 1 ,
    'OS' : 1 ,
    'P'  : 1 ,
    'S'  : 1 ,
    'SH' : 1 ,
}

tetrahedral = {
    'CT' : 1 ,
    'N3' : 1 ,
    'NT' : 1 ,
    }

planer = {
    'C'  : 1 ,
    'C*' : 1 ,
    'CA' : 1 ,
    'CB' : 1 ,
    'CC' : 1 ,
    'CD' : 1 ,
    'CK' : 1 ,
    'CM' : 1 ,
    'CN' : 1 ,
    'CQ' : 1 ,
    'CR' : 1 ,
    'CV' : 1 ,
    'CW' : 1 ,
    'N'  : 1 ,
    'N*' : 1 ,
    'N2' : 1 ,
    'NA' : 1 ,
    'NB' : 1 ,
    'NC' : 1 ,
    'O'  : 1 ,
    'O2' : 1 ,
}
