23 #include <boost/foreach.hpp>
164 unsigned int getIdx()
const {
return d_index; };
171 void setIdx(
unsigned int index) { d_index = index; };
257 bool maintainOrder =
true);
286 PRECONDITION(what <= STEREOE || getStereoAtoms().size() == 2,
287 "Stereo atoms should be specified before specifying CIS/TRANS "
288 "bond stereochemistry")
310 if (!dp_stereoAtoms) {
311 const_cast<Bond *
>(
this)->dp_stereoAtoms =
new INT_VECT();
313 return *dp_stereoAtoms;
317 if (!dp_stereoAtoms) dp_stereoAtoms =
new INT_VECT();
318 return *dp_stereoAtoms;
RDKIT_GRAPHMOL_EXPORT std::ostream & operator<<(std::ostream &target, const RDKit::Bond &b)
allows Bond objects to be dumped to streams
#define PRECONDITION(expr, mess)
Pulls in all the query types.
Base class for all queries.
The class for representing atoms.
class for representing a bond
unsigned int getBeginAtomIdx() const
returns the index of our begin Atom
void updatePropertyCache(bool strict=true)
calculates any of our lazy properties
double getBondTypeAsDouble() const
returns our bondType as a double (e.g. SINGLE->1.0, AROMATIC->1.5, etc.)
void setEndAtomIdx(unsigned int what)
sets the index of our end Atom
unsigned int getOtherAtomIdx(unsigned int thisIdx) const
given the index of one Atom, returns the index of the other
INT_VECT * dp_stereoAtoms
@ DATIVER
standard two-electron dative
@ DATIVE
standard two-electron dative
@ DATIVEONE
one-electron dative (e.g. from a C in a Cp ring to a metal)
@ DATIVEL
standard two-electron dative
Bond & operator=(const Bond &other)
ROMol & getOwningMol() const
returns a reference to the ROMol that owns this instance
void setIsAromatic(bool what)
sets our isAromatic flag
double getValenceContrib(const Atom *at) const
returns our contribution to the explicit valence of an Atom
Atom * getOtherAtom(Atom const *what) const
returns a pointer to the other Atom
const INT_VECT & getStereoAtoms() const
returns the indices of our stereo atoms
unsigned int getIdx() const
returns our index within the ROMol
void setBeginAtom(Atom *at)
sets our begin Atom
bool getIsConjugated() const
returns the status of our isConjugated flag
bool hasOwningMol() const
returns whether or not this instance belongs to a molecule
virtual bool hasQuery() const
void setStereoAtoms(unsigned int bgnIdx, unsigned int endIdx)
sets the atoms to be considered as reference points for bond stereo
void setBeginAtomIdx(unsigned int what)
sets the index of our begin Atom
void setIsConjugated(bool what)
sets our isConjugated flag
Queries::Query< int, Bond const *, true > QUERYBOND_QUERY
BondType getBondType() const
returns our bondType
virtual void setQuery(QUERYBOND_QUERY *what)
NOT CALLABLE.
void setOwningMol(ROMol *other)
sets our owning molecule
INT_VECT & getStereoAtoms()
This is an overloaded member function, provided for convenience. It differs from the above function o...
void setBondType(BondType bT)
sets our bondType
bool df_isAromatic
sets our owning molecule
atomindex_t d_beginAtomIdx
BondDir
the bond's direction (for chirality)
@ EITHERDOUBLE
a "crossed" double bond
@ BEGINWEDGE
wedged: narrow at begin
@ UNKNOWN
intentionally unspecified stereochemistry
@ ENDDOWNRIGHT
for cis/trans
@ BEGINDASH
dashed: narrow at begin
virtual Bond * copy() const
returns a copy
virtual void expandQuery(QUERYBOND_QUERY *what, Queries::CompositeQueryType how=Queries::COMPOSITE_AND, bool maintainOrder=true)
NOT CALLABLE.
void setOwningMol(ROMol &other)
sets our owning molecule
Atom * getEndAtom() const
returns a pointer to our end Atom
BondStereo getStereo() const
returns our stereo code
void setStereo(BondStereo what)
sets our stereo code
void setIdx(unsigned int index)
sets our index within the ROMol
unsigned int getEndAtomIdx() const
returns the index of our end Atom
void setEndAtom(Atom *at)
sets our end Atom
virtual QUERYBOND_QUERY * getQuery() const
NOT CALLABLE.
void setBondDir(BondDir what)
sets our direction
BondStereo
the nature of the bond's stereochem (for cis/trans)
bool getIsAromatic() const
returns the status of our isAromatic flag
Atom * getBeginAtom() const
returns a pointer to our begin Atom
virtual bool Match(Bond const *what) const
returns whether or not we match the argument
BondDir getBondDir() const
returns our direction
Bond(BondType bT)
construct with a particular BondType
RWMol is a molecule class that is intended to be edited.
#define RDKIT_GRAPHMOL_EXPORT
std::vector< int > INT_VECT
std::uint32_t atomindex_t