10 #ifndef _RD_DEPICT_UTILS_H_ 11 #define _RD_DEPICT_UTILS_H_ 36 bool operator() (
const PAIR_I_I &pd1,
const PAIR_I_I &pd2)
const {
37 return pd1.first > pd2.first;
41 typedef std::priority_queue<PAIR_I_I, VECT_PII, gtIIPair>
PR_QUEUE;
162 bool ascending=
true);
187 angle = 2.*
M_PI/degree;
220 double cross = pt1.
x*pt2.
y - pt1.
y*pt2.
x;
221 double diffAngle =
M_PI - remAngle;
328 const VECT_C_POINT &nbrLocs);
unsigned int MAX_COLL_ITERS
std::pair< int, int > PAIR_I_I
std::pair< int, int > INT_PAIR
RDKit::INT_VECT getRotatableBonds(const RDKit::ROMol &mol, unsigned int aid1, unsigned int aid2)
find the rotatable bonds on the shortest path between two atoms we will ignore ring atoms...
double computeSubAngle(unsigned int degree, RDKit::Atom::HybridizationType htype)
computes a subangle for an atom of given hybridization and degree
hybridization that hasn't been specified
RDGeom::Point2D computeBisectPoint(const RDGeom::Point2D &rcr, double ang, const RDGeom::Point2D &nb1, const RDGeom::Point2D &nb2)
Find a point that bisects the angle at rcr.
Defines the primary molecule class ROMol as well as associated typedefs.
unsigned int NUM_BONDS_FLIPS
void reflectPoints(RDGeom::INT_POINT2D_MAP &coordMap, const RDGeom::Point2D &loc1, const RDGeom::Point2D &loc2)
Reflect a set of point through a the line joining two point.
std::pair< double, PAIR_I_I > PAIR_D_I_I
double computeAngle(const RDGeom::Point2D ¢er, const RDGeom::Point2D &loc1, const RDGeom::Point2D &loc2)
computes the rotation angle between two vectors
INT_PAIR_VECT findBondsPairsToPermuteDeg4(const RDGeom::Point2D ¢er, const RDKit::INT_VECT &nbrBids, const VECT_C_POINT &nbrLocs)
Find pairs of bonds that can be permuted at a non-ring degree 4 atom.
pulls in the core RDKit functionality
ROMol is a molecule class that is intended to have a fixed topology.
std::vector< INT_VECT > VECT_INT_VECT
std::vector< const RDGeom::Point2D * > VECT_C_POINT
std::map< int, Point2D > INT_POINT2D_MAP
std::vector< INT_PAIR > INT_PAIR_VECT
std::priority_queue< PAIR_I_I, VECT_PII, gtIIPair > PR_QUEUE
int pickFirstRingToEmbed(const RDKit::ROMol &mol, const RDKit::VECT_INT_VECT &fusedRings)
pick the ring to embed first in a fused system
std::vector< int > INT_VECT
RDKit::INT_VECT setNbrOrder(unsigned int aid, const RDKit::INT_VECT &nbrs, const RDKit::ROMol &mol)
Set the neighbors yet to added to aid such that the atoms with the most subs fall on opposite sides...
void transformPoints(RDGeom::INT_POINT2D_MAP &nringCor, const RDGeom::Transform2D &trans)
std::pair< double, INT_PAIR > DOUBLE_INT_PAIR
INT_PAIR_VECT::const_iterator INT_PAIR_VECT_CI
double angleTo(const Point2D &other) const
HybridizationType
store hybridization
std::vector< PAIR_I_I > VECT_PII
RDGeom::Point2D computeNormal(const RDGeom::Point2D ¢er, const RDGeom::Point2D &other)
computes and return the normal of a vector between two points
RDGeom::INT_POINT2D_MAP embedRing(const RDKit::INT_VECT &ring)
Some utility functions used in generating 2D coordinates.
RDGeom::Point2D reflectPoint(const RDGeom::Point2D &point, const RDGeom::Point2D &loc1, const RDGeom::Point2D &loc2)
bool operator()(const PAIR_I_I &pd1, const PAIR_I_I &pd2) const
void getNbrAtomAndBondIds(unsigned int aid, const RDKit::ROMol *mol, RDKit::INT_VECT &aids, RDKit::INT_VECT &bids)
Get the ids of the atoms and bonds that are connected to aid.
double HETEROATOM_COLL_SCALE
T rankAtomsByRank(const RDKit::ROMol &mol, const T &commAtms, bool ascending=true)
Sort a list of atoms by their CIP rank.
RDKit::INT_VECT findNextRingToEmbed(const RDKit::INT_VECT &doneRings, const RDKit::VECT_INT_VECT &fusedRings, int &nextId)
From a given set of rings find the ring the largest common elements with other rings.
int rotationDir(const RDGeom::Point2D ¢er, const RDGeom::Point2D &loc1, const RDGeom::Point2D &loc2, double remAngle)
computes the rotation direction between two vectors
std::list< PAIR_D_I_I > LIST_PAIR_DII
RDKit::INT_VECT getAllRotatableBonds(const RDKit::ROMol &mol)
find all the rotatable bonds in a molecule we will ignore ring atoms, and double bonds which are mark...
Defines the editable molecule class RWMol.