82 ExtendedCisTrans = (1<<1),
83 SquarePlanar = (1<<2),
85 ExtendedTetrahedral = (1<<4),
86 TrigonalBipyramidal = (1<<5),
145 typedef unsigned long Ref;
151 ImplicitRef = UINT_MAX - 1
175 static Refs
MakeRefs(Ref ref1, Ref ref2, Ref ref3, Ref ref4 = NoRef)
182 refs.push_back(ref4);
197 static bool ContainsSameRefs(
const Refs &refs1,
const Refs &refs2);
201 static bool ContainsRef(
const Refs &refs,
unsigned long ref);
226 static int NumInversions(
const Refs &refs);
236 static void Permutate(Refs &refs,
unsigned int i,
unsigned int j);
248 static Refs Permutated(
const Refs &refs,
unsigned int i,
unsigned int j);
272 type(_type), id(_id), para(_para)
332 m_mol(mol), m_specified(true)
395 m_mol(mol), m_init(false), m_perceive(perceive)
404 unsigned int NumTetrahedralStereo();
409 bool HasTetrahedralStereo(
unsigned long atomId);
423 unsigned int NumCisTransStereo();
428 bool HasCisTransStereo(
unsigned long bondId);
442 unsigned int NumSquarePlanarStereo();
447 bool HasSquarePlanarStereo(
unsigned long atomId);
456 template<
int StereoType>
457 bool HasStereo(
unsigned long id);
459 T* GetStereo(
unsigned long id);
466 inline void EnsureInit() {
if (!m_init) InitMaps(); }
477 std::map<unsigned long, OBTetrahedralStereo*> m_tetrahedralMap;
478 std::map<unsigned long, OBCisTransStereo*> m_cistransMap;
479 std::map<unsigned long, OBSquarePlanarStereo*> m_squarePlanarMap;
527 std::map<OBBond*, enum OBStereo::BondDirection> *updown = NULL,
bool force =
false);
604 const OBStereoUnitSet &stereoUnits,
bool addToMol =
true);
650 const OBStereoUnitSet &stereoUnits,
bool addToMol =
true);
671 const OBStereoUnitSet &stereoUnits,
bool addToMol =
true);
710 const OBStereoUnitSet &stereoUnits,
bool addToMol =
true);
742 const OBStereoUnitSet &stereoUnits,
743 const std::map<OBBond*, enum OBStereo::BondDirection> *updown = NULL,
bool addToMol =
true);
771 std::map<OBBond*, enum OBStereo::BondDirection> &updown,
772 std::map<OBBond*, OBStereo::Ref> &from);
831 const OBStereoUnitSet &stereoUnits,
832 bool addToMol =
true);
919 const std::vector<unsigned int> &symClasses);
997 const std::vector<unsigned int> &symClasses,
bool IsSpecified() const
Definition: stereo.h:360
OBStereoBase(OBMol *mol)
Definition: stereo.h:330
Struct representing a single stereogenic unit.
Definition: stereo.h:258
Definition: residue.h:336
OBIsomorphismMapper class for finding isomorphisms.
std::set< OBBond * > GetUnspecifiedCisTrans(OBMol &mol)
Base class for generic data.
Definition: base.h:188
std::vector< OBCisTransStereo * > CisTransFrom3D(OBMol *mol, const OBStereoUnitSet &stereoUnits, bool addToMol=true)
Stereochemistry data (see OBStereoBase)
Definition: base.h:147
Base classes to build a graph.
OBStereoUnitSet FindStereogenicUnits(OBMol *mol, const std::vector< unsigned int > &symClasses)
Refs::const_iterator ConstRefIter
Definition: stereo.h:164
Class for handling and storing cis/trans stereochemistry.
Definition: cistrans.h:75
void ImplicitRefToStereo(OBMol &mol, OBStereo::Ref centerId, OBStereo::Ref newId)
void StereoFrom3D(OBMol *mol, bool force=false)
Perceived by Open Babel library methods.
Definition: base.h:180
void StereoFrom0D(OBMol *mol)
Bond class.
Definition: bond.h:58
OBIsomorphismMapper::Mappings Automorphisms
A group of automorphic permutations.
Definition: isomorphism.h:206
void SetSpecified(bool specified)
Definition: stereo.h:356
Placeholder for enums & Ref/Refs related functions.
Definition: stereo.h:75
std::vector< OBTetrahedralStereo * > TetrahedralFrom3D(OBMol *mol, const OBStereoUnitSet &stereoUnits, bool addToMol=true)
Molecule Class.
Definition: mol.h:118
OBStereoFacade(OBMol *mol, bool perceive=true)
Definition: stereo.h:394
void StereoRefToImplicit(OBMol &mol, OBStereo::Ref atomId)
View
Definition: stereo.h:119
std::vector< OBTetrahedralStereo * > TetrahedralFrom0D(OBMol *mol, const OBStereoUnitSet &stereoUnits, bool addToMol=true)
static Refs MakeRefs(Ref ref1, Ref ref2, Ref ref3, Ref ref4=NoRef)
Definition: stereo.h:175
BondDirection
Definition: stereo.h:94
Shape
Definition: stereo.h:108
void StereoFrom2D(OBMol *mol, std::map< OBBond *, enum OBStereo::BondDirection > *updown=NULL, bool force=false)
OBMol * GetMolecule() const
Definition: stereo.h:346
virtual ~OBStereoBase()
Definition: stereo.h:338
unsigned long id
Definition: stereo.h:277
Base class for all stereochemistry classes.
Definition: stereo.h:321
bool para
the atom/bond (depends on type) unique id
Definition: stereo.h:278
Winding
Definition: stereo.h:130
void PerceiveStereo(OBMol *mol, bool force=false)
std::vector< OBStereoUnit > OBStereoUnitSet
A single set of OBStereoUnit objects.
Definition: stereo.h:287
Facade to simplify retrieval of OBStereoBase derived objects.
Definition: stereo.h:384
bool TetStereoToWedgeHash(OBMol &mol, std::map< OBBond *, enum OBStereo::BondDirection > &updown, std::map< OBBond *, OBStereo::Ref > &from)
std::vector< Ref > Refs
Definition: stereo.h:156
std::vector< OBTetrahedralStereo * > TetrahedralFrom2D(OBMol *mol, const OBStereoUnitSet &stereoUnits, bool addToMol=true)
Class for handling and storing square planar stereochemistry.
Definition: squareplanar.h:48
std::vector< OBStereoUnitSet > OBStereoUnitSetOfSets
A set of sets of OBStereoUnit objects.
Definition: stereo.h:294
std::vector< OBCisTransStereo * > CisTransFrom2D(OBMol *mol, const OBStereoUnitSet &stereoUnits, const std::map< OBBond *, enum OBStereo::BondDirection > *updown=NULL, bool addToMol=true)
Class for handling and storing tetrahedral atom stereochemistry.
Definition: tetrahedral.h:58
OBStereoUnit()
Definition: stereo.h:264
unsigned long Ref
Definition: stereo.h:145
std::vector< OBCisTransStereo * > CisTransFrom0D(OBMol *mol, const OBStereoUnitSet &stereoUnits, bool addToMol=true)
Type
Definition: stereo.h:80
OBStereo::Type type
the type for this stereogenic unit
Definition: stereo.h:276
Refs::iterator RefIter
Definition: stereo.h:160
OBStereoUnit(OBStereo::Type _type, unsigned long _id, bool _para=false)
Definition: stereo.h:271
Global namespace for all Open Babel code.
Definition: alias.h:22