<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>The Gnome Chemistry Utils: reactant.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">The Gnome Chemistry Utils  <span id="projectnumber">0.14.17</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',false,false,'search.php','Search'); }); </script> <div id="main-nav"></div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_69c622b84a81aca1ad0f892f4a5e46bf.html">gcp</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">reactant.h</div> </div> </div><!--header--> <div class="contents"> <a href="reactant_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// -*- C++ -*-</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">/*</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * GChemPaint library</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * reactant.h</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * Copyright (C) 2004-2011 Jean Bréfort <jean.brefort@normalesup.org></span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * This program is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * modify it under the terms of the GNU General Public License as</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * published by the Free Software Foundation; either version 3 of the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * License, or (at your option) any later version.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> *</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * USA</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> */</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef GCHEMPAINT_REACTANT_H</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define GCHEMPAINT_REACTANT_H</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="object_8h.html">gcu/object.h</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="gcp_2text_8h.html">text.h</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="namespacegcu.html">gcu</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">class </span>UIManager;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespacegcp.html">gcp</a> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>ReactionStep;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classgcp_1_1Reactant.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classgcp_1_1Reactant.html">Reactant</a>: <span class="keyword">public</span> <a class="code" href="classgcu_1_1Object.html">gcu::Object</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classgcp_1_1Reactant.html">Reactant</a> ();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">virtual</span> ~<a class="code" href="classgcp_1_1Reactant.html">Reactant</a> ();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classgcp_1_1Reactant.html">Reactant</a> (<a class="code" href="classgcp_1_1ReactionStep.html">ReactionStep</a>* step, <a class="code" href="classgcu_1_1Object.html">gcu::Object</a>* <span class="keywordtype">object</span>) <span class="keywordflow">throw</span> (std::invalid_argument);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">virtual</span> xmlNodePtr Save (xmlDocPtr xml) <span class="keyword">const</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Load (xmlNodePtr node);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classgcp_1_1Reactant.html#a45dd366939a6d5abfe21b9dfd4ff3849"> 84</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classgcp_1_1Reactant.html#a45dd366939a6d5abfe21b9dfd4ff3849">GetStoichiometry</a> ()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_Stoich;}</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classgcp_1_1Reactant.html#a54a789fc738745f6b5ab5310475aec47"> 90</a></span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Reactant.html#a54a789fc738745f6b5ab5310475aec47">SetStoichiometry</a> (<span class="keywordtype">unsigned</span> coef) {m_Stoich = coef;}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetYAlign ();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordtype">bool</span> BuildContextualMenu (<a class="code" href="classgcu_1_1UIManager.html">gcu::UIManager</a> *UIManager, <a class="code" href="classgcu_1_1Object.html">gcu::Object</a> *<span class="keywordtype">object</span>, <span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordtype">bool</span> OnSignal (<a class="code" href="namespacegcu.html#af13348b065987fa4ca74ca0fb1ffa48e">gcu::SignalId</a> Signal, <a class="code" href="classgcu_1_1Object.html">gcu::Object</a> *Child);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">void</span> AddStoichiometry ();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">void</span> AddStoichiometry (<a class="code" href="classgcp_1_1Text.html">gcp::Text</a> *stoichiometry);</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classgcp_1_1Reactant.html#ad9eef5acdc4ebd587ffb380263e48b4e"> 132</a></span>  <a class="code" href="classgcu_1_1Object.html">gcu::Object</a> *<a class="code" href="classgcp_1_1Reactant.html#ad9eef5acdc4ebd587ffb380263e48b4e">GetChild</a> () {<span class="keywordflow">return</span> Child;}</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classgcp_1_1Reactant.html#ab34aaf4d5ad77a0e7feef4ea4e22ce98"> 136</a></span>  <a class="code" href="classgcu_1_1Object.html">gcu::Object</a> <span class="keyword">const</span> *<a class="code" href="classgcp_1_1Reactant.html#ab34aaf4d5ad77a0e7feef4ea4e22ce98">GetChild</a> ()<span class="keyword"> const </span>{<span class="keywordflow">return</span> Child;}</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classgcp_1_1Reactant.html#ac50ec5561fd8a9b4f3b124f9fa24ef9f"> 140</a></span>  <a class="code" href="classgcu_1_1Object.html">gcu::Object</a> *<a class="code" href="classgcp_1_1Reactant.html#ac50ec5561fd8a9b4f3b124f9fa24ef9f">GetStoichChild</a> () {<span class="keywordflow">return</span> Stoichiometry;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordtype">void</span> SetMolecule (<a class="code" href="classgcu_1_1Object.html">gcu::Object</a> *molecule);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  std::string GetProperty (<span class="keywordtype">unsigned</span> property) <span class="keyword">const</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordtype">bool</span> SetProperty (<span class="keywordtype">unsigned</span> property, <span class="keywordtype">char</span> <span class="keyword">const</span> *value);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  std::string Name ();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordtype">unsigned</span> m_Stoich; <span class="comment">//always positive</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classgcu_1_1Object.html">gcu::Object</a> *Stoichiometry;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classgcu_1_1Object.html">gcu::Object</a> *Child;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> };</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> } <span class="comment">// namespace gcp</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#endif // GCHEMPAINT_REACTANT_H</span></div><div class="ttc" id="namespacegcp_html"><div class="ttname"><a href="namespacegcp.html">gcp</a></div><div class="ttdoc">GChemPaint specific C++ classes. </div></div> <div class="ttc" id="classgcp_1_1Reactant_html_ac50ec5561fd8a9b4f3b124f9fa24ef9f"><div class="ttname"><a href="classgcp_1_1Reactant.html#ac50ec5561fd8a9b4f3b124f9fa24ef9f">gcp::Reactant::GetStoichChild</a></div><div class="ttdeci">gcu::Object * GetStoichChild()</div><div class="ttdef"><b>Definition:</b> <a href="reactant_8h_source.html#l00140">reactant.h:140</a></div></div> <div class="ttc" id="classgcp_1_1ReactionStep_html"><div class="ttname"><a href="classgcp_1_1ReactionStep.html">gcp::ReactionStep</a></div><div class="ttdoc">the list of reactants before or after a reaction arrow. </div><div class="ttdef"><b>Definition:</b> <a href="reaction-step_8h_source.html#l00049">reaction-step.h:49</a></div></div> <div class="ttc" id="classgcp_1_1Text_html"><div class="ttname"><a href="classgcp_1_1Text.html">gcp::Text</a></div><div class="ttdef"><b>Definition:</b> <a href="gcp_2text_8h_source.html#l00041">gcp/text.h:41</a></div></div> <div class="ttc" id="classgcu_1_1Object_html"><div class="ttname"><a href="classgcu_1_1Object.html">gcu::Object</a></div><div class="ttdef"><b>Definition:</b> <a href="object_8h_source.html#l00158">object.h:158</a></div></div> <div class="ttc" id="classgcu_1_1UIManager_html"><div class="ttname"><a href="classgcu_1_1UIManager.html">gcu::UIManager</a></div><div class="ttdoc">base class for a user interface manager </div><div class="ttdef"><b>Definition:</b> <a href="ui-manager_8h_source.html#l00033">ui-manager.h:33</a></div></div> <div class="ttc" id="namespacegcu_html"><div class="ttname"><a href="namespacegcu.html">gcu</a></div><div class="ttdoc">The Gnome Chemistry Utils C++ classes. </div><div class="ttdef"><b>Definition:</b> <a href="gcu_2application_8h_source.html#l00038">gcu/application.h:38</a></div></div> <div class="ttc" id="gcp_2text_8h_html"><div class="ttname"><a href="gcp_2text_8h.html">text.h</a></div></div> <div class="ttc" id="namespacegcu_html_af13348b065987fa4ca74ca0fb1ffa48e"><div class="ttname"><a href="namespacegcu.html#af13348b065987fa4ca74ca0fb1ffa48e">gcu::SignalId</a></div><div class="ttdeci">unsigned SignalId</div><div class="ttdef"><b>Definition:</b> <a href="object_8h_source.html#l00151">object.h:151</a></div></div> <div class="ttc" id="classgcp_1_1Reactant_html_ab34aaf4d5ad77a0e7feef4ea4e22ce98"><div class="ttname"><a href="classgcp_1_1Reactant.html#ab34aaf4d5ad77a0e7feef4ea4e22ce98">gcp::Reactant::GetChild</a></div><div class="ttdeci">gcu::Object const * GetChild() const</div><div class="ttdef"><b>Definition:</b> <a href="reactant_8h_source.html#l00136">reactant.h:136</a></div></div> <div class="ttc" id="object_8h_html"><div class="ttname"><a href="object_8h.html">object.h</a></div></div> <div class="ttc" id="classgcp_1_1Reactant_html"><div class="ttname"><a href="classgcp_1_1Reactant.html">gcp::Reactant</a></div><div class="ttdoc">Class for reactants and products of a chemical reaction. </div><div class="ttdef"><b>Definition:</b> <a href="reactant_8h_source.html#l00047">reactant.h:47</a></div></div> <div class="ttc" id="classgcp_1_1Reactant_html_ad9eef5acdc4ebd587ffb380263e48b4e"><div class="ttname"><a href="classgcp_1_1Reactant.html#ad9eef5acdc4ebd587ffb380263e48b4e">gcp::Reactant::GetChild</a></div><div class="ttdeci">gcu::Object * GetChild()</div><div class="ttdef"><b>Definition:</b> <a href="reactant_8h_source.html#l00132">reactant.h:132</a></div></div> <div class="ttc" id="classgcp_1_1Reactant_html_a54a789fc738745f6b5ab5310475aec47"><div class="ttname"><a href="classgcp_1_1Reactant.html#a54a789fc738745f6b5ab5310475aec47">gcp::Reactant::SetStoichiometry</a></div><div class="ttdeci">void SetStoichiometry(unsigned coef)</div><div class="ttdef"><b>Definition:</b> <a href="reactant_8h_source.html#l00090">reactant.h:90</a></div></div> <div class="ttc" id="classgcp_1_1Reactant_html_a45dd366939a6d5abfe21b9dfd4ff3849"><div class="ttname"><a href="classgcp_1_1Reactant.html#a45dd366939a6d5abfe21b9dfd4ff3849">gcp::Reactant::GetStoichiometry</a></div><div class="ttdeci">unsigned GetStoichiometry() const</div><div class="ttdef"><b>Definition:</b> <a href="reactant_8h_source.html#l00084">reactant.h:84</a></div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.13 </small></address> </body> </html>