<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>HippoDraw Class Library</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> <link rel="shortcut icon" href="hippoApp.ico"> </head><body> <!-- Generated by Doxygen 1.6.2 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_d1aed8900ec9d9a2c165e57f18bd6f10.html">axes</a> </div> </div> <div class="contents"> <h1>AxisModelBase.h</h1><a href="AxisModelBase_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- mode: c++; -*- */</span> <a name="l00002"></a>00002 <a name="l00014"></a>00014 <span class="preprocessor">#ifndef _AxisModelBase_H_</span> <a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define _AxisModelBase_H_</span> <a name="l00016"></a>00016 <span class="preprocessor"></span> <a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="AxisLoc_8h.html">AxisLoc.h</a>"</span> <a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="Range_8h.html" title="hippodraw::Range class interface">Range.h</a>"</span> <a name="l00019"></a>00019 <a name="l00020"></a>00020 <span class="keyword">namespace </span>hippodraw { <a name="l00021"></a>00021 <a name="l00022"></a>00022 <span class="keyword">class </span>AxisTick; <a name="l00023"></a>00023 <a name="l00033"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html">00033</a> <span class="keyword">class </span><a class="code" href="libhippo_8h.html#a480024fd54849c743866874550153711">MDL_HIPPOPLOT_API</a> <a class="code" href="classhippodraw_1_1AxisModelBase.html" title="The AxisModelBase class maintains the Range and scaling of an axis.">AxisModelBase</a> <a name="l00034"></a>00034 { <a name="l00035"></a>00035 <span class="keyword">protected</span>: <a name="l00036"></a>00036 <a name="l00038"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#ae71dd536700e6f5636df8c8728c1383d">00038</a> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> m_range; <a name="l00039"></a>00039 <a name="l00041"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#aa9ec6d4ba5ecee1e31a078b9991331ac">00041</a> <span class="keyword">mutable</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> m_scaled_range; <a name="l00042"></a>00042 <a name="l00046"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#a6b2cf38e8271f05740ec08fc20ed6c4f">00046</a> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> m_start_range; <a name="l00047"></a>00047 <a name="l00049"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#a173752a0fe20bd396d2f3436e983c383">00049</a> <span class="keywordtype">bool</span> m_is_dragging; <a name="l00050"></a>00050 <a name="l00053"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#ae8ea644c800387bff5feac79622f23e8">00053</a> <span class="keywordtype">bool</span> m_auto_range; <a name="l00054"></a>00054 <a name="l00056"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#ac21f18624d637a3e48f64730fb79c479">00056</a> <span class="keywordtype">bool</span> m_empty; <a name="l00057"></a>00057 <a name="l00062"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#a3fba3a52c08a77ff1127828800f5c8a3">00062</a> <span class="keywordtype">double</span> m_scale_factor; <a name="l00063"></a>00063 <a name="l00065"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#ae8295592c00f9738569a48c1d6b26dda">00065</a> <span class="keywordtype">bool</span> m_scaling_on; <a name="l00066"></a>00066 <a name="l00070"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#af9ea5a4d4ff44d2db2a2a283cdec7313">00070</a> <span class="keywordtype">double</span> m_first_tick; <a name="l00071"></a>00071 <a name="l00074"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#ab626437fd527189097384b3da3a0538b">00074</a> <span class="keywordtype">double</span> m_tick_step; <a name="l00075"></a>00075 <a name="l00077"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#ab057d4c74a57f017d16c9982605d31b6">00077</a> <span class="keyword">const</span> <span class="keywordtype">int</span> m_max_ticks; <a name="l00078"></a>00078 <a name="l00079"></a>00079 <span class="comment">//The actual program doesn't represent nor support any minor</span> <a name="l00080"></a>00080 <span class="comment">//ticks.</span> <a name="l00081"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#a4c771d982ebdee65ba16cd214d3d8180">00081</a> <span class="keywordtype">int</span> m_num_minor_ticks; <span class="comment">// The Number of minor ticks between the major ones.</span> <a name="l00082"></a>00082 <a name="l00083"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#a63725e723f2df04456745072f0335667">00083</a> <a class="code" href="AxisLoc_8h.html#a9b53735ee323795d625bf1a39a5c3407" title="The base class for the binner hierarchy.">AxisLoc</a> m_label_location; <a name="l00084"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#a7002c76d5e84373f0277d090d70b9f48">00084</a> <a class="code" href="AxisLoc_8h.html#a9b53735ee323795d625bf1a39a5c3407" title="The base class for the binner hierarchy.">AxisLoc</a> m_scale_location; <a name="l00085"></a>00085 <a name="l00088"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#acfa34473af5b07e3f305dc1603dba9a5">00088</a> <span class="keywordtype">double</span> m_pmag; <a name="l00089"></a>00089 <a name="l00093"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#a8274a754380fa31a3fc07466fd6a3240">00093</a> <span class="keywordtype">bool</span> m_use_pmag; <a name="l00094"></a>00094 <a name="l00097"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#ae7680aa776c5016804a0040c796fac85">00097</a> <span class="keywordtype">double</span> m_rmag; <a name="l00098"></a>00098 <a name="l00100"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#af68199dfb6a5ec6528bb282997f131ef">00100</a> std::vector<AxisTick> m_ticks; <a name="l00101"></a>00101 <a name="l00103"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#ab21aff042a54f5e0bdb5cdd9dc5b4ab9">00103</a> std::vector<AxisTick> m_ticks_in_range; <a name="l00104"></a>00104 <a name="l00108"></a><a class="code" href="classhippodraw_1_1AxisModelBase.html#a303d84508d9e723a83419e9afeafb9ed">00108</a> <span class="keywordtype">bool</span> m_auto_ticks; <a name="l00109"></a>00109 <a name="l00112"></a>00112 <span class="keywordtype">void</span> startDragging ( <span class="keywordtype">bool</span> dragging ); <a name="l00113"></a>00113 <a name="l00114"></a>00114 <span class="keyword">public</span>: <a name="l00115"></a>00115 <a name="l00118"></a>00118 <a class="code" href="classhippodraw_1_1AxisModelBase.html" title="The AxisModelBase class maintains the Range and scaling of an axis.">AxisModelBase</a> ( <a class="code" href="AxisLoc_8h.html#a9b53735ee323795d625bf1a39a5c3407" title="The base class for the binner hierarchy.">AxisLoc</a> label, <a class="code" href="AxisLoc_8h.html#a9b53735ee323795d625bf1a39a5c3407" title="The base class for the binner hierarchy.">AxisLoc</a> scale ); <a name="l00119"></a>00119 <a name="l00121"></a>00121 <a class="code" href="classhippodraw_1_1AxisModelBase.html" title="The AxisModelBase class maintains the Range and scaling of an axis.">AxisModelBase</a>( <span class="keyword">const</span> <a class="code" href="classhippodraw_1_1AxisModelBase.html" title="The AxisModelBase class maintains the Range and scaling of an axis.">AxisModelBase</a> & axis_model ); <a name="l00122"></a>00122 <a name="l00124"></a>00124 <span class="keyword">virtual</span> ~<a class="code" href="classhippodraw_1_1AxisModelBase.html" title="The AxisModelBase class maintains the Range and scaling of an axis.">AxisModelBase</a>(); <a name="l00125"></a>00125 <a name="l00127"></a>00127 <span class="keyword">virtual</span> <a class="code" href="classhippodraw_1_1AxisModelBase.html" title="The AxisModelBase class maintains the Range and scaling of an axis.">AxisModelBase</a> * <a class="code" href="namespacenum__util.html#a8d145d73a173083711a3829a2bc75f5c">clone</a> () <span class="keyword">const</span> = 0; <a name="l00128"></a>00128 <a name="l00129"></a>00129 <a name="l00131"></a>00131 <span class="keywordtype">void</span> setTickStep( <span class="keyword">const</span> <span class="keywordtype">double</span> & t_step ); <a name="l00132"></a>00132 <a name="l00135"></a>00135 <span class="keywordtype">double</span> getTickStep() <span class="keyword">const</span>; <a name="l00136"></a>00136 <a name="l00138"></a>00138 <span class="keywordtype">void</span> setFirstTick( <span class="keyword">const</span> <span class="keywordtype">double</span> & first_tick ); <a name="l00139"></a>00139 <a name="l00141"></a>00141 <span class="keywordtype">double</span> getFirstTick() <span class="keyword">const</span>; <a name="l00142"></a>00142 <a name="l00144"></a>00144 <span class="keywordtype">double</span> getMaxTicks() <span class="keyword">const</span>; <a name="l00145"></a>00145 <a name="l00147"></a>00147 <span class="keywordtype">void</span> setRMag ( <span class="keyword">const</span> <span class="keywordtype">double</span> & rmag ); <a name="l00148"></a>00148 <a name="l00150"></a>00150 <span class="keywordtype">double</span> getRMag() <span class="keyword">const</span>; <a name="l00151"></a>00151 <a name="l00153"></a>00153 <span class="keywordtype">void</span> setPMag( <span class="keyword">const</span> <span class="keywordtype">double</span> & pmag ); <a name="l00154"></a>00154 <a name="l00156"></a>00156 <span class="keywordtype">double</span> getPMag() <span class="keyword">const</span>; <a name="l00157"></a>00157 <a name="l00158"></a>00158 <a name="l00160"></a>00160 <span class="keywordtype">void</span> setRange ( <span class="keywordtype">double</span> low, <span class="keywordtype">double</span> high, <span class="keywordtype">double</span> pos ); <a name="l00161"></a>00161 <a name="l00165"></a>00165 <span class="keywordtype">void</span> setRange ( <span class="keyword">const</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> &, <span class="keywordtype">bool</span> scaled = <span class="keyword">false</span> ); <a name="l00166"></a>00166 <a name="l00168"></a>00168 <span class="keywordtype">void</span> setIntersectRange ( <span class="keyword">const</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> &, <span class="keyword">const</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> & ); <a name="l00169"></a>00169 <a name="l00171"></a>00171 <span class="keywordtype">void</span> setRangePos ( <span class="keywordtype">double</span> ); <a name="l00172"></a>00172 <a name="l00176"></a>00176 <span class="keywordtype">void</span> setUnionRange ( <span class="keyword">const</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> & range ); <a name="l00177"></a>00177 <a name="l00179"></a>00179 <span class="keywordtype">void</span> setEmpty (); <a name="l00180"></a>00180 <a name="l00187"></a>00187 <span class="keyword">const</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> & getRange ( <span class="keywordtype">bool</span> scaled ) <span class="keyword">const</span>; <a name="l00188"></a>00188 <a name="l00190"></a>00190 <span class="keywordtype">void</span> setAutoRanging ( <span class="keywordtype">bool</span> flag ); <a name="l00191"></a>00191 <a name="l00194"></a>00194 <span class="keywordtype">bool</span> isAutoRanging ( ) <span class="keyword">const</span>; <a name="l00195"></a>00195 <a name="l00197"></a>00197 <span class="keywordtype">void</span> setScaleFactor ( <span class="keywordtype">double</span> ); <a name="l00198"></a>00198 <a name="l00201"></a>00201 <span class="keywordtype">double</span> getScaleFactor () <span class="keyword">const</span>; <a name="l00202"></a>00202 <a name="l00206"></a>00206 <span class="keywordtype">bool</span> isScaling () <span class="keyword">const</span>; <a name="l00207"></a>00207 <a name="l00209"></a>00209 <span class="keywordtype">void</span> setScaling ( <span class="keywordtype">bool</span> on = <span class="keyword">true</span> ); <a name="l00210"></a>00210 <a name="l00220"></a>00220 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> needPMag () <span class="keyword">const</span>; <a name="l00221"></a>00221 <a name="l00223"></a>00223 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setUsePMag( <span class="keyword">const</span> <span class="keywordtype">bool</span> & use_p_mag ); <a name="l00224"></a>00224 <a name="l00228"></a>00228 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isLog() <span class="keyword">const</span> = 0; <a name="l00229"></a>00229 <a name="l00230"></a>00230 <a class="code" href="AxisLoc_8h.html#a9b53735ee323795d625bf1a39a5c3407" title="The base class for the binner hierarchy.">AxisLoc</a> getLabelLocation() <span class="keyword">const</span>; <a name="l00231"></a>00231 <a class="code" href="AxisLoc_8h.html#a9b53735ee323795d625bf1a39a5c3407" title="The base class for the binner hierarchy.">AxisLoc</a> getScaleLocation() <span class="keyword">const</span>; <a name="l00232"></a>00232 <a name="l00234"></a>00234 <span class="keywordtype">void</span> setTicks( <span class="keyword">const</span> std::vector<AxisTick> & ticks); <a name="l00235"></a>00235 <a name="l00239"></a>00239 <span class="keyword">const</span> std::vector<AxisTick> & getTicks() <span class="keyword">const</span>; <a name="l00240"></a>00240 <a name="l00244"></a>00244 <span class="keywordtype">void</span> adjustTicks(); <a name="l00245"></a>00245 <a name="l00249"></a>00249 <span class="keywordtype">void</span> setAutoTicks ( <span class="keywordtype">bool</span> yes ); <a name="l00250"></a>00250 <a name="l00254"></a>00254 <span class="keywordtype">bool</span> isAutoTicks () <span class="keyword">const</span>; <a name="l00255"></a>00255 <a name="l00258"></a>00258 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> & adjustValues ( <span class="keyword">const</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> & limit ) = 0; <a name="l00259"></a>00259 <a name="l00261"></a>00261 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> & adjustLogValues() = 0; <a name="l00262"></a>00262 <a name="l00269"></a>00269 <span class="keyword">virtual</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> calcLow ( <span class="keywordtype">int</span> parm, <span class="keywordtype">bool</span> dragging = <span class="keyword">false</span> ) = 0; <a name="l00270"></a>00270 <a name="l00277"></a>00277 <span class="keyword">virtual</span> <a class="code" href="classhippodraw_1_1Range.html" title="Expresses a range of values.">Range</a> calcHigh ( <span class="keywordtype">int</span> parm, <span class="keywordtype">bool</span> dragging = <span class="keyword">false</span> ) = 0; <a name="l00278"></a>00278 <a name="l00279"></a>00279 }; <a name="l00280"></a>00280 <a name="l00281"></a>00281 } <span class="comment">// namespace hippodraw</span> <a name="l00282"></a>00282 <a name="l00283"></a>00283 <span class="preprocessor">#endif // _AxisModel_H_</span> </pre></div></div> <hr size="1"><address style="align: right;"><small> Generated for HippoDraw Class Library by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0> </a> </small></address> </body> </html>