Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > 02354f0cc3f53bcda4b77fba3bc4135d > files > 64

lib64qalculate-devel-0.9.7-6mdv2010.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>libqalculate-0.9.7: CompositeUnit Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.5 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li class="current"><a href="classes.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>CompositeUnit Class Reference</h1><!-- doxytag: class="CompositeUnit" --><!-- doxytag: inherits="Unit" -->A unit consisting of a number of other units.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;Unit.h&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for CompositeUnit:</div>
<div class="dynsection">

<p><center><img src="classCompositeUnit.png" usemap="#CompositeUnit_map" border="0" alt=""></center>
<map name="CompositeUnit_map">
<area href="classUnit.html" alt="Unit" shape="rect" coords="0,56,96,80">
<area href="classExpressionItem.html" alt="ExpressionItem" shape="rect" coords="0,0,96,24">
</map>
</div>

<p>
<a href="classCompositeUnit-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="20794bf0f7fc27be51c329c7a92f2682"></a><!-- doxytag: member="CompositeUnit::CompositeUnit" ref="20794bf0f7fc27be51c329c7a92f2682" args="(string cat_, string name_, string title_=&quot;&quot;, string base_expression_=&quot;&quot;, bool is_local=true, bool is_builtin=false, bool is_active=true)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>CompositeUnit</b> (string cat_, string name_, string title_=&quot;&quot;, string base_expression_=&quot;&quot;, bool is_local=true, bool is_builtin=false, bool is_active=true)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9d6cdfe3cd3014ff993da766601fa6a1"></a><!-- doxytag: member="CompositeUnit::CompositeUnit" ref="9d6cdfe3cd3014ff993da766601fa6a1" args="(const CompositeUnit *unit)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>CompositeUnit</b> (const <a class="el" href="classCompositeUnit.html">CompositeUnit</a> *unit)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="aa28249f9f533a9ead2635df8c25b753"></a><!-- doxytag: member="CompositeUnit::copy" ref="aa28249f9f533a9ead2635df8c25b753" args="() const " -->
virtual <a class="el" href="classExpressionItem.html">ExpressionItem</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>copy</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2c08f514f6ff46ca5080f09b1aaa6b6e"></a><!-- doxytag: member="CompositeUnit::set" ref="2c08f514f6ff46ca5080f09b1aaa6b6e" args="(const ExpressionItem *item)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set</b> (const <a class="el" href="classExpressionItem.html">ExpressionItem</a> *item)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCompositeUnit.html#29bb1470357216a0bac8b48fbaf782fe">add</a> (<a class="el" href="classUnit.html">Unit</a> *u, int exp=1, <a class="el" href="classPrefix.html">Prefix</a> *prefix=NULL)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classUnit.html">Unit</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCompositeUnit.html#d8efa0ee81f5b76c09042f42f1af1d5c">get</a> (size_t index, int *exp=NULL, <a class="el" href="classPrefix.html">Prefix</a> **prefix=NULL) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="edb6ed03595e9660bbdb7211c9a993e2"></a><!-- doxytag: member="CompositeUnit::setExponent" ref="edb6ed03595e9660bbdb7211c9a993e2" args="(size_t index, int exp)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setExponent</b> (size_t index, int exp)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3f387be24aedc778eb5c8a1d8b9464e7"></a><!-- doxytag: member="CompositeUnit::setPrefix" ref="3f387be24aedc778eb5c8a1d8b9464e7" args="(size_t index, Prefix *prefix)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setPrefix</b> (size_t index, <a class="el" href="classPrefix.html">Prefix</a> *prefix)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCompositeUnit.html#aa4645bfab416d5c0ba79905a0a5922d">countUnits</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b5db4561a5af88dc56fd0a5585b7050b"></a><!-- doxytag: member="CompositeUnit::find" ref="b5db4561a5af88dc56fd0a5585b7050b" args="(Unit *u) const " -->
virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>find</b> (<a class="el" href="classUnit.html">Unit</a> *u) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fc2aaf66c439fa0fdd4c026c02504dc1"></a><!-- doxytag: member="CompositeUnit::del" ref="fc2aaf66c439fa0fdd4c026c02504dc1" args="(size_t index)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>del</b> (size_t index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCompositeUnit.html#d559c0605c9801cd78fd4bf841658a2f">print</a> (bool plural_, bool short_, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCompositeUnit.html#12eb9a85f6e2994afa64ef037037f4f9">subtype</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCompositeUnit.html#6a84382a720c02dba4212c13057b50bc">containsRelativeTo</a> (<a class="el" href="classUnit.html">Unit</a> *u) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classMathStructure.html">MathStructure</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCompositeUnit.html#9b689b47703ca28458063f53a8aabae9">generateMathStructure</a> (bool make_division=false) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d9244e7f29c4cffe3c1d0b9e3f9f1c08"></a><!-- doxytag: member="CompositeUnit::setBaseExpression" ref="d9244e7f29c4cffe3c1d0b9e3f9f1c08" args="(string base_expression_)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setBaseExpression</b> (string base_expression_)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCompositeUnit.html#57866a6e169bb83e66793c8f475a9f67">clear</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0e9d08254795f6de38b4ea6d6bab8e07"></a><!-- doxytag: member="CompositeUnit::sshort" ref="0e9d08254795f6de38b4ea6d6bab8e07" args="" -->
string&nbsp;</td><td class="memItemRight" valign="bottom"><b>sshort</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="99a8e517204a3e64ec60b52031b38ed9"></a><!-- doxytag: member="CompositeUnit::units" ref="99a8e517204a3e64ec60b52031b38ed9" args="" -->
vector&lt; <a class="el" href="classAliasUnit__Composite.html">AliasUnit_Composite</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>units</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A unit consisting of a number of other units. 
<p>
Composite units are defined by a unit expression with multiple units. Composite units often have an alias unit associated with them, as they do not have a reference name on their own. For example, a joule is defined as an alias defined in relation to a composite unit defined as "Newton * meter".<p>
The names of composite units is only used to reference the unit in definitions of other units. They can not be used in expressions.<p>
Composite units is definited as a composition of units. The units, with prefixes and exponents, can either be added one by one with <a class="el" href="classCompositeUnit.html#29bb1470357216a0bac8b48fbaf782fe">add()</a> or parsed from an expression (ex. "cm^3/g) with setBaseExpression(). <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="29bb1470357216a0bac8b48fbaf782fe"></a><!-- doxytag: member="CompositeUnit::add" ref="29bb1470357216a0bac8b48fbaf782fe" args="(Unit *u, int exp=1, Prefix *prefix=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CompositeUnit::add           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classUnit.html">Unit</a> *&nbsp;</td>
          <td class="paramname"> <em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>exp</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classPrefix.html">Prefix</a> *&nbsp;</td>
          <td class="paramname"> <em>prefix</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a sub/base unit with specified exponent and an optional prefix.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>u</em>&nbsp;</td><td><a class="el" href="classUnit.html" title="A unit for measurement.">Unit</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>exp</em>&nbsp;</td><td>Exponent. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td><a class="el" href="classPrefix.html" title="Abstract class for prefixes.">Prefix</a>. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d8efa0ee81f5b76c09042f42f1af1d5c"></a><!-- doxytag: member="CompositeUnit::get" ref="d8efa0ee81f5b76c09042f42f1af1d5c" args="(size_t index, int *exp=NULL, Prefix **prefix=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classUnit.html">Unit</a>* CompositeUnit::get           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>exp</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classPrefix.html">Prefix</a> **&nbsp;</td>
          <td class="paramname"> <em>prefix</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves information about a sub/base unit<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index starting at 1. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>exp</em>&nbsp;</td><td>Exponent. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>prefix</em>&nbsp;</td><td><a class="el" href="classPrefix.html" title="Abstract class for prefixes.">Prefix</a>. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Sub/base unit (AliasUnit_Composite::firstBaseUnit()). </dd></dl>

</div>
</div><p>
<a class="anchor" name="aa4645bfab416d5c0ba79905a0a5922d"></a><!-- doxytag: member="CompositeUnit::countUnits" ref="aa4645bfab416d5c0ba79905a0a5922d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t CompositeUnit::countUnits           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the number of sub/base units 
</div>
</div><p>
<a class="anchor" name="d559c0605c9801cd78fd4bf841658a2f"></a><!-- doxytag: member="CompositeUnit::print" ref="d559c0605c9801cd78fd4bf841658a2f" args="(bool plural_, bool short_, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual string CompositeUnit::print           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>plural_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>short_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>use_unicode</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool(*)(const char *, void *)&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_function</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_arg</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Prints out the sub/base units with prefixes and exponents. This is the representation of the unit in expressions. 
<p>Reimplemented from <a class="el" href="classUnit.html#4ad80de27c26cbe1963f584b38e00e61">Unit</a>.</p>

</div>
</div><p>
<a class="anchor" name="12eb9a85f6e2994afa64ef037037f4f9"></a><!-- doxytag: member="CompositeUnit::subtype" ref="12eb9a85f6e2994afa64ef037037f4f9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int CompositeUnit::subtype           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the subtype of the unit, corresponding to which subsubclass the object belongs to.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="Unit_8h.html#187e4d06747a26a2325145b16ff73915" title="Type of unit.">UnitSubtype</a>. </dd></dl>

<p>Reimplemented from <a class="el" href="classUnit.html#d9f4f05c29ed947195274abc7d9a39a3">Unit</a>.</p>

</div>
</div><p>
<a class="anchor" name="6a84382a720c02dba4212c13057b50bc"></a><!-- doxytag: member="CompositeUnit::containsRelativeTo" ref="6a84382a720c02dba4212c13057b50bc" args="(Unit *u) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool CompositeUnit::containsRelativeTo           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classUnit.html">Unit</a> *&nbsp;</td>
          <td class="paramname"> <em>u</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If this unit contains a sub/base unit with a relation to the specified unit. 
</div>
</div><p>
<a class="anchor" name="9b689b47703ca28458063f53a8aabae9"></a><!-- doxytag: member="CompositeUnit::generateMathStructure" ref="9b689b47703ca28458063f53a8aabae9" args="(bool make_division=false) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classMathStructure.html">MathStructure</a> CompositeUnit::generateMathStructure           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>make_division</em> = <code>false</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a <a class="el" href="classMathStructure.html" title="A structure representing a mathematical value/expression/result.">MathStructure</a> with the sub/base units of the unit. 
</div>
</div><p>
<a class="anchor" name="57866a6e169bb83e66793c8f475a9f67"></a><!-- doxytag: member="CompositeUnit::clear" ref="57866a6e169bb83e66793c8f475a9f67" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void CompositeUnit::clear           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes all sub/base units. 
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>libqalculate/<a class="el" href="Unit_8h.html">Unit.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jan 5 08:26:29 2010 for libqalculate-0.9.7 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>