The Gnome Chemistry Utils  0.14.0
Classes | Typedefs | Enumerations | Functions
gcu Namespace Reference

The Gnome Chemistry Utils C++ classes. More...

Classes

class  Application
class  Atom
class  AtomPair
class  AtomMatchState
class  Bond
struct  ChainElt
class  Chain
class  Chem3dDoc
class  CmdContext
 error output channel. More...
class  Cycle
class  Cylinder
 This class represents and draws a cylinder. More...
class  DialogOwner
class  Dialog
class  Document
class  Element
 Chemical element. More...
class  parse_error
class  FormulaElt
class  FormulaAtom
class  FormulaBlock
class  FormulaResidue
 Residue. More...
class  Formula
class  GLDocument
class  GLView
class  Isotope
class  IsotopicPattern
struct  LoaderStruct
class  Loader
 class used to implement serialization engines. More...
class  Matrix
class  GLMatrix
class  Matrix2D
class  Molecule
class  Object
struct  SymbolResidue
class  Residue
class  SpaceGroup
 Handle crystallographic space group symmetry. More...
class  Sphere
class  Transform3d
 Handle 3D transformations, such as space group definitions. More...
class  UIManager
 base class for a user interface manager More...
class  Value
class  SimpleValue
class  DimensionalValue
class  StringValue
class  LocalizedStringValue
class  Vector
 3D vector. More...
class  Vector3f
class  Window

Typedefs

typedef unsigned TypeId
typedef bool(* BuildMenuCb )(Object *target, UIManager *uim, Object *object, double x, double y)
typedef unsigned SignalId

Enumerations

enum  Display3DMode
enum  Action { ActionException, ActionDelete, ActionIgnore }
enum  FormulaParseMode
enum  MatrixType
enum  GcuTypeId
enum  RuleId
enum  ContentType {
  ContentTypeUnknown, ContentType3D, ContentType2D, ContentTypeCrystal,
  ContentTypeSpectrum, ContentTypeMisc, ContentTypeInvalid
}

Functions

Vector operator* (double f, Vector const &v)
Vector3f operator* (float f, Vector3f const &v)
xmlNodePtr FindNodeByNameAndId (xmlNodePtr node, const char *name, const char *id=NULL)
bool ReadPosition (xmlNodePtr node, const char *id, double *x, double *y, double *z=NULL)
bool WritePosition (xmlDocPtr xml, xmlNodePtr node, const char *id, double x, double y, double z=0.0)
bool ReadColor (xmlNodePtr node, const char *id, float *red, float *green, float *blue, float *alpha=NULL)
bool WriteColor (xmlDocPtr xml, xmlNodePtr node, const char *id, double red, double green, double blue, double alpha=1.0)
GOColor ReadColor (xmlNodePtr node)
void WriteColor (xmlNodePtr node, GOColor color)
bool ReadRadius (xmlNodePtr node, GcuAtomicRadius &radius)
bool WriteRadius (xmlDocPtr xml, xmlNodePtr node, const GcuAtomicRadius &radius)
char const * GetStaticScale (char *buf)
void WriteFloat (xmlNodePtr node, char const *name, double value)
bool ReadFloat (xmlNodePtr node, char const *name, double &value, double default_value=0.)
void WriteInt (xmlNodePtr node, char const *name, int value)
bool ReadInt (xmlNodePtr node, char const *name, int &value, int default_value=0)
void WriteDate (xmlNodePtr node, char const *name, GDate const *date)
bool ReadDate (xmlNodePtr node, char const *name, GDate *date)

Detailed Description

The Gnome Chemistry Utils C++ classes.

The namespace used for all C++ classes provided by the Gnome Chemistry Utils base library.

Typedef Documentation

typedef bool(* gcu::BuildMenuCb)(Object *target, UIManager *uim, Object *object, double x, double y)

The type of callbacks for adding new items to the contextual menu of an object.

Parameters
targetthe Object whose menu is being built.
uimthe UIManager to populate.
objectthe Object on which occured the mouse click.
xx coordinate of the mouse click.
yy coordinate of the mouse click.

Definition at line 108 of file object.h.

typedef unsigned gcu::SignalId

The types of the signals used in Object::EmitSignal() and Object::OnSignal(). Each signal must type be retrieved from a call to Object::CreateNewSignalId().

Definition at line 151 of file object.h.

typedef unsigned gcu::TypeId

The type of an object instance. Either predefined types are defined in the enum above or dynamically defined types by calls to Object::AddType.

Definition at line 95 of file object.h.

Enumeration Type Documentation

gcu/document.h Represents what should be done when an error occurs on an object.

Enumerator:
ActionException 

Throw an exception

ActionDelete 

Delete the object

ActionIgnore 

Ignore the error

Definition at line 49 of file gcu/document.h.

The list of supported data types.

Enumerator:
ContentTypeUnknown 

Unknown content.

ContentType3D 

3D molecular structure.

ContentType2D 

2D molecular structure.

ContentTypeCrystal 

Crystal structure.

ContentTypeSpectrum 

Spectral data.

ContentTypeMisc 

Miscalleneous contents. Might include anything.

ContentTypeInvalid 

Invalid data.

Definition at line 35 of file gcu/structs.h.

3D display mode. Possible values are:

  • BALL_AND_STICK: use ball and stick representation; atoms are represented by spheres with a radius equal to 20% of their van der Waals radius and bonds are displayed as cylinders Multiple bonds are displayed as multiple cylinders.
  • SPACEFILL: use space filling representation; atoms are represented by spheres with a radius equal their van der Waals radius; bonds are not displayed.
  • CYLINDERS: only bonds are represented as cylinders, atoms just end the cylinders.
  • WIREFRAME: bonds are represented as narrow lines, atoms just end the lines.

Definition at line 45 of file chem3ddoc.h.

gcu/formula.h The way formula should be interpreted when they contain symbols that might represent both an atom or a group of atoms such as Ac and Pr. Possible values are:

  • GCU_FORMULA_PARSE_GUESS: try to determine the most probable interpretation of the symbol,
  • GCU_FORMULA_PARSE_ATOM: always interpret as atoms,
  • GCU_FORMULA_PARSE_RESIDUE: always interpret as groups,
  • GCU_FORMULA_PARSE_ASK: ask the user for each encountered instance,
  • GCU_FORMULA_PARSE_NO_CASE: this one is unrelated and can ba combined with any of the previous values, just make the parsing stricktly case sensitive.

Definition at line 52 of file formula.h.

This enumeration is used to determine the type of an Object instance. Possible values are:

  • NoType invalid type
  • AtomType an atom
  • FragmentType several atoms linked and represented by a text such as COOH (only in GChemPaint).
  • BondType a bond between two (or more) atoms.
  • MoleculeType a molecule.
  • ChainType a chain of atoms.
  • CycleType a cycle.
  • ReactantType a molecule involved in a reaction (only in GChemPaint).
  • ReactionArrowType a reaction arrow (only in GChemPaint).
  • ReactionOperatorType a + sign in a reaction (only in GChemPaint).
  • ReactionType a reaction.
  • MesomeryType a mesomery representation (only in GChemPaint).
  • MesomeryArrowType a double headed arrow used to represent mesomery (only in GChemPaint).
  • DocumentType a document, generally the top node in the objects tree.
  • TextType some text (only in GChemPaint).
  • OtherType if the type of an object is at least equal to OtherType, then it is a dynamically created type returned by the static Object::AddType method.

Some types are not used in the Gnome Chemistry Utils, but only in GChemPaint and might disappear from this list in future versions and replaced by dynamically created types.

Definition at line 71 of file object.h.

This enumeration is used to determine the type a Matrix. Possible values are:

  • euler: matrix used to find absolute positions from the position inside the solid using Euler's angles.
  • antieuler: the inverse of euler.
  • rotation: matrix representing the rotation to apply to the solid.

This enumeration is used in one of the constructors (Matrix(Psi, Theta, Phi, Type)) of class Matrix.

Definition at line 44 of file matrix.h.

This enumeration is used to maintain a set of rules about the possible hierarchical of the document. They are used with two class names or ids. Possible values are:

  • RuleMayContain an instance of the first class may contain an instance of the second. This implies that an instance of the second class may be in an instance of the first (see RuleMayBeIn);
  • RuleMustContain an instance of the first class may contain an instance of the second class (implies RuleMayContain); if no instance of the first class is present, the object is not valid.
  • RuleMayBeIn an instance of the first class may be the child of an instance of the second class (see also RuleMayContain);
  • RuleMustBeIn an instance of the first class must be the child of an instance of the second class, otherwise it is not valid.

Definition at line 139 of file object.h.

Function Documentation

xmlNodePtr gcu::FindNodeByNameAndId ( xmlNodePtr  node,
const char *  name,
const char *  id = NULL 
)

ReadPosition

Parameters
node,:a pointer to the current parsed XML Node.
name,:the name of the searched node.
id,:the id property of the node or NULL if not significant. This parameter might be omitted in the last case.

Helper method used to search the xmlNode instance of name Name and with id property equal to id in the children of node. When id is NULL, the searched node does not have an id property. When id is not NULL, the searched node should be unique.

Returns
the matching node or NULL.
char const* gcu::GetStaticScale ( char *  buf)
Parameters
buf,:a string to convert to a static instance.

This function is used to replace a dynamically allocated string by a static instance. It works managing a set of string instances. It is used for scale names (as for radii and electronegativity), hence its name.

Returns
a static version of buf or NULL if a new static string could not be created.
Vector gcu::operator* ( double  f,
Vector const &  v 
)
Parameters
fa multiplication factor
vthe vector to multiply
Returns
the product of f and v.
Vector3f gcu::operator* ( float  f,
Vector3f const &  v 
)
Parameters
fa multiplication factor
vthe vector to multiply
Returns
the product of f and v.
bool gcu::ReadColor ( xmlNodePtr  node,
const char *  id,
float *  red,
float *  green,
float *  blue,
float *  alpha = NULL 
)
Parameters
node,:a pointer to the xmlNode representing an Object instance.
id,:the value of the id property of the color. This is used for Object instances having at least two colors.
red,:a pointer to the red component of the color.
green,:a pointer to the green component of the color.
blue,:a pointer to the blue component of the color.
alpha,:a pointer to the alpha component of the color or NULL if tranparency is not managed.

This method can be used to load a color in an Object instance. It should be used in cunjunction with WriteColor() which executes the inverse operation. If id is NULL, a color with no id property will be search and parsed.

Returns
true on success and false on failure.
GOColor gcu::ReadColor ( xmlNodePtr  node)
Parameters
node,:a pointer to the xmlNode from which the color must be retrieved. Builds a GOColor from the node properties.
Returns
the GOColor found or black (0xff).
bool gcu::ReadDate ( xmlNodePtr  node,
char const *  name,
GDate *  date 
)
Parameters
nodea pointer to an XML node.
namethe property name.
datewhere to store the result.

Retrieves date from the node property with name name. On failure, date will be cleared using g_date_clear().

Returns
true if the date could be retrieved. This method is locale independent. The date must be stored in the format MM/DD/YYYY.
bool gcu::ReadFloat ( xmlNodePtr  node,
char const *  name,
double &  value,
double  default_value = 0. 
)
Parameters
nodea pointer to an XML node.
namethe property name.
valuewhere to store the result.
default_valuethe default value for the property if the property can't be retrieved.

Retrieves value from the node property with name name. Sets the default value if somthing goes wrong. This method is locale independent.

Returns
true if the value could be retrieved.
bool gcu::ReadInt ( xmlNodePtr  node,
char const *  name,
int &  value,
int  default_value = 0 
)
Parameters
nodea pointer to an XML node.
namethe property name.
valuewhere to store the result.
default_valuethe default value for the property if the property can't be retrieved.

Retrieves value from the node property with name name. Sets the default value if somthing goes wrong.

Returns
true if the value could be retrieved.
bool gcu::ReadPosition ( xmlNodePtr  node,
const char *  id,
double *  x,
double *  y,
double *  z = NULL 
)
Parameters
node,:a pointer to the xmlNode representing an Object instance.
id,:the value of the id property of the position. This is used for example for arrows because both the head and the tail of the arrow are positions.
x,:a pointer to the x coordinate of the position.
y,:a pointer to the y coordinate of the position.
z,:a pointer to the z coordinate of the position or NULL for 2D objects.

This method can be used to load the coordinates of a point in an Object instance. It should be used in cunjunction with WritePosition() which executes the inverse operation. If id is NULL, a position with no id property will be search and parsed.

Returns
true on success and false on failure.
bool gcu::ReadRadius ( xmlNodePtr  node,
GcuAtomicRadius radius 
)
Parameters
node,:a pointer to the xmlNode representing an Object instance.
radius,:a GcuAtomicRadius structure.

This function parses the XML node representing a radius (written using WriteRadius()) and fills the fields in the GcuAtomicRadius structure with the data parsed.

Returns
true on success and false on failure.
bool gcu::WriteColor ( xmlDocPtr  xml,
xmlNodePtr  node,
const char *  id,
double  red,
double  green,
double  blue,
double  alpha = 1.0 
)
Parameters
xml,:a pointer to the xmlDoc used to serialize the document.
node,:a pointer to the xmlNode representing an Object instance.
id,:the value of the id property of the color. This is used for Object instances having at least two colors. of the arrow are positions.
red,:the red component of the color.
green,:the green component of the color.
blue,:the blue component of the color.
alpha,:the alpha component of the color.

Save a color as an XML node added to the children of node. This color can then be parsed using ReadColor().

Returns
true on success and false on failure.
void gcu::WriteColor ( xmlNodePtr  node,
GOColor  color 
)
Parameters
node,:a pointer to the xmlNode to which the color must be serialized.
color,:a pointer to the xmlNode from which the color must be retrieved. Serializes color to node.
void gcu::WriteDate ( xmlNodePtr  node,
char const *  name,
GDate const *  date 
)
Parameters
nodea pointer to an XML node.
namethe property name.
datethe date to serialize.

Adds date as a property with name name to node. This method is locale independent. The date will be stored in the format MM/DD/YYYY.

void gcu::WriteFloat ( xmlNodePtr  node,
char const *  name,
double  value 
)
Parameters
nodea pointer to an XML node.
namethe property name.
valuethe value for the property.

Adds value as a property with name name to node. This method is locale independent.

void gcu::WriteInt ( xmlNodePtr  node,
char const *  name,
int  value 
)
Parameters
nodea pointer to an XML node.
namethe property name.
valuethe value for the property.

Adds value as a property with name name to node.

bool gcu::WritePosition ( xmlDocPtr  xml,
xmlNodePtr  node,
const char *  id,
double  x,
double  y,
double  z = 0.0 
)

WritePosition

Parameters
xml,:a pointer to the xmlDoc used to serialize the document.
node,:a pointer to the xmlNode representing an Object instance.
id,:the value of the id property of the position. This is used for example for arrows because both the head and the tail of the arrow are positions.
x,:the x coordinate of the position.
y,:the y coordinate of the position.
z,:the z coordinate of the position.

Save a position as an XML node added to the children of node. This position can then be parsed using ReadPosition().

Returns
true on success and false on failure.
bool gcu::WriteRadius ( xmlDocPtr  xml,
xmlNodePtr  node,
const GcuAtomicRadius radius 
)
Parameters
xml,:a pointer to the xmlDoc used to serialize the document.
node,:a pointer to the xmlNode representing an Object instance.
radius,:a GcuAtomicRadius structure.

Save a radius as an XML node added to the children of node. This radius can then be parsed using ReadRadius().

Returns
true on success and false on failure.