25 #ifndef GCR_DOCUMENT_H 26 #define GCR_DOCUMENT_H 28 #include <libxml/tree.h> 74 body_centered_tetragonal,
76 base_centered_orthorhombic,
77 body_centered_orthorhombic,
78 face_centered_orthorhombic,
81 base_centered_monoclinic,
100 bool Load (
const std::string &filename);
112 void ParseXMLTree (xmlNode* xml);
119 void UpdateAllViews ();
139 virtual View* CreateNewView ();
146 virtual Atom* CreateNewAtom ();
153 virtual Line* CreateNewLine ();
159 virtual Cleavage* CreateNewCleavage ();
164 xmlDocPtr BuildXMLTree ()
const;
170 virtual const char* GetProgramId ()
const;
179 bool SetProperty (
unsigned property,
char const *value);
187 std::string GetProperty (
unsigned property)
const;
193 bool Loaded ()
throw (gcu::LoaderError);
197 void AddChild (Object*
object);
234 void GetCell (
Lattice *lattice,
double *a,
double *b,
double *c,
double *alpha,
double *beta,
double *gamma);
247 void SetCell (
Lattice lattice,
double a,
double b,
double c,
double alpha,
double beta,
double gamma);
259 void GetSize (
double* xmin,
double* xmax,
double* ymin,
double* ymax,
double* zmin,
double* zmax);
271 void SetSize (
double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
281 void CheckCleavages ();
298 void Define (
unsigned nPage = 0);
305 void AddView(
View* pView);
313 bool RemoveView(
View* pView);
319 void RemoveAllViews ();
329 std::list <gcr::View *> *
GetViews () {
return &m_Views;}
370 void SaveAsImage (
const std::string &filename,
char const *type, std::map<std::string, std::string>& options);
377 void SetFileName (
const std::string &filename);
384 void SetTitle (
char const *title);
385 void SetTitle (std::string& title);
397 void SetAuthor (
char const *author);
404 void SetMail (
char const *mail);
412 void SetComment (
char const *comment);
419 void SetLabel (
char const *label);
434 char const *
GetLabel () {
return m_Label? m_Label: m_DefaultLabel.c_str ();}
441 void OnExportVRML (
const std::string &FileName)
const;
458 virtual bool LoadNewView (xmlNodePtr node);
463 void Error(
int num)
const;
558 std::string m_DefaultLabel;
661 #endif // GCR_DOCUMENT_H
#define GCU_RO_PROP(type, member)
Handle crystallographic space group symmetry.
std::list< Cleavage * > CleavageList
GDate * GetCreationDate()
std::list< View * > m_Views
gchar const * LatticeName[]
void SetActiveView(View *pView)
The Gnome Chemistry Utils C++ classes.
void SetWidget(GtkWidget *widget)
GDate * GetRevisionDate()
std::list< Line * > LineList
The crystal structures related classes.
#define GCU_PROT_POINTER_PROP(type, member)
#define GCU_PROP(type, member)
const gchar * GetFileName()
CleavageList * GetCleavageList()
std::list< gcr::View * > * GetViews()
std::list< Atom * > AtomList