kekulize.cpp File Reference

Alternate algorithm to kekulize a molecule (OBMol::NewPerceiveKekuleBonds()). More...

#include <openbabel/babelconfig.h>
#include <openbabel/mol.h>
#include <openbabel/ring.h>
#include <openbabel/obiter.h>
#include <openbabel/graphsym.h>
#include <sstream>

Namespaces

namespace  OpenBabel

Defines

#define DEBUG   0
#define MAX_DEPTH   30
#define UNASSIGNED   0
#define SINGLE   1
#define DOUBLE   2
#define NOT_IN_RINGS   -1
#define DOUBLE_ASSIGNED   0
#define DOUBLE_ALLOWED   1
#define DOUBLE_PROHIBITED   2

Functions

int expand_cycle (OBMol *mol, OBAtom *atom, OBBitVec &avisit, OBBitVec &cvisit, const OBBitVec &potAromBonds, int rootIdx, Timeout &timeout, int prevAtomIdx, int depth)
bool expandKekulize (OBMol *mol, int bond_idx, std::vector< int > &atomState, std::vector< int > &bondState, Timeout &timeout)
bool expand_kekulize_lssr (OBMol *mol, std::vector< int > &atomState, std::vector< int > &bondState, std::vector< OBRing * > &lssr, std::vector< bool > &lssrAssigned, std::vector< OBBond * > &bondsThisRing)
int count_assigned_bonds (std::vector< OBBond * > &bondsThisRing, std::vector< int > &bondState)
bool isPotentialAromaticAtom (OBAtom *atom)
void potentialAromaticBonds (OBMol *mol, OBBitVec &bonds)
void get_bonds_of_ring (OBMol *mol, OBRing *ring, std::vector< OBBond * > &ring_bonds)
bool has_leftover_electrons (OBMol *mol, std::vector< int > &atomState)
bool has_leftover_electrons (OBMol *mol, std::vector< int > &atomState, std::vector< int > &bondState)

Detailed Description

Alternate algorithm to kekulize a molecule (OBMol::NewPerceiveKekuleBonds()).


Define Documentation

#define MAX_DEPTH   30
#define UNASSIGNED   0
#define SINGLE   1

Referenced by OBMol::start_kekulize().

#define DOUBLE   2
#define NOT_IN_RINGS   -1
#define DOUBLE_ASSIGNED   0
#define DOUBLE_PROHIBITED   2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines