gcu::CrystalDoc Class Reference

#include <gcu/crystaldoc.h>

Inheritance diagram for gcu::CrystalDoc:

gcu::Document gcu::Object List of all members.

Public Member Functions

 CrystalDoc ()
virtual ~CrystalDoc ()
void ParseXMLTree (xmlNode *xml)
void Update ()
CrystalViewGetView ()
bool IsDirty ()
virtual void SetDirty ()
void Draw ()
gdouble GetMaxDist ()
virtual CrystalViewCreateNewView ()
virtual CrystalAtomCreateNewAtom ()
virtual CrystalLineCreateNewLine ()
virtual CrystalCleavageCreateNewCleavage ()
xmlDocPtr BuildXMLTree ()
virtual const char * GetProgramId ()

Protected Member Functions

void Init ()
void Reinit ()
virtual bool LoadNewView (xmlNodePtr node)

Protected Attributes

gcLattices m_lattice
gdouble m_a
gdouble m_b
gdouble m_c
gdouble m_alpha
gdouble m_beta
gdouble m_gamma
gdouble m_xmin
gdouble m_ymin
gdouble m_zmin
gdouble m_xmax
gdouble m_ymax
gdouble m_zmax
gdouble m_dDist
gboolean m_bFixedSize
CrystalAtomList AtomDef
CrystalAtomList Atoms
CrystalLineList LineDef
CrystalLineList Lines
CrystalCleavageList Cleavages
list< CrystalView * > m_Views
bool m_bDirty
bool m_bEmpty

Detailed Description

The document containing the crystal structure.

Definition at line 80 of file crystaldoc.h.


Constructor & Destructor Documentation

gcu::CrystalDoc::CrystalDoc (  ) 

The constructor of CrystalDoc

virtual gcu::CrystalDoc::~CrystalDoc (  )  [virtual]

The destructor of CrystalDoc


Member Function Documentation

xmlDocPtr gcu::CrystalDoc::BuildXMLTree (  ) 

Builds the xmlDoc corresponding to the crystal structure.

Returns:
a pointer to the XML document.

virtual CrystalAtom* gcu::CrystalDoc::CreateNewAtom (  )  [virtual]

Creates a new atom. This method should be overrided by programs deriving a new view class from CrystalAtom.

Returns:
a pointer to the new CrystalAtom instance.

virtual CrystalCleavage* gcu::CrystalDoc::CreateNewCleavage (  )  [virtual]

Creates a new cleavage. This method should be overrided by programs deriving a new line class from CrystalCleavage

Returns:
a pointer to the new CrystalCleavage instance.

virtual CrystalLine* gcu::CrystalDoc::CreateNewLine (  )  [virtual]

Creates a new line. This method should be overrided by programs deriving a new view class from CrystalLine.

Returns:
a pointer to the new CrystalLine instance.

virtual CrystalView* gcu::CrystalDoc::CreateNewView (  )  [virtual]

Creates a view of the document. This method should be overrided by programs deriving a new view class from CrystalView.

Returns:
a pointer to the new CrystalView instance.

void gcu::CrystalDoc::Draw (  ) 

Draws the document using OpenGL primitives.

gdouble gcu::CrystalDoc::GetMaxDist (  )  [inline]

Returns:
the largest distance from an object displayed in the document to the center of the model.

Definition at line 127 of file crystaldoc.h.

References m_dDist.

virtual const char* gcu::CrystalDoc::GetProgramId (  )  [virtual]

Returns:
the identity of the program as saved in files in the generator tag. This method should be overrided by programs able to save crystal structures in XML files conforming to gcrystal.dtd. It is used mainly to ensure compatiblity with files created by older versions of the program.

CrystalView* gcu::CrystalDoc::GetView (  ) 

Returns:
a pointer to the first CrystalView of the document. The view will be created if it does not already exist.

void gcu::CrystalDoc::Init (  )  [protected]

Initialize a new CrystalDoc instance.

bool gcu::CrystalDoc::IsDirty (  )  [inline]

Returns:
true if the document has been modified, false if not.

Definition at line 115 of file crystaldoc.h.

References m_bDirty.

virtual bool gcu::CrystalDoc::LoadNewView ( xmlNodePtr  node  )  [protected, virtual]

Parameters:
node,: the xmlNode containing the serialized view.
Loads a view from a XML document. This methd must be overrided by applications supporting multiple views.

void gcu::CrystalDoc::ParseXMLTree ( xmlNode *  xml  ) 

Parameters:
xml,: a pointer to the root xmlNode of the xmlDoc containing the definition of the crystal.
Analyses the contents of the XML document and builds the cryatl structure from the data. Typical usage is:
CrystalDoc* crystal = new CrystalDoc();
xmlDocPtr doc = xmlParseFile(filename);
crystal->ParseXMLTree(doc->children);

void gcu::CrystalDoc::Reinit (  )  [protected]

Reinitialize a CrystalDoc instance. Used when loading a file in an already existing document.

virtual void gcu::CrystalDoc::SetDirty (  )  [virtual]

Signals the document as modified since the last saving operation.

void gcu::CrystalDoc::Update (  ) 

This method must be called when a new document is loaded or when the definition of the crystal is changed. It recalculates everything and updates all the views.


Member Data Documentation

CrystalAtomList gcu::CrystalDoc::AtomDef [protected]

List of the atoms in the definition of the crystal

Definition at line 251 of file crystaldoc.h.

CrystalAtomList gcu::CrystalDoc::Atoms [protected]

List of the atoms displayed.

Definition at line 255 of file crystaldoc.h.

CrystalCleavageList gcu::CrystalDoc::Cleavages [protected]

List of the cleavages defined.

Definition at line 267 of file crystaldoc.h.

CrystalLineList gcu::CrystalDoc::LineDef [protected]

List of the lines in the definition of the crystal

Definition at line 259 of file crystaldoc.h.

CrystalLineList gcu::CrystalDoc::Lines [protected]

List of the lines displayed.

Definition at line 263 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_a [protected]

The a parameter of the unit cell.

Definition at line 195 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_alpha [protected]

The alpha angle of the unit cell.

Definition at line 207 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_b [protected]

The b parameter of the unit cell.

Definition at line 199 of file crystaldoc.h.

bool gcu::CrystalDoc::m_bDirty [protected]

true if the document has changed since the last saving. Changing the orientation of the model in one of the views is considered as a change.

Definition at line 276 of file crystaldoc.h.

Referenced by IsDirty().

bool gcu::CrystalDoc::m_bEmpty [protected]

true if the document does not contain anything displayable.

Definition at line 280 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_beta [protected]

The beta angle of the unit cell.

Definition at line 211 of file crystaldoc.h.

gboolean gcu::CrystalDoc::m_bFixedSize [protected]

true if cleavages must not change positions in the view.

Definition at line 247 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_c [protected]

The c parameter of the unit cell.

Definition at line 203 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_dDist [protected]

The maximum distance between an object and the center.

Definition at line 243 of file crystaldoc.h.

Referenced by GetMaxDist().

gdouble gcu::CrystalDoc::m_gamma [protected]

The gamma angle of the unit cell.

Definition at line 215 of file crystaldoc.h.

gcLattices gcu::CrystalDoc::m_lattice [protected]

The Bravais lattice of the crystal.

Definition at line 191 of file crystaldoc.h.

list<CrystalView *> gcu::CrystalDoc::m_Views [protected]

List of the views of the document.

Definition at line 271 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_xmax [protected]

The maximum x coordinate in the representation of the crystal structure.

Definition at line 231 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_xmin [protected]

The minimum x coordinate in the representation of the crystal structure.

Definition at line 219 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_ymax [protected]

The maximum y coordinate in the representation of the crystal structure.

Definition at line 235 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_ymin [protected]

The minimum y coordinate in the representation of the crystal structure.

Definition at line 223 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_zmax [protected]

The maximum z coordinate in the representation of the crystal structure.

Definition at line 239 of file crystaldoc.h.

gdouble gcu::CrystalDoc::m_zmin [protected]

The minimum z coordinate in the representation of the crystal structure.

Definition at line 227 of file crystaldoc.h.


The documentation for this class was generated from the following file:
Generated on Tue Aug 15 10:47:36 2006 for The Gnome Chemistry Utils by  doxygen 1.4.7