15#include <boost/tuple/tuple.hpp>
16#include <boost/dynamic_bitset.hpp>
115 ROMol &mol,
int atomIdx, std::vector<AtomColors> &colors,
116 const std::vector<unsigned int> &ranks,
MolStack &molStack,
117 const boost::dynamic_bitset<> *bondsInPlay =
nullptr,
118 const std::vector<std::string> *bondSymbols =
nullptr,
119 bool doIsomericSmiles =
false,
bool doRandom =
false);
The class for representing atoms.
class for representing a bond
these are the actual elements in the molecular stack
MolStackTypes type
stores the type of node
MolStackElem(Atom *at)
construct an Atom node
MolStackElem(const char *chr, int idx)
construct for a branch opening or closing
MolStackUnion obj
holds our pointer (if appropriate)
MolStackElem(int idx)
construct for a ring closure
MolStackElem(Bond *bond, int idx)
construct a bond node
#define RDKIT_GRAPHMOL_EXPORT
boost::tuple< int, int, Bond * > PossibleType
used to represent possible branches from an atom
MolStackTypes
used to indicate types of entries in the molecular stack:
@ MOL_STACK_BRANCH_OPEN
beginning of a branch
@ MOL_STACK_RING
a ring closure
@ MOL_STACK_BRANCH_CLOSE
end of a branch
std::vector< MolStackElem > MolStack
RDKIT_GRAPHMOL_EXPORT bool chiralAtomNeedsTagInversion(const RDKit::ROMol &mol, const RDKit::Atom *atom, bool isAtomFirst, size_t numClosures)
const int MAX_BONDTYPE
used in the canonical traversal code
const int MAX_CYCLES
used in the canonical traversal code
RDKIT_GRAPHMOL_EXPORT void canonicalizeFragment(ROMol &mol, int atomIdx, std::vector< AtomColors > &colors, const std::vector< unsigned int > &ranks, MolStack &molStack, const boost::dynamic_bitset<> *bondsInPlay=nullptr, const std::vector< std::string > *bondSymbols=nullptr, bool doIsomericSmiles=false, bool doRandom=false)
constructs the canonical traversal order for a molecular fragment
AtomColors
used in traversals of the molecule
@ GREY_NODE
visited, but not finished
@ BLACK_NODE
visited and finished
const int MAX_NATOMS
used in the canonical traversal code
used to store components in the molecular stack