#include <openbabel/bond.h>
Inheritance diagram for OBBond:
Public Member Functions | |
OBBond () | |
virtual | ~OBBond () |
virtual bool | Clear () |
virtual OBBase * | DoTransformations (const std::map< std::string, std::string > *) |
template<class T> | |
T * | CastAndClear (bool clear=true) |
Bond modification methods | |
void | SetIdx (int idx) |
void | SetBO (int order) |
void | SetBondOrder (int order) |
void | SetBegin (OBAtom *begin) |
void | SetEnd (OBAtom *end) |
void | SetParent (OBMol *ptr) |
void | SetLength (OBAtom *fixed, double length) |
void | Set (int index, OBAtom *begin, OBAtom *end, int order, int flags) |
void | SetKSingle () |
void | SetKDouble () |
void | SetKTriple () |
void | SetAromatic () |
void | SetHash () |
void | SetWedge () |
void | SetUp () |
void | SetDown () |
void | SetInRing () |
void | SetClosure () |
void | UnsetHash () |
void | UnsetWedge () |
void | UnsetUp () |
void | UnsetDown () |
void | UnsetAromatic () |
void | UnsetKekule () |
Bond data request methods | |
unsigned int | GetIdx () const |
unsigned int | GetBO () const |
unsigned int | GetBondOrder () const |
unsigned int | GetFlags () const |
unsigned int | GetBeginAtomIdx () const |
unsigned int | GetEndAtomIdx () const |
OBAtom * | GetBeginAtom () |
const OBAtom * | GetBeginAtom () const |
OBAtom * | GetEndAtom () |
const OBAtom * | GetEndAtom () const |
OBAtom * | GetNbrAtom (OBAtom *ptr) |
OBMol * | GetParent () |
double | GetEquibLength () |
double | GetLength () |
unsigned int | GetNbrAtomIdx (OBAtom *ptr) |
property request methods | |
bool | IsAromatic () const |
bool | IsInRing () const |
bool | IsRotor () |
bool | IsAmide () |
bool | IsPrimaryAmide () |
bool | IsSecondaryAmide () |
bool | IsEster () |
bool | IsCarbonyl () |
bool | IsSingle () |
bool | IsDouble () |
bool | IsTriple () |
bool | IsKSingle () |
bool | IsKDouble () |
bool | IsKTriple () |
bool | IsClosure () |
bool | IsUp () |
bool | IsDown () |
bool | IsWedge () |
bool | IsHash () |
bool | IsDoubleBondGeometry () |
Generic data handling methods (via OBGenericData) | |
bool | HasData (const std::string &) |
bool | HasData (const char *) |
bool | HasData (const unsigned int type) |
void | DeleteData (unsigned int type) |
void | DeleteData (OBGenericData *) |
void | DeleteData (std::vector< OBGenericData * > &) |
void | SetData (OBGenericData *d) |
unsigned int | DataSize () const |
OBGenericData * | GetData (const unsigned int type) |
OBGenericData * | GetData (const std::string &) |
OBGenericData * | GetData (const char *) |
std::vector< OBGenericData * > & | GetData () |
std::vector< OBGenericData * > | GetData (DataOrigin source) |
OBDataIterator | BeginData () |
OBDataIterator | EndData () |
Static Public Member Functions | |
static const char * | ClassDescription () |
Public Attributes | |
bool | Visit |
Protected Member Functions | |
bool | HasFlag (int flag) |
void | SetFlag (int flag) |
void | UnsetFlag (int flag) |
Protected Attributes | |
unsigned int | _idx |
OBMol * | _parent |
OBAtom * | _bgn |
OBAtom * | _end |
char | _order |
unsigned short int | _flags |
std::vector< OBGenericData * > | _vdata |
The OBBond class is straightforward in its data access and modification methods. OBBonds store pointers to the atoms on each end of the bond. In storing pointers to atoms instead of integer indices, the necessity of having to reorder bonds when atoms are shuffled, added, or delete is obviated.
While methods indicate "begin" and "end" atoms in the bond, all methods are designed to be independent of atom ordering, with the exception of stereochemically aware properties such as IsUp(), IsDown(), IsWedge, or IsHash().
OBBond | ( | ) |
Constructor.
~OBBond | ( | ) | [virtual] |
Destructor.
bool HasFlag | ( | int | flag | ) | [inline, protected] |
void SetFlag | ( | int | flag | ) | [inline, protected] |
void UnsetFlag | ( | int | flag | ) | [inline, protected] |
void SetIdx | ( | int | idx | ) | [inline] |
Set the internal bond index.
void SetBO | ( | int | order | ) |
Set the bond order to order
(i.e., 1 = single, 2 = double, 5 = aromatic).
void SetBondOrder | ( | int | order | ) |
Set the bond order to order
(i.e., 1 = single, 2 = double, 5 = aromatic).
void SetBegin | ( | OBAtom * | begin | ) | [inline] |
Set the beginning atom of this bond to begin
. Does not update begin
.
void SetEnd | ( | OBAtom * | end | ) | [inline] |
Set the ending atom of this bond to end
. Does not update end
.
void SetParent | ( | OBMol * | ptr | ) | [inline] |
Set the parent molecule to ptr
. Does not update parent.
void SetLength | ( | OBAtom * | fixed, | |
double | length | |||
) |
Change the bond length to length
, while keeping fixed
stationary.
Set the main bond information (i.e., when creating a bond).
Mark the main information for a bond
idx | The unique bond index for this bond (inside an OBMol) | |
begin | The 'beginning' atom for the bond | |
end | The 'end' atom for the bond | |
order | The bond order (i.e., 1 = single, 2 = double... 5 = aromatic) | |
flags | Any initial property flags |
void SetKSingle | ( | ) |
void SetKDouble | ( | ) |
void SetKTriple | ( | ) |
void SetAromatic | ( | ) | [inline] |
Mark that this bond is aromatic. Does not update atoms or validate.
void SetHash | ( | ) | [inline] |
Mark that this bond has 2D "hash" notation (i.e., goes in a negative Z direction from the beginning to end atoms).
void SetWedge | ( | ) | [inline] |
Mark that this bond has 2D "wedge" notation (i.e., goes in a positive Z direction from the beginning to end atoms).
void SetUp | ( | ) | [inline] |
Mark that this bond has an "up" torsion for double-bond stereochem (i.e., "/" in SMILES notation.
void SetDown | ( | ) | [inline] |
Mark that this bond has an "down" torsion for double-bond stereochem (i.e., "\" in SMILES notation.
void SetInRing | ( | ) | [inline] |
Mark that this bond is in a ring. Primarily for internal use.
void SetClosure | ( | ) | [inline] |
Mark that this bond indicates a ring closure when walking the molecule.
void UnsetHash | ( | ) | [inline] |
Clear any indication of 2D "hash" notation from SetHash().
void UnsetWedge | ( | ) | [inline] |
Clear any indication of 2D "wedge" notation from SetWedge().
void UnsetUp | ( | ) | [inline] |
Clear any indication of "/" double bond stereochemistry from SetUp().
void UnsetDown | ( | ) | [inline] |
Clear any indication of "\" double bond stereochemistry from SetDown().
void UnsetAromatic | ( | ) | [inline] |
Clear all aromaticity information for the bond.
void UnsetKekule | ( | ) | [inline] |
Clear all Kekule information for the bond.
unsigned int GetIdx | ( | ) | const [inline] |
unsigned int GetBO | ( | ) | const [inline] |
unsigned int GetBondOrder | ( | ) | const [inline] |
unsigned int GetFlags | ( | ) | const [inline] |
unsigned int GetBeginAtomIdx | ( | ) | const [inline] |
unsigned int GetEndAtomIdx | ( | ) | const [inline] |
OBAtom* GetBeginAtom | ( | ) | [inline] |
const OBAtom* GetBeginAtom | ( | ) | const [inline] |
OBAtom* GetEndAtom | ( | ) | [inline] |
const OBAtom* GetEndAtom | ( | ) | const [inline] |
ptr
(i.e., the end if ptr
is the start)
ptr
is not part of the bond, the beginning atom will always be returned OBMol* GetParent | ( | ) | [inline] |
double GetEquibLength | ( | ) |
Length is given in Angstroms
double GetLength | ( | ) |
unsigned int GetNbrAtomIdx | ( | OBAtom * | ptr | ) | [inline] |
ptr
(i.e., the end if ptr
is the start)
ptr
is not part of the bond, the beginning atom index will always be returned bool IsAromatic | ( | ) | const |
bool IsInRing | ( | ) | const |
bool IsRotor | ( | ) |
Currently, this function classifies any bond with at least one heavy atom, no sp-hybrid atoms (e.g., a triple bond somewhere) not in a ring as a potential rotor. No other bond typing is attempted. For more detailed rotor detection, check the OBRotorList and OBRotorRules classes
bool IsAmide | ( | ) |
bool IsPrimaryAmide | ( | ) |
bool IsSecondaryAmide | ( | ) |
bool IsEster | ( | ) |
bool IsCarbonyl | ( | ) |
bool IsSingle | ( | ) |
bool IsDouble | ( | ) |
bool IsTriple | ( | ) |
bool IsKSingle | ( | ) |
bool IsKDouble | ( | ) |
bool IsKTriple | ( | ) |
bool IsClosure | ( | ) |
bool IsUp | ( | ) | [inline] |
bool IsDown | ( | ) | [inline] |
bool IsWedge | ( | ) | [inline] |
bool IsHash | ( | ) | [inline] |
bool IsDoubleBondGeometry | ( | ) |
This method checks if the geometry around this bond looks unsaturated by measuring the torsion angles formed by all connected atoms X-start=end-Y and checking that they are close to 0 or 180 degrees
bool Clear | ( | void | ) | [virtual, inherited] |
Clear any and all data associated with this object.
This method can be called by OBConversion::Read() before reading data. Derived classes should be sure to call OBBase::Clear() to remove inherited generic data.
virtual OBBase* DoTransformations | ( | const std::map< std::string, std::string > * | ) | [inline, virtual, inherited] |
Perform a set of transformations specified by the user
Typically these are program options to filter or modify an object For example, see OBMol::DoTransformations() and OBMol::ClassDescription()
Reimplemented in OBMol.
static const char* ClassDescription | ( | ) | [inline, static, inherited] |
Reimplemented in OBMol.
T* CastAndClear | ( | bool | clear = true |
) | [inline, inherited] |
By default clears the object. Called from ReadMolecule of most format classes.
bool HasData | ( | const std::string & | ) | [inherited] |
bool HasData | ( | const char * | ) | [inherited] |
bool HasData | ( | const unsigned int | type | ) | [inherited] |
void DeleteData | ( | unsigned int | type | ) | [inherited] |
Delete any data matching the given OBGenericDataType.
void DeleteData | ( | OBGenericData * | ) | [inherited] |
Delete the given generic data from this object.
void DeleteData | ( | std::vector< OBGenericData * > & | ) | [inherited] |
Delete all of the given generic data from this object.
void SetData | ( | OBGenericData * | d | ) | [inline, inherited] |
Adds a data object; does nothing if d==NULL.
unsigned int DataSize | ( | ) | const [inline, inherited] |
OBGenericData * GetData | ( | const unsigned int | type | ) | [inherited] |
OBGenericData * GetData | ( | const std::string & | ) | [inherited] |
OBGenericData * GetData | ( | const char * | ) | [inherited] |
std::vector<OBGenericData*>& GetData | ( | ) | [inline, inherited] |
std::vector< OBGenericData * > GetData | ( | DataOrigin | source | ) | [inherited] |
OBDataIterator BeginData | ( | ) | [inline, inherited] |
OBDataIterator EndData | ( | ) | [inline, inherited] |
char _order [protected] |
Bond order (1, 2, 3, 5=aromatic).
unsigned short int _flags [protected] |
Any flags for this bond.
bool Visit |
Whether this bond has been visited by a graph algorithm.
std::vector<OBGenericData*> _vdata [protected, inherited] |
Custom data.