12 #include "../RDKitBase.h"
20 class MaximumCommonSubgraph;
51 NewBond(
unsigned from_atom,
unsigned bond_idx,
unsigned new_atom,
52 unsigned to_atom,
const Atom* a)
53 : SourceAtomIdx(from_atom),
57 EndAtomIdx(to_atom) {}
62 mutable std::vector<NewBond> NewBonds;
78 #ifdef DUP_SUBSTRUCT_CACHE
84 : CopyComplete(false),
86 LastAddedAtomsBeginIdx(0),
87 LastAddedBondsBeginIdx(0),
95 NewBonds = src.NewBonds;
104 #ifdef DUP_SUBSTRUCT_CACHE
117 #ifdef DUP_SUBSTRUCT_CACHE
130 unsigned maxAtoms)
const {
131 return RemainingBonds +
getNumBonds() > maxBonds ||
void grow(MaximumCommonSubgraph &mcs) const
std::vector< TargetMatch > MatchResult
std::vector< unsigned > BondsIdx
std::map< unsigned, unsigned > SeedAtomIdxMap
void setMoleculeFragment(const Seed &src)
ROMol is a molecule class that is intended to have a fixed topology.
void computeRemainingSize(const ROMol &qmol)
std::vector< bool > ExcludedBonds
unsigned getNumBonds() const
unsigned LastAddedAtomsBeginIdx
Includes a bunch of functionality for handling Atom and Bond queries.
void fillNewBonds(const ROMol &qmol)
class for representing a bond
unsigned addBond(const Bond *bond)
bool canGrowBiggerThan(unsigned maxBonds, unsigned maxAtoms) const
MolFragment MoleculeFragment
DuplicatedSeedCache::TKey DupCacheKey
std::vector< const Bond * > Bonds
NewBond(unsigned from_atom, unsigned bond_idx, unsigned new_atom, unsigned to_atom, const Atom *a)
void createFromParent(const Seed *parent)
Seed & operator=(const Seed &src)
unsigned LastAddedBondsBeginIdx
unsigned getNumAtoms() const
std::vector< const Atom * > Atoms
The class for representing atoms.
std::vector< unsigned > AtomsIdx
unsigned addAtom(const Atom *atom)