The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<!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"/>
<title>Chart::Direction Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</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 class="navpath">
    <ul>
      <li><b>Chart</b>      </li>
      <li><a class="el" href="classChart_1_1Direction.html">Chart::Direction</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>Chart::Direction Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="Chart::Direction" --><!-- doxytag: inherits="Chart::Base" -->
<p><a class="el" href="classChart_1_1Direction.html" title="Direction class derived class for Chart to implement direction charts.">Direction</a> class derived class for Chart to implement direction charts.  
<a href="#_details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Chart::Direction:</div>
<div class="dyncontent">
<div class="center"><img src="classChart_1_1Direction__inherit__graph.png" border="0" usemap="#Chart_1_1Direction_inherit__map" alt="Inheritance graph"/></div>
<map name="Chart_1_1Direction_inherit__map" id="Chart_1_1Direction_inherit__map">
<area shape="rect" id="node2" href="classChart_1_1Base.html" title="Base class for Chart; all other classes derived from here." alt="" coords="16,6,107,37"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for Chart::Direction:</div>
<div class="dyncontent">
<div class="center"><img src="classChart_1_1Direction__coll__graph.png" border="0" usemap="#Chart_1_1Direction_coll__map" alt="Collaboration graph"/></div>
<map name="Chart_1_1Direction_coll__map" id="Chart_1_1Direction_coll__map">
<area shape="rect" id="node2" href="classChart_1_1Base.html" title="Base class for Chart; all other classes derived from here." alt="" coords="111,291,201,322"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classChart_1_1Direction-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="member-group"></a>
Private Functions</h2></td></tr>
<tr><td colspan="2"><p><a class="anchor" id="amgrp8d29cff216bafa3117e21883ea7c6b5f"></a> </p>
<br/><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af97c0fecf23820586656d100aed65008"></a><!-- doxytag: member="Chart::Direction::_draw_data" ref="af97c0fecf23820586656d100aed65008" args="" -->
private&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#af97c0fecf23820586656d100aed65008">_draw_data</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">finally get around to plotting the data for direction charts <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">private int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#ad33ea739bd5ceb8b48809028c489f119">_find_y_scale</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">we use the find_y_scale methode to determine the labels of the circles and the amount of them  <a href="#ad33ea739bd5ceb8b48809028c489f119"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">private&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#a6766001399b56ba88e61f7ca0db50922">_calcTickInterval</a> (scalar dataset_min, scalar dataset_max, scalar flag_fixed_min, scalar flag_fixed_max, scalar minTicks, scalar maxTicks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the ticks for direction in normalised units.  <a href="#a6766001399b56ba88e61f7ca0db50922"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">private int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#aae701e9961733ae43e068acbad3e139a">_draw_y_ticks</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">draw the circles and the axes  <a href="#aae701e9961733ae43e068acbad3e139a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">private int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#a4803bef9580feed235401ff290459cce">_draw_x_ticks</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">We don't need x ticks, it's all done in _draw_y_ticks.  <a href="#a4803bef9580feed235401ff290459cce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">private int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#aa40aa25ffd6c9005303642e1d0ce1ae6">_prepare_brush</a> (scalar color, scalar type)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set the gdBrush object to trick GD into drawing fat lines  <a href="#aa40aa25ffd6c9005303642e1d0ce1ae6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">private int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#a47ab5b61307d24d038ae77e62e269099">_draw_legend</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">let them know what all the pretty colors mean  <a href="#a47ab5b61307d24d038ae77e62e269099"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">private array&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#a8f408c9fa61c3ee5f87a19c1f42d94c7">_find_y_range</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find minimum and maximum value of y data sets.  <a href="#a8f408c9fa61c3ee5f87a19c1f42d94c7"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Public Object Methods</h2></td></tr>
<tr><td colspan="2"><p><a class="anchor" id="amgrpfb74d91261823cc595bbeff1eff2b9d5"></a></p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>calculate the width of the labels </dd></dl>
<br/><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#ab7104b48aa4219a995656088c121078d">set</a> (hash opts)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set all options.  <a href="#ab7104b48aa4219a995656088c121078d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classChart_1_1Direction.html#a50b338ce75f7e6ab339b5f587a4e933b">add_dataset</a> (list data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add many datasets to the dataref.  <a href="#a50b338ce75f7e6ab339b5f587a4e933b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Protected Object Methods</h2></td></tr>
<tr><td colspan="2"><p><a class="anchor" id="amgrp06e02ce997685862181738d6a83b6f25"></a> </p>
<br/><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e77fdb40ac62f9a18becd46fd1923ce"></a><!-- doxytag: member="Chart::Direction::_calcTickInterval" ref="a9e77fdb40ac62f9a18becd46fd1923ce" args="()" -->
protected retval&nbsp;</td><td class="memItemRight" valign="bottom"><b>_calcTickInterval</b> ()</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p><a class="el" href="classChart_1_1Direction.html" title="Direction class derived class for Chart to implement direction charts.">Direction</a> class derived class for Chart to implement direction charts. </p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a6766001399b56ba88e61f7ca0db50922"></a><!-- doxytag: member="Chart::Direction::_calcTickInterval" ref="a6766001399b56ba88e61f7ca0db50922" args="(scalar dataset_min, scalar dataset_max, scalar flag_fixed_min, scalar flag_fixed_max, scalar minTicks, scalar maxTicks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">private Chart::Direction::_calcTickInterval </td>
          <td>(</td>
          <td class="paramtype">scalar&nbsp;</td>
          <td class="paramname"> <em>dataset_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">scalar&nbsp;</td>
          <td class="paramname"> <em>dataset_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">scalar&nbsp;</td>
          <td class="paramname"> <em>flag_fixed_min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">scalar&nbsp;</td>
          <td class="paramname"> <em>flag_fixed_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">scalar&nbsp;</td>
          <td class="paramname"> <em>minTicks</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">scalar&nbsp;</td>
          <td class="paramname"> <em>maxTicks</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calculates the ticks for direction in normalised units. </p>
<p>Calculate the Interval between ticks in y direction and compare the number of ticks to the user given values min_y_ticks, max_y_ticks</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>$dataset_min</em>&nbsp;</td><td>Minimal value in y direction </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>$dataset_max</em>&nbsp;</td><td>Maximal value in y direction </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>$flag_fixed_min</em>&nbsp;</td><td>Indicator whether the dataset_min value is fixed </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>$flag_fixed_max</em>&nbsp;</td><td>Indicator whether the dataset_max value is fixed </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>$minTicks</em>&nbsp;</td><td>Minimal number of ticks wanted </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>$maxTicks</em>&nbsp;</td><td>Maximal number of ticks wanted </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>$tickInterval, $tickCount, $pMin, $pMax </dd></dl>

<p>Reimplemented from <a class="el" href="classChart_1_1Base.html#a23f7394cb8c7bbe6a5d0e05582e038c9">Chart::Base</a>.</p>

</div>
</div>
<a class="anchor" id="a47ab5b61307d24d038ae77e62e269099"></a><!-- doxytag: member="Chart::Direction::_draw_legend" ref="a47ab5b61307d24d038ae77e62e269099" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">private int Chart::Direction::_draw_legend </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>let them know what all the pretty colors mean </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>status</dd></dl>
<p>Overwrite corresponding function of <a class="el" href="classChart_1_1Base.html" title="Base class for Chart; all other classes derived from here.">Base</a> </p>

<p>Reimplemented from <a class="el" href="classChart_1_1Base.html#a530e742ca18ce2e89f177d367964277f">Chart::Base</a>.</p>

</div>
</div>
<a class="anchor" id="a4803bef9580feed235401ff290459cce"></a><!-- doxytag: member="Chart::Direction::_draw_x_ticks" ref="a4803bef9580feed235401ff290459cce" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">private int Chart::Direction::_draw_x_ticks </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>We don't need x ticks, it's all done in _draw_y_ticks. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>status</dd></dl>
<p>Overwrites the corresponding function in <a class="el" href="classChart_1_1Base.html" title="Base class for Chart; all other classes derived from here.">Base</a> </p>

<p>Reimplemented from <a class="el" href="classChart_1_1Base.html#a64a81b266a528e24e5547ac504c1fc78">Chart::Base</a>.</p>

</div>
</div>
<a class="anchor" id="aae701e9961733ae43e068acbad3e139a"></a><!-- doxytag: member="Chart::Direction::_draw_y_ticks" ref="aae701e9961733ae43e068acbad3e139a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">private int Chart::Direction::_draw_y_ticks </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>draw the circles and the axes </p>
<p>Overwrites <a class="el" href="classChart_1_1Direction.html#aae701e9961733ae43e068acbad3e139a" title="draw the circles and the axes">_draw_y_ticks()</a> of <a class="el" href="classChart_1_1Base.html" title="Base class for Chart; all other classes derived from here.">Base</a> class</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>status </dd></dl>

<p>Reimplemented from <a class="el" href="classChart_1_1Base.html#a46852297ab12aaf10546e63dd7eab462">Chart::Base</a>.</p>

</div>
</div>
<a class="anchor" id="a8f408c9fa61c3ee5f87a19c1f42d94c7"></a><!-- doxytag: member="Chart::Direction::_find_y_range" ref="a8f408c9fa61c3ee5f87a19c1f42d94c7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">private array Chart::Direction::_find_y_range </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find minimum and maximum value of y data sets. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>( min, max, flag_all_integers )</dd></dl>
<p>Overwrites corresponding <a class="el" href="classChart_1_1Base.html" title="Base class for Chart; all other classes derived from here.">Base</a> function </p>

<p>Reimplemented from <a class="el" href="classChart_1_1Base.html#ad28e18fc86eebc6846785580977532ca">Chart::Base</a>.</p>

</div>
</div>
<a class="anchor" id="ad33ea739bd5ceb8b48809028c489f119"></a><!-- doxytag: member="Chart::Direction::_find_y_scale" ref="ad33ea739bd5ceb8b48809028c489f119" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">private int Chart::Direction::_find_y_scale </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>we use the find_y_scale methode to determine the labels of the circles and the amount of them </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>status</dd></dl>
<p>This function is an overwrite to the same function found in the base class <a class="el" href="classChart_1_1Base.html" title="Base class for Chart; all other classes derived from here.">Chart::Base</a> </p>

<p>Reimplemented from <a class="el" href="classChart_1_1Base.html#acb2fe91b2d57e43d84b1bc6f092ac68d">Chart::Base</a>.</p>

</div>
</div>
<a class="anchor" id="aa40aa25ffd6c9005303642e1d0ce1ae6"></a><!-- doxytag: member="Chart::Direction::_prepare_brush" ref="aa40aa25ffd6c9005303642e1d0ce1ae6" args="(scalar color, scalar type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">private int Chart::Direction::_prepare_brush </td>
          <td>(</td>
          <td class="paramtype">scalar&nbsp;</td>
          <td class="paramname"> <em>color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">scalar&nbsp;</td>
          <td class="paramname"> <em>type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>set the gdBrush object to trick GD into drawing fat lines </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>$color</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>$type</em>&nbsp;</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>status </dd></dl>

</div>
</div>
<a class="anchor" id="a50b338ce75f7e6ab339b5f587a4e933b"></a><!-- doxytag: member="Chart::Direction::add_dataset" ref="a50b338ce75f7e6ab339b5f587a4e933b" args="(list data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Chart::Direction::add_dataset </td>
          <td>(</td>
          <td class="paramtype">list&nbsp;</td>
          <td class="paramname"> <em>data</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add many datasets to the dataref. </p>
<p>Graph API<br/>
 Overwrite <a class="el" href="classChart_1_1Base.html" title="Base class for Chart; all other classes derived from here.">Base</a> method</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>@data</em>&nbsp;</td><td>Dataset to add </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classChart_1_1Base.html#a43dcf87aa2b9fd362ba104923c3f3d51">Chart::Base</a>.</p>

</div>
</div>
<a class="anchor" id="ab7104b48aa4219a995656088c121078d"></a><!-- doxytag: member="Chart::Direction::set" ref="ab7104b48aa4219a995656088c121078d" args="(hash opts)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Chart::Direction::set </td>
          <td>(</td>
          <td class="paramtype">hash&nbsp;</td>
          <td class="paramname"> <em>opts</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set all options. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>%opts</em>&nbsp;</td><td>Hash of options to the Chart </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ok or croak</dd></dl>
<p>main method for customizing the chart, lets users specify values for different parameters<br/>
 dont check the number of points in the added datasets in a polarplot<br/>
 overwrite <a class="el" href="classChart_1_1Base.html" title="Base class for Chart; all other classes derived from here.">Base</a> method </p>

<p>Reimplemented from <a class="el" href="classChart_1_1Base.html#aadd99033eae9eab891cc2abdf7e4b74d">Chart::Base</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>Chart/<a class="el" href="Direction_8pm.html">Direction.pm</a></li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Oct 3 2012 19:16:00 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>