The Gnome Chemistry Utils
0.14.0
Main Page
Namespaces
Classes
Files
File List
File Members
libs
gcp
mesomer.h
Go to the documentation of this file.
1
// -*- C++ -*-
2
3
/*
4
* GChemPaint library
5
* mesomer.h
6
*
7
* Copyright (C) 2005-2010 Jean Bréfort <jean.brefort@normalesup.org>
8
*
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public License as
11
* published by the Free Software Foundation; either version 3 of the
12
* License, or (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
22
* USA
23
*/
24
25
#ifndef GCHEMPAINT_MESOMER_H
26
#define GCHEMPAINT_MESOMER_H
27
28
#include "
mechanism-step.h
"
29
#include <map>
30
32
namespace
gcp {
33
34
extern
gcu::TypeId
MesomerType;
35
36
class
Mesomery;
37
class
MesomeryArrow;
38
class
Molecule;
39
43
class
Mesomer
:
public
MechanismStep
44
{
45
public
:
49
Mesomer
();
53
virtual
~Mesomer
();
54
63
Mesomer
(
Mesomery
*mesomery,
Molecule
*molecule)
throw
(std::invalid_argument);
64
73
Mesomer
(
Mesomery
*mesomery,
MechanismStep
*step)
throw
(std::invalid_argument);
80
bool
Load
(xmlNodePtr node);
90
bool
OnSignal
(
gcu::SignalId
Signal,
gcu::Object
*Child);
96
double
GetYAlign
();
103
void
AddArrow
(
MesomeryArrow
*arrow,
Mesomer
*mesomer)
throw
(std::invalid_argument);
110
void
RemoveArrow
(
MesomeryArrow
*arrow,
Mesomer
*mesomer);
115
bool
Validate
() {
return
m_Arrows.size () > 0;}
120
std::map<Mesomer *, MesomeryArrow *> *
GetArrows
() {
return
&m_Arrows;}
124
Molecule
*
GetMolecule
() {
return
m_Molecule;}
125
129
std::string
Name
();
130
131
private
:
132
Molecule
*m_Molecule;
133
std::map<Mesomer *, MesomeryArrow *> m_Arrows;
134
};
135
136
}
// namespace gcp
137
138
#endif //GCHEMPAINT_MESOMER_H
Generated on Tue Jan 1 2013 22:29:22 for The Gnome Chemistry Utils by
1.8.1.2