OBTetraPlanarStereo Class Reference
Base class for handling and storing planar stereochemistry with 4 reference atoms. More...
#include <openbabel/stereo/tetraplanar.h>

Public Member Functions | |
OBTetraPlanarStereo (OBMol *mol) | |
virtual | ~OBTetraPlanarStereo () |
virtual OBGenericData * | Clone (OBBase *) const |
void | SetAttribute (const std::string &v) |
void | SetOrigin (const DataOrigin s) |
virtual const std::string & | GetAttribute () const |
unsigned int | GetDataType () const |
virtual const std::string & | GetValue () const |
virtual DataOrigin | GetOrigin () const |
Geniric (for all OBStereo::Type) stereochemistry | |
OBMol * | GetMolecule () const |
virtual OBStereo::Type | GetType () const =0 |
void | SetSpecified (bool specified) |
bool | IsSpecified () const |
Static Public Member Functions | |
template<typename ConfigType > | |
static ConfigType | ToConfig (const ConfigType &cfg, unsigned long start, OBStereo::Shape shape=OBStereo::ShapeU) |
Protected Attributes | |
std::string | _attr |
unsigned int | _type |
DataOrigin | _source |
Detailed Description
Base class for handling and storing planar stereochemistry with 4 reference atoms.

Combinations
The four reference ids can be treated like a sequence of 4 numbers. Each element can only occur once. This means there are 4! = 24 combinations.
These are the 24 possible combinations or permutations.
1234 2134 3124 4123 1243 2143 3142 4132 1324 2314 3214 4213 1342 2341 3241 4231 1423 2413 3412 4312 1432 2431 3421 4321
Based on which reference ids are on opposite sides (180°), it is possible to divide these 24 combinations in three sets. For this it is also needed to make use of a shape to map the reference id indexes on the points in the plane. Without these shapes or a fixed meaning, these sequences have no meaning. The use of these shapes (U, Z & 4) is illustrated in the figure below:

In the figure, it can be seen the OBStereo::ShapeU implies the 1st reference id in the sequence is opposite to the 3th and the 2nd is opposite to the 4th. The same can be done for OBStereo::ShapeZ and OBStereo::Shape
Grouped by opposite reference ids using OBStereo::Shape4
1-2, 3-4 : 1234, 1243, 2134, 2143, 3412, 3421, 4312, 4321 1-3, 2-4 : 1324, 1242, 2413, 2431, 3124, 3142, 4213, 4231 1-4, 2-3 : 1423, 1432, 2314, 2341, 3214, 3241, 4123, 4132
Internally the reference ids are stored in a U shape. The OBTetraPlanarStereo::ToInternal() and OBTetraPlanarStereo::ToShape() methods convert between the internally used U shape and the other shapes.
Like all stereo classes, errors, warnings or info is reported using OBMessageHandler.
- Note:
- U shaped ordering can also be considered circular and is the only shape that can be rotated lexicographically.
- Since:
- version 2.3
Constructor & Destructor Documentation
OBTetraPlanarStereo | ( | OBMol * | mol | ) |
virtual ~OBTetraPlanarStereo | ( | ) | [virtual] |
Member Function Documentation
static ConfigType ToConfig | ( | const ConfigType & | cfg, | |
unsigned long | start, | |||
OBStereo::Shape | shape = OBStereo::ShapeU | |||
) | [inline, static] |
OBMol* GetMolecule | ( | ) | const [inline, inherited] |
Get the molecule. This can be used by subclasses when more information is needed (e.g. OBCisTransStereo::GetCisRef, ...).
virtual OBStereo::Type GetType | ( | ) | const [pure virtual, inherited] |
Reimplemented by subclasses to return the type defined in OBStereo::Type.
Implemented in OBCisTransStereo, OBSquarePlanarStereo, and OBTetrahedralStereo.
void SetSpecified | ( | bool | specified | ) | [inline, inherited] |
Set whether the stereochemistry is specified. Comparing a specified OBStereoBase derived class (or it's Config struct) with an unspecified one, always returns true.
bool IsSpecified | ( | ) | const [inline, inherited] |
- Returns:
- True if the stereochemistry is specified.
virtual OBGenericData* Clone | ( | OBBase * | ) | const [inline, virtual, inherited] |
Reimplemented in AliasData, OBAtomClassData, OBCommentData, OBExternalBondData, OBPairData, OBSetData, OBVirtualBond, OBRingData, OBUnitCell, OBConformerData, OBSymmetryData, OBTorsionData, OBAngleData, OBChiralData, OBSerialNums, OBVibrationData, OBDOSData, OBOrbitalData, OBElectronicTransitionData, OBRotationData, OBVectorData, OBMatrixData, OBRateData, OBNasaThermoData, OBRotamerList, OBCisTransStereo, OBSquarePlanarStereo, and OBTetrahedralStereo.
Referenced by OBBase::CloneData(), and OBMoleculeFormat::MakeCombinedMolecule().
void SetAttribute | ( | const std::string & | v | ) | [inline, inherited] |
Set the attribute (key), which can be used to retrieve this data.
Referenced by OBGastChrg::AssignPartialCharges(), OBMol::DoTransformations(), OBMol::FindLSSR(), OBMol::FindSSSR(), OBForceField::GetAtomTypes(), OBMol::GetFormula(), OBMol::GetLSSR(), OBForceField::GetPartialCharges(), OBMol::GetSSSR(), OBDescriptor::PredictAndSave(), and OBMol::SetFormula().
void SetOrigin | ( | const DataOrigin | s | ) | [inline, inherited] |
Set the origin of this data, which can be used to filter the data.
Referenced by OBGastChrg::AssignPartialCharges(), OpenBabel::CalcSignedVolume(), OBMol::DoTransformations(), OBMol::FindAngles(), OBMol::FindLSSR(), OBMol::FindSSSR(), OBMol::FindTorsions(), OBMol::GetFormula(), OBMol::GetLSSR(), OBMol::GetSSSR(), OBDescriptor::PredictAndSave(), and OBMol::SetFormula().
virtual const std::string& GetAttribute | ( | ) | const [inline, virtual, inherited] |
- Returns:
- The attribute (key), which can be used to retrieve this data
Referenced by OBMoleculeFormat::MakeCombinedMolecule().
unsigned int GetDataType | ( | ) | const [inline, inherited] |
- Returns:
- the data type for this object as defined in OBGenericDataType
virtual const std::string& GetValue | ( | ) | const [inline, virtual, inherited] |
Base class returns a default value (the attribute type) but should never be called.
Reimplemented in OBCommentData, and OBPairData.
Referenced by OBDepict::DrawMolecule(), OBDescriptor::FilterCompare(), and OBDescriptor::GetValues().
virtual DataOrigin GetOrigin | ( | ) | const [inline, virtual, inherited] |
Member Data Documentation
std::string _attr [protected, inherited] |
attribute tag (e.g., "UnitCell", "Comment" or "Author")
Referenced by OBRotamerList::Clone(), and OBNasaThermoData::OBNasaThermoData().
unsigned int _type [protected, inherited] |
attribute type -- declared for each subclass
Referenced by OBRotamerList::Clone(), and OBNasaThermoData::OBNasaThermoData().
DataOrigin _source [protected, inherited] |
source of data for accounting
Referenced by OBChiralData::operator=(), OBTorsionData::operator=(), OBAngleData::operator=(), OBConformerData::operator=(), and OBSymmetryData::operator=().
The documentation for this class was generated from the following file: