OEConfTestBase is the abstract base class which
defines the interface for classes used to determine whether
consecutive molecules read from single-conformer file-formats are
combined into multi-conformer molecules.
- The following classes derive from this class:
bool CombineMols(OEMCMolBase &m1, OEMolBase &m2)=0
m2 as a new conformer in the multi-conformer
molecule. Returns a boolean indicating whether this combination
was successful. This method should only be called if a previous
bool CompareMols(OEMolBase &m1, OEMolBase &m2) const =0
This is the pure virtual function used to determine if two molecules are conformers of the same multi-conformer molecule. Users inheriting from this class must define this function. Note the molecule which is the second argument is not const. This allows the second molecule to be modified as may be necessary for it to be part of a multi-conformer molecule. It can be assumed that every molecule from an input stream will be used as argument ‘m2’ in this function call at least once.
OEConfTestBase *CreateCopy() const =0
Return a pointer to a copy of the derived object. This must be implemented by all derived classes.
bool HasCompareMols() const
Return whether the
OEConfTestBase::CompareMols method has a
“real” implementation and does not always return
OEReadMolecule to significantly
optimize the performance of reading single conformer file
OEMCMolBase objects by avoiding
copy operations. By default, this base-class method always
true to be backwards compatible with sub-classes
already written before this method was
the only OEChem TK implementation of this method that
false, allowing significant performance optimization
for the reading into
OEMol by default.