The Gnome Chemistry Utils  0.14.17
Public Member Functions | List of all members
gcu::Cycle Class Reference

#include <gcu/cycle.h>

Inheritance diagram for gcu::Cycle:
gcu::Chain gcu::Object

Public Member Functions

 Cycle (Molecule *molecule)
 
virtual ~Cycle ()
 
void Simplify ()
 
virtual void Erase (Atom *pAtom1, Atom *pAtom2)
 
virtual void Insert (Atom *pAtom1, Atom *pAtom2, Chain &chain)
 
bool IsBetterForBonds (Cycle *pCycle)
 
void GetAngles2D (Bond *pBond, double *a1, double *a2)
 
int GetFusedBonds ()
 
unsigned GetBridgeLength (Cycle *c, Atom *atom, Bond *bond)
 
std::string Name ()
 
- Public Member Functions inherited from gcu::Chain
 Chain (Bond *pBond, Atom *pAtom=NULL, TypeId Type=ChainType)
 
 Chain (Molecule *molecule, Bond *pBond, TypeId Type=ChainType)
 
 Chain (Molecule *molecule, Atom *pAtom, TypeId Type=ChainType)
 
virtual ~Chain ()
 
void FindCycles (Atom *pAtom)
 
bool FindCycle (Atom *pAtom, Bond *pBond)
 
void Extract (Atom *pAtom1, Atom *pAtom2, Chain &chain)
 
void Reverse ()
 
void AddBond (Atom *start, Atom *end)
 
unsigned GetUnsaturations ()
 
unsigned GetHeteroatoms ()
 
bool Contains (Atom *pAtom)
 
bool Contains (Bond *pBond)
 
unsigned GetLength ()
 
double GetMeanBondLength ()
 
AtomGetFirstAtom ()
 
AtomGetNextAtom (Atom *pAtom)
 
unsigned BuildLength (unsigned *cycle_size=NULL, unsigned *cycle_pos=NULL)
 
- Public Member Functions inherited from gcu::Object
 Object (TypeId Id=OtherType)
 
virtual ~Object ()
 
TypeId GetType () const
 
void SetId (gchar const *Id)
 
char const * GetId () const
 
virtual void AddChild (Object *object)
 
ObjectGetMolecule () const
 
ObjectGetReaction () const
 
ObjectGetGroup () const
 
DocumentGetDocument () const
 
ApplicationGetApplication () const
 
ObjectGetParentOfType (TypeId Id) const
 
ObjectGetChild (const gchar *Id) const
 
ObjectGetFirstChild (std::map< std::string, Object *>::iterator &i)
 
ObjectGetNextChild (std::map< std::string, Object *>::iterator &i)
 
ObjectGetDescendant (const char *Id) const
 
ObjectGetParent () const
 
void SetParent (Object *Parent)
 
virtual xmlNodePtr Save (xmlDocPtr xml) const
 
virtual bool Load (xmlNodePtr node)
 
virtual bool GetCoords (double *x, double *y, double *z=NULL) const
 
virtual void Move (double x, double y, double z=0.)
 
virtual void Transform2D (Matrix2D &m, double x, double y)
 
bool SaveChildren (xmlDocPtr xml, xmlNodePtr node) const
 
void SaveId (xmlNodePtr node) const
 
xmlNodePtr GetNodeByProp (xmlNodePtr node, char const *Property, char const *Id)
 
xmlNodePtr GetNextNodeByProp (xmlNodePtr node, char const *Property, char const *Id)
 
xmlNodePtr GetNodeByName (xmlNodePtr node, char const *Name)
 
xmlNodePtr GetNextNodeByName (xmlNodePtr node, char const *Name)
 
bool HasChildren () const
 
unsigned GetChildrenNumber () const
 
virtual ObjectGetAtomAt (double x, double y, double z=0.)
 
virtual bool Build (std::set< Object * > const &Children) throw (std::invalid_argument)
 
virtual double GetYAlign ()
 
virtual bool BuildContextualMenu (UIManager *uim, Object *object, double x, double y)
 
void EmitSignal (SignalId Signal)
 
virtual bool OnSignal (SignalId Signal, Object *Child)
 
void Lock (bool state=true)
 
bool IsLocked ()
 
ObjectGetFirstLink (std::set< Object *>::iterator &i)
 
ObjectGetNextLink (std::set< Object *>::iterator &i)
 
void Link (Object *object)
 
void Unlink (Object *object)
 
virtual void OnUnlink (Object *object)
 
void GetPossibleAncestorTypes (std::set< TypeId > &types) const
 
virtual bool SetProperty (unsigned property, char const *value)
 
virtual std::string GetProperty (unsigned property) const
 
virtual void OnLoaded ()
 
void SetDirty (bool dirty=true)
 
virtual void Clear ()
 
std::string Identity ()
 
virtual char const * HasPropertiesDialog () const
 
virtual bool CanSelect () const
 
virtual void NotifyEmpty ()
 
void ShowPropertiesDialog ()
 
bool GetDirty (void) const
 

Additional Inherited Members

- Static Public Member Functions inherited from gcu::Object
static TypeId AddType (std::string TypeName, Object *(*CreateFunc)(), TypeId id=OtherType)
 
static void AddAlias (TypeId id, std::string TypeName)
 
static ObjectCreateObject (const std::string &TypeName, Object *parent=NULL)
 
static TypeId GetTypeId (const std::string &Name)
 
static std::string GetTypeName (TypeId Id)
 
static void AddMenuCallback (TypeId Id, BuildMenuCb cb)
 
static void AddRule (TypeId type1, RuleId rule, TypeId type2)
 
static void AddRule (const std::string &type1, RuleId rule, const std::string &type2)
 
static const std::set< TypeId > & GetRules (TypeId type, RuleId rule)
 
static const std::set< TypeId > & GetRules (const std::string &type, RuleId rule)
 
static void SetCreationLabel (TypeId Id, std::string Label)
 
static const std::string & GetCreationLabel (TypeId Id)
 
static const std::string & GetCreationLabel (const std::string &TypeName)
 
static SignalId CreateNewSignalId ()
 
- Protected Member Functions inherited from gcu::Object
virtual DialogBuildPropertiesDialog ()
 
- Protected Attributes inherited from gcu::Chain
std::map< Atom *, ChainEltm_Bonds
 
Moleculem_Molecule
 

Detailed Description

Represents a cycle.

Definition at line 36 of file cycle.h.

Constructor & Destructor Documentation

◆ Cycle()

gcu::Cycle::Cycle ( Molecule molecule)
Parameters
moleculea molecule.

Constructs an initially empty cycle for the molecule.

◆ ~Cycle()

virtual gcu::Cycle::~Cycle ( )
virtual

The destructor.

Member Function Documentation

◆ Erase()

virtual void gcu::Cycle::Erase ( Atom pAtom1,
Atom pAtom2 
)
virtual
Parameters
pAtom1an atom in the source chain.
pAtom2an atom in the source chain.

Erases a sub-chain. The result is not a cycle. This should be followed by the insertion of a new chain to close the cycle again.

Reimplemented from gcu::Chain.

◆ GetAngles2D()

void gcu::Cycle::GetAngles2D ( Bond pBond,
double *  a1,
double *  a2 
)
Parameters
pBonda bond of the cycle.
a1where to put the result for the first angle.
a2where to put the result for the first angle.

Evaluates the angles between the bond and its two adjacent bonds in the cycle.

◆ GetBridgeLength()

unsigned gcu::Cycle::GetBridgeLength ( Cycle c,
Atom atom,
Bond bond 
)
Parameters
ca cycle.
atoman atom common to both cycles.
bonda bond common to both cycles and starting at atom.
Returns
the bridge length starting at atom and going through bond.

◆ GetFusedBonds()

int gcu::Cycle::GetFusedBonds ( )
Returns
the number of bonds shared with other cycles.

◆ Insert()

virtual void gcu::Cycle::Insert ( Atom pAtom1,
Atom pAtom2,
Chain chain 
)
virtual
Parameters
pAtom1an atom in the source chain.
pAtom2an atom in the source chain.
chainthe source chain.

Inserts a chain. Bothe atoms must already be in the target cycle and the insertion should close the cycle.

Reimplemented from gcu::Chain.

◆ IsBetterForBonds()

bool gcu::Cycle::IsBetterForBonds ( Cycle pCycle)
Parameters
pCycleanother cycle sharing a bond.

Compares two cycles in competition to know which is the best to contain the second line of a shared double bond.

Returns
true if the this instance is to be preferred, false otherwise.

◆ Name()

std::string gcu::Cycle::Name ( )
virtual
Returns
the localized object generic name.

Reimplemented from gcu::Chain.

◆ Simplify()

void gcu::Cycle::Simplify ( )

Finds the smallest cycles collection in a polycyclic system.


The documentation for this class was generated from the following file: