<!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.5"/> <title>steghide: SampleValue Class Reference</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 style="padding-left: 0.5em;"> <div id="projectname">steghide  <span id="projectnumber">0.5.1</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</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 id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#pri-attribs">Private Attributes</a> | <a href="classSampleValue-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">SampleValue Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div> </div><!--header--> <div class="contents"> <p>the value of a sample in a <a class="el" href="classCvrStgFile.html" title="a cover-/stego-file ">CvrStgFile</a> <a href="classSampleValue.html#details">More...</a></p> <p><code>#include <<a class="el" href="SampleValue_8h_source.html">SampleValue.h</a>></code></p> <div class="dynheader"> Inheritance diagram for SampleValue:</div> <div class="dyncontent"> <div class="center"> <img src="classSampleValue.png" usemap="#SampleValue_map" alt=""/> <map id="SampleValue_map" name="SampleValue_map"> <area href="classAudioSampleValue.html" title="a class representing an audio sample " alt="AudioSampleValue< Type, ValueType >" shape="rect" coords="0,56,241,80"/> <area href="classBmpSampleValue.html" title="an (abstract) sample value in a bmp file " alt="BmpSampleValue" shape="rect" coords="251,56,492,80"/> <area href="classDummySampleValue.html" alt="DummySampleValue" shape="rect" coords="502,56,743,80"/> <area href="classJpegSampleValue.html" alt="JpegSampleValue" shape="rect" coords="753,56,994,80"/> <area href="classWavPCMSampleValue.html" alt="WavPCMSampleValue" shape="rect" coords="1004,56,1245,80"/> <area href="classBmpPaletteSampleValue.html" title="a sample in a bmp palette (i.e. in a 1-,4- or 8-bit) file " alt="BmpPaletteSampleValue" shape="rect" coords="125,112,366,136"/> <area href="classBmpRGBSampleValue.html" title="a sample in a bmp rgb (i.e. 24-bit) file " alt="BmpRGBSampleValue" shape="rect" coords="376,112,617,136"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a74c75452d43690d940d9ca5d8b64da27"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a74c75452d43690d940d9ca5d8b64da27">SampleValue</a> (void)</td></tr> <tr class="separator:a74c75452d43690d940d9ca5d8b64da27"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7e51c7f758b83d354bdb6d3e9502934e"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a7e51c7f758b83d354bdb6d3e9502934e">~SampleValue</a> (void)</td></tr> <tr class="separator:a7e51c7f758b83d354bdb6d3e9502934e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aeca3fc1fd34c09d2244706b010935c2c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSampleValue.html">SampleValue</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#aeca3fc1fd34c09d2244706b010935c2c">getNearestTargetSampleValue</a> (<a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> t) const =0</td></tr> <tr class="separator:aeca3fc1fd34c09d2244706b010935c2c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa7e5d9b69203f6f6edf97c79319232dd"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#aa7e5d9b69203f6f6edf97c79319232dd">calcDistance</a> (const <a class="el" href="classSampleValue.html">SampleValue</a> *s) const =0</td></tr> <tr class="separator:aa7e5d9b69203f6f6edf97c79319232dd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aeaf5c46ec6d023840e9773604b20d25c"><td class="memItemLeft" align="right" valign="top">virtual std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#aeaf5c46ec6d023840e9773604b20d25c">getName</a> (void) const =0</td></tr> <tr class="separator:aeaf5c46ec6d023840e9773604b20d25c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a80e6ab34112c3829385b4bf4b14d0401"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a80e6ab34112c3829385b4bf4b14d0401">isNeighbour</a> (const <a class="el" href="classSampleValue.html">SampleValue</a> *s) const </td></tr> <tr class="separator:a80e6ab34112c3829385b4bf4b14d0401"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ace091469343754f11af43be63202ab79"><td class="memItemLeft" align="right" valign="top"><a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#ace091469343754f11af43be63202ab79">getEmbeddedValue</a> (void) const </td></tr> <tr class="separator:ace091469343754f11af43be63202ab79"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3961e8e390a5bd2cafa64171b78f5698"><td class="memItemLeft" align="right" valign="top"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a3961e8e390a5bd2cafa64171b78f5698">getKey</a> (void) const </td></tr> <tr class="separator:a3961e8e390a5bd2cafa64171b78f5698"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af0505a36a5072d8fea8b92fe97d7029a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#af0505a36a5072d8fea8b92fe97d7029a">operator==</a> (const <a class="el" href="classSampleValue.html">SampleValue</a> &sv) const </td></tr> <tr class="separator:af0505a36a5072d8fea8b92fe97d7029a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a268b910b1c16916363549180fa3a6648"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a268b910b1c16916363549180fa3a6648">operator!=</a> (const <a class="el" href="classSampleValue.html">SampleValue</a> &sv) const </td></tr> <tr class="separator:a268b910b1c16916363549180fa3a6648"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3a4fc17df81bfb17a16ca3a06c6f12c8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a3a4fc17df81bfb17a16ca3a06c6f12c8">operator<</a> (const <a class="el" href="classSampleValue.html">SampleValue</a> &sv) const </td></tr> <tr class="separator:a3a4fc17df81bfb17a16ca3a06c6f12c8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a53c3804f4551d19046c0b113387bc518"><td class="memItemLeft" align="right" valign="top"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a53c3804f4551d19046c0b113387bc518">getNumEdges</a> (<a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> t) const </td></tr> <tr class="separator:a53c3804f4551d19046c0b113387bc518"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a576da5dade60d82b0d00373fac218b8f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a576da5dade60d82b0d00373fac218b8f">setNumEdges</a> (<a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> t, <a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> ne)</td></tr> <tr class="separator:a576da5dade60d82b0d00373fac218b8f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7cda8c5bb0b8689764c80582dcbd145f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a7cda8c5bb0b8689764c80582dcbd145f">incNumEdges</a> (<a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> t)</td></tr> <tr class="separator:a7cda8c5bb0b8689764c80582dcbd145f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a469706163142f053d9e10585a72c9322"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a469706163142f053d9e10585a72c9322">decNumEdges</a> (<a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> t)</td></tr> <tr class="separator:a469706163142f053d9e10585a72c9322"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa05c5d32ce2e4c9f27e894d9df51bf19"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#aa05c5d32ce2e4c9f27e894d9df51bf19">setLabel</a> (unsigned long l)</td></tr> <tr class="separator:aa05c5d32ce2e4c9f27e894d9df51bf19"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abb1332fa92702da1d32eac1a6bb1fc94"><td class="memItemLeft" align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#abb1332fa92702da1d32eac1a6bb1fc94">getLabel</a> (void) const </td></tr> <tr class="separator:abb1332fa92702da1d32eac1a6bb1fc94"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abce524205204b1bf08df60585354b216"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#abce524205204b1bf08df60585354b216">print</a> (unsigned short spc=0) const </td></tr> <tr class="separator:abce524205204b1bf08df60585354b216"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:a0dcaf6e226df96e9caab87aa933f9f19"><td class="memItemLeft" align="right" valign="top"><a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a0dcaf6e226df96e9caab87aa933f9f19">EValue</a></td></tr> <tr class="memdesc:a0dcaf6e226df96e9caab87aa933f9f19"><td class="mdescLeft"> </td><td class="mdescRight">the bit that is embedded in this sample value - must be set in constructor of derived class <a href="#a0dcaf6e226df96e9caab87aa933f9f19">More...</a><br/></td></tr> <tr class="separator:a0dcaf6e226df96e9caab87aa933f9f19"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a10e075aea7ba428d0c76549423d8efe2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a10e075aea7ba428d0c76549423d8efe2">Key</a></td></tr> <tr class="memdesc:a10e075aea7ba428d0c76549423d8efe2"><td class="mdescLeft"> </td><td class="mdescRight">the key of this sample value - must be different for two different sample values - must be set in constructor of derived class <a href="#a10e075aea7ba428d0c76549423d8efe2">More...</a><br/></td></tr> <tr class="separator:a10e075aea7ba428d0c76549423d8efe2"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr class="memitem:a2702bee2b3636a57d92c779e31c038aa"><td class="memItemLeft" align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#a2702bee2b3636a57d92c779e31c038aa">Label</a></td></tr> <tr class="separator:a2702bee2b3636a57d92c779e31c038aa"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abcc2fdc624ecf5fb143d268ccb1c0f87"><td class="memItemLeft" align="right" valign="top"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSampleValue.html#abcc2fdc624ecf5fb143d268ccb1c0f87">NumEdges</a></td></tr> <tr class="separator:abcc2fdc624ecf5fb143d268ccb1c0f87"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>This is the abstract base class for all AuSampleValue, <a class="el" href="classBmpSampleValue.html" title="an (abstract) sample value in a bmp file ">BmpSampleValue</a>, etc. classes</p> <p>For two sample values s1 and s2:</p> <p>s1->calcDistance(s2) == s2->calcDistance(s1) is always true.</p> <p>s1->isNeighbour(s2) == s2->isNeighbour(s1) is always true.</p> <p>s1 and s2 are called opposite if s1->getBit() != s2->getBit()</p> <p>s1 and s2 are called neighbours if s1->isNeighbour(s2) is true</p> <p>s1-><a class="el" href="classSampleValue.html#a3961e8e390a5bd2cafa64171b78f5698">getKey()</a> == s2-><a class="el" href="classSampleValue.html#a3961e8e390a5bd2cafa64171b78f5698">getKey()</a> iff s1 == s2</p> <p>s1 == s2 implies s1->getDistance(s2) == 0 BUT: s1->getDistance(s2) == 0 does not imply s1 == s2 example: 8-bit bmp palette image - same color value for two different indices</p> <p>s1 == s2 implies s1->getBit() == s2->getBit()</p> <p>s1->getDistance(s2) == 0 implies s1->getBit() == s2->getBit()</p> <p><b>NOTE:</b> <a class="el" href="classSampleValue.html" title="the value of a sample in a CvrStgFile ">SampleValue</a> and all derived classes rely on the <a class="el" href="classGlobals.html" title="some useful pointers that should be global ">Globals</a> object pointed to by the Globs pointer. This means that it must be set correctly before using any method of a <a class="el" href="classSampleValue.html" title="the value of a sample in a CvrStgFile ">SampleValue</a> (or derived) object. </p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a74c75452d43690d940d9ca5d8b64da27"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SampleValue::SampleValue </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a7e51c7f758b83d354bdb6d3e9502934e"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">SampleValue::~SampleValue </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="aa7e5d9b69203f6f6edf97c79319232dd"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> SampleValue::calcDistance </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSampleValue.html">SampleValue</a> * </td> <td class="paramname"><em>s</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>calculate the distance between the sample value s and this sample value </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">s</td><td>a sample value of the same type as this </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the distance </dd></dl> <p>Implemented in <a class="el" href="classAudioSampleValue.html#abe1d2acc56858cdd86dc3e83bda2d8ae">AudioSampleValue< Type, ValueType ></a>, <a class="el" href="classDummySampleValue.html#a6de4864a030b1acb2f74e0ba42f37456">DummySampleValue</a>, <a class="el" href="classBmpRGBSampleValue.html#a558ea1a6a1cc8fe882daef7b1d75be4b">BmpRGBSampleValue</a>, <a class="el" href="classBmpSampleValue.html#a591a3a5d7dcc61fde3fd1e37906e1781">BmpSampleValue</a>, <a class="el" href="classWavPCMSampleValue.html#ae7904bae064c50328d7c308aa9aa41e7">WavPCMSampleValue</a>, and <a class="el" href="classJpegSampleValue.html#a3d1c422d07e9d9644080313c92a21ea0">JpegSampleValue</a>.</p> </div> </div> <a class="anchor" id="a469706163142f053d9e10585a72c9322"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void SampleValue::decNumEdges </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> </td> <td class="paramname"><em>t</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="ace091469343754f11af43be63202ab79"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> SampleValue::getEmbeddedValue </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>get the value that is embedded in this sample value (must be >=0 and <EmbValueModulus) </p> <dl class="section return"><dt>Returns</dt><dd>the embedded value </dd></dl> </div> </div> <a class="anchor" id="a3961e8e390a5bd2cafa64171b78f5698"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> SampleValue::getKey </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>get the key for this sample </p> <dl class="section return"><dt>Returns</dt><dd>a key which must be different for two different samples values. </dd></dl> </div> </div> <a class="anchor" id="abb1332fa92702da1d32eac1a6bb1fc94"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned long SampleValue::getLabel </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="aeaf5c46ec6d023840e9773604b20d25c"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual std::string SampleValue::getName </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>return a short name uniquely identifying this sample value </p> <p>Implemented in <a class="el" href="classAudioSampleValue.html#a76698c3fbc70a7f050fb22d5d67e0fe9">AudioSampleValue< Type, ValueType ></a>, <a class="el" href="classDummySampleValue.html#ad2b4007dc6dfdcdf318ebdff8b2060a3">DummySampleValue</a>, <a class="el" href="classBmpRGBSampleValue.html#a07efa1e868fed53a78d2b0ed1f9fced0">BmpRGBSampleValue</a>, <a class="el" href="classBmpPaletteSampleValue.html#ac477a336954b4679e093a8b9856d676b">BmpPaletteSampleValue</a>, <a class="el" href="classWavPCMSampleValue.html#aca62237ff9ccafa1aeac856474023d38">WavPCMSampleValue</a>, and <a class="el" href="classJpegSampleValue.html#adab7120fa72b4672200f5556062f77b0">JpegSampleValue</a>.</p> </div> </div> <a class="anchor" id="aeca3fc1fd34c09d2244706b010935c2c"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classSampleValue.html">SampleValue</a>* SampleValue::getNearestTargetSampleValue </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> </td> <td class="paramname"><em>t</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>get the nearest (with the least distance to this sample value) sample value whose embedded value equals the specified target </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">t</td><td>the target embedded value</td></tr> </table> </dd> </dl> <p>If two or more target sample values have equal distance each of them should be returned with equal probability.</p> <p>The returned <a class="el" href="classSampleValue.html" title="the value of a sample in a CvrStgFile ">SampleValue</a> object should be deleted by the callser. </p> <p>Implemented in <a class="el" href="classAudioSampleValue.html#a720cad12ddc83b578a8de28ab6e2052c">AudioSampleValue< Type, ValueType ></a>, <a class="el" href="classDummySampleValue.html#a6100fee5dffcd1e62e4781432ec76bb6">DummySampleValue</a>, <a class="el" href="classBmpRGBSampleValue.html#a6d73441a935ae235e87e9bc68b3649b1">BmpRGBSampleValue</a>, <a class="el" href="classBmpPaletteSampleValue.html#a5f8e3f970b7bc503e4720b5217ccce9b">BmpPaletteSampleValue</a>, <a class="el" href="classWavPCMSampleValue.html#a260934da89ac7e20f54feae081576d80">WavPCMSampleValue</a>, and <a class="el" href="classJpegSampleValue.html#ad4e9adaf0f0de519ee06d6868dbd17dc">JpegSampleValue</a>.</p> </div> </div> <a class="anchor" id="a53c3804f4551d19046c0b113387bc518"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> SampleValue::getNumEdges </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> </td> <td class="paramname"><em>t</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a7cda8c5bb0b8689764c80582dcbd145f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void SampleValue::incNumEdges </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> </td> <td class="paramname"><em>t</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a80e6ab34112c3829385b4bf4b14d0401"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool SampleValue::isNeighbour </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSampleValue.html">SampleValue</a> * </td> <td class="paramname"><em>s</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>is the sample value s a neighbour of this sample value ? </p> <dl class="section return"><dt>Returns</dt><dd>true iff this and s are neighbours</dd></dl> <p>This is implemented as (<a class="el" href="classSampleValue.html#aa7e5d9b69203f6f6edf97c79319232dd">calcDistance()</a> <= Radius) but may be overridden by derived classes. </p> <p>Reimplemented in <a class="el" href="classDummySampleValue.html#ab1855cabab9f7b005d3c71db9c37cbcd">DummySampleValue</a>.</p> </div> </div> <a class="anchor" id="a268b910b1c16916363549180fa3a6648"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool SampleValue::operator!= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSampleValue.html">SampleValue</a> & </td> <td class="paramname"><em>sv</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a3a4fc17df81bfb17a16ca3a06c6f12c8"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool SampleValue::operator< </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSampleValue.html">SampleValue</a> & </td> <td class="paramname"><em>sv</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="af0505a36a5072d8fea8b92fe97d7029a"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool SampleValue::operator== </td> <td>(</td> <td class="paramtype">const <a class="el" href="classSampleValue.html">SampleValue</a> & </td> <td class="paramname"><em>sv</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>two sample values are equal iff their keys are equal </p> </div> </div> <a class="anchor" id="abce524205204b1bf08df60585354b216"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void SampleValue::print </td> <td>(</td> <td class="paramtype">unsigned short </td> <td class="paramname"><em>spc</em> = <code>0</code></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="aa05c5d32ce2e4c9f27e894d9df51bf19"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void SampleValue::setLabel </td> <td>(</td> <td class="paramtype">unsigned long </td> <td class="paramname"><em>l</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a576da5dade60d82b0d00373fac218b8f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void SampleValue::setNumEdges </td> <td>(</td> <td class="paramtype"><a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> </td> <td class="paramname"><em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"><em>ne</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a class="anchor" id="a0dcaf6e226df96e9caab87aa933f9f19"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#acf820202f81f25eb00734eac0d7aed2d">EmbValue</a> SampleValue::EValue</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a10e075aea7ba428d0c76549423d8efe2"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> SampleValue::Key</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a2702bee2b3636a57d92c779e31c038aa"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned long SampleValue::Label</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="abcc2fdc624ecf5fb143d268ccb1c0f87"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a>* SampleValue::NumEdges</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>NumEdges[t] contains the number of edges that are added to a vertex if this sample value with corresponding target value t is added to the vertex </p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="SampleValue_8h_source.html">SampleValue.h</a></li> <li><a class="el" href="SampleValue_8cc.html">SampleValue.cc</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Fri Oct 18 2013 17:59:37 for steghide by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>