41 #ifndef OBJECTS_PCSUBSTANCE_PC_STEREOCENTER_BASE_HPP
42 #define OBJECTS_PCSUBSTANCE_PC_STEREOCENTER_BASE_HPP
48 #ifndef BEGIN_objects_SCOPE
49 # define BEGIN_objects_SCOPE BEGIN_SCOPE(objects)
50 # define END_objects_SCOPE END_SCOPE(objects)
110 virtual void Reset(
void);
113 virtual void ResetSelection(
void);
119 E_Choice Which(
void)
const;
125 void CheckSelected(E_Choice index)
const;
131 NCBI_NORETURN
void ThrowInvalidSelection(E_Choice index)
const;
139 static string SelectionName(E_Choice index);
175 bool IsTetrahedral(
void)
const;
201 bool IsPlanar(
void)
const;
207 const TPlanar& GetPlanar(
void)
const;
227 bool IsSquareplanar(
void)
const;
253 bool IsOctahedral(
void)
const;
279 bool IsBipyramid(
void)
const;
305 bool IsTshape(
void)
const;
311 const TTshape& GetTshape(
void)
const;
331 bool IsPentagonal(
void)
const;
360 static const char*
const sm_SelectionNames[];
Allowed Stereogenic Center Types [Using IUPAC Stereogenic Center recommendations and terminology].
CPC_StereoPentagonalBiPyramid –.
CPC_StereoSquarePlanar –.
CPC_StereoTrigonalBiPyramid –.
Base class for all serializable objects.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define NCBI_PCSUBSTANCE_EXPORT
E_Choice Which(void) const
Which variant is currently selected.
void DoSelect(E_Choice index, CObjectMemoryPool *pool=0)
virtual void ResetSelection(void)
Reset the selection (set it to e_not_set).
CPC_StereoCenter_Base & operator=(const CPC_StereoCenter_Base &)
void Select(E_Choice index, EResetVariant reset, CObjectMemoryPool *pool)
Select the requested variant if needed, allocating CObject variants from memory pool.
CPC_StereoSquarePlanar TSquareplanar
CPC_StereoTetrahedral TTetrahedral
DECLARE_INTERNAL_TYPE_INFO()
bool IsBipyramid(void) const
Check if variant Bipyramid is selected.
CPC_StereoCenter_Base(const CPC_StereoCenter_Base &)
void ThrowInvalidSelection(E_Choice index) const
Throw 'InvalidSelection' exception.
NCBI_NS_NCBI::CSerialObject * m_object
bool IsOctahedral(void) const
Check if variant Octahedral is selected.
CPC_StereoTrigonalBiPyramid TBipyramid
CPC_StereoPentagonalBiPyramid TPentagonal
bool IsTetrahedral(void) const
Check if variant Tetrahedral is selected.
E_ChoiceStopper
Maximum+1 value of the choice variant enumerator.
CPC_StereoOctahedral TOctahedral
bool IsPentagonal(void) const
Check if variant Pentagonal is selected.
void CheckSelected(E_Choice index) const
Verify selection, throw exception if it differs from the expected.
bool IsTshape(void) const
Check if variant Tshape is selected.
bool IsSquareplanar(void) const
Check if variant Squareplanar is selected.
bool IsPlanar(void) const
Check if variant Planar is selected.
void Select(E_Choice index, EResetVariant reset=eDoResetVariant)
Select the requested variant if needed.
@ e_Octahedral
Octahedral (OC-6) / Square Pyramid (SPY-5) StereoCenters.
@ e_Tshape
T-Shaped (TS-3) StereoCenters.
@ e_Planar
Planar (SP2) StereoCenter.
@ e_Tetrahedral
Tetrahedral (SP3) StereoCenter.
@ e_Bipyramid
Trigonal BiPyramid (TBPY-4 and TBPY-5) StereoCenters.
@ e_Squareplanar
Square Planar (SP4) StereoCenter.
@ e_not_set
No variant selected.
@ e_Pentagonal
Pentagonal BiPyramid (PBPY-7) StereoCenters.
const GenericPointer< typename T::ValueType > T2 value