- added threading support to the ResonanceMolSupplier-enabled
SubstructMatch() and relevant tests
- modified/removed some code in O3AAlignMolecules.cpp which doesn't
seem necessary anymore
- modified Code/GraphMol/CMakeLists.txt to allow building
on Windows
(they both were temporary data structures and there was
no real reason for them to be there, especially in view
of a possible code parallelization)
- converted most uint64_t to unsigned int since they weren't
really necessary
- fixed a couple of compilation warnings
- moved classes that do not need being exposed in Resonance.h to Resonance.cpp
- added the ALLOW_CHARGE_SEPARATION flag: now by default charge
separation structures are not displayed if there's at least one
structure with no charge separation
- TODO
* add SWIG wrappers
* add a few test tp resMolSupplierTest.cpp
as conjugated like their oxygen analogs
- fixed an issue with large numbers of resonance structures exceeding
the unsigned int allowance
- implemented the uniquify feature properly
- uniquify now defaults to false when using the ResonanceMolSupplier-
enabled SubstructMatch() version
- the concept of 'laziness' is now clearer
- TODO:
* remove some debugging info
* move classes from .h to .cpp
* SWIG wrappers
* improve resonance structure sorting for degenerate resonance
structures
I will do all of the above ASAP
in the AtomElectrons and BondElectrons constructors
- removed superfluous NULLness check in ConjElectrons destructor
- outer electrons are used instead of atomic number to
determine formal charging behaviour
- better handling of electronegativity using Allen electronegativity
instead of the number of outer electrons
- removed superfluous code in sanitizeMol() (I had missed the
"If there is a failure in the sanitization, a SanitException will be thrown"
note)
- used getOtherAtom() method whose existence I ignored (thanks Greg!)