<!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>Mercator: Mercator::Buffer< DataType > Class Template 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.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">Mercator</div> </td> </tr> </tbody> </table> </div> <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 id="nav-path" class="navpath"> <ul> <li class="navelem"><b>Mercator</b> </li> <li class="navelem"><a class="el" href="classMercator_1_1Buffer.html">Buffer</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-attribs">Public Attributes</a> | <a href="#pri-attribs">Private Attributes</a> </div> <div class="headertitle"> <div class="title">Mercator::Buffer< DataType > Class Template Reference</div> </div> </div> <div class="contents"> <!-- doxytag: class="Mercator::Buffer" --> <p>Template for managing buffers of data for a segment. <a href="classMercator_1_1Buffer.html#details">More...</a></p> <p><code>#include <<a class="el" href="Buffer_8h_source.html">Buffer.h</a>></code></p> <p><a href="classMercator_1_1Buffer-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#ac39345c5dac72fc1e908369d692ca6c8">Buffer</a> (const <a class="el" href="classMercator_1_1Segment.html">Segment</a> &segment, unsigned int channels=4)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#ac39345c5dac72fc1e908369d692ca6c8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">DataType & </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#a708460f72598ffc45806c1c5fa865f25">operator()</a> (unsigned int x, unsigned int y, unsigned int channel)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the data value at a given point. <a href="#a708460f72598ffc45806c1c5fa865f25"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const DataType & </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#add67f9b0c6b087e7b0e92c252edf8d5f">operator()</a> (unsigned int x, unsigned int y, unsigned int channel) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the data value at a given point. <a href="#add67f9b0c6b087e7b0e92c252edf8d5f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4293b2e3e6b7f980fbeda6aa31b3220"></a><!-- doxytag: member="Mercator::Buffer::getSegment" ref="ab4293b2e3e6b7f980fbeda6aa31b3220" args="() const " --> const <a class="el" href="classMercator_1_1Segment.html">Segment</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#ab4293b2e3e6b7f980fbeda6aa31b3220">getSegment</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Accessor for the terrain height segment this buffer is associated with. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7d8905b4c06da4c2237ac47c3b19d4d"></a><!-- doxytag: member="Mercator::Buffer::getSize" ref="ac7d8905b4c06da4c2237ac47c3b19d4d" args="() const " --> unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#ac7d8905b4c06da4c2237ac47c3b19d4d">getSize</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Accessor for the size of segment, m_res + 1. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa88672245dedbff52cc4b71207ab484a"></a><!-- doxytag: member="Mercator::Buffer::getChannels" ref="aa88672245dedbff52cc4b71207ab484a" args="() const " --> unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#aa88672245dedbff52cc4b71207ab484a">getChannels</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Accessor for the number of data values per height point. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac567480a63c0b44f2f22c5fa87cb3b5f"></a><!-- doxytag: member="Mercator::Buffer::getData" ref="ac567480a63c0b44f2f22c5fa87cb3b5f" args="()" --> DataType * </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#ac567480a63c0b44f2f22c5fa87cb3b5f">getData</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Accessor for a pointer to buffer containing data values. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#aef8eaf2424b8b88bb97cf990b6be0ccb">allocate</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate the storage required by the buffer. <a href="#aef8eaf2424b8b88bb97cf990b6be0ccb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#aa8cd97c716618b7865d6b58e275ce455">isValid</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine if this buffer has valid allocated storage. <a href="#aa8cd97c716618b7865d6b58e275ce455"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#a69db2f6662bdad65a863c7e3c55c50e0">invalidate</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">De-allocate the storage for this buffer. <a href="#a69db2f6662bdad65a863c7e3c55c50e0"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-attribs"></a> Public Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad12de49f609c79f09d7730b317d7907b"></a><!-- doxytag: member="Mercator::Buffer::m_segment" ref="ad12de49f609c79f09d7730b317d7907b" args="" --> const <a class="el" href="classMercator_1_1Segment.html">Segment</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#ad12de49f609c79f09d7730b317d7907b">m_segment</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The terrain height segment this buffer is associated with. <br/></td></tr> <tr><td colspan="2"><h2><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3df4939c7bdfb1f8b34eb45528aba6c1"></a><!-- doxytag: member="Mercator::Buffer::m_channels" ref="a3df4939c7bdfb1f8b34eb45528aba6c1" args="" --> const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#a3df4939c7bdfb1f8b34eb45528aba6c1">m_channels</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The number of data values per height point. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24eea41917293cd07199c98237cb9473"></a><!-- doxytag: member="Mercator::Buffer::m_size" ref="a24eea41917293cd07199c98237cb9473" args="" --> const unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#a24eea41917293cd07199c98237cb9473">m_size</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The size of segment, m_res + 1. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9fc6dc53d95ee12efde031aa8423a81"></a><!-- doxytag: member="Mercator::Buffer::m_data" ref="aa9fc6dc53d95ee12efde031aa8423a81" args="" --> DataType * </td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Buffer.html#aa9fc6dc53d95ee12efde031aa8423a81">m_data</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to buffer containing data values. <br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><h3>template<typename DataType><br/> class Mercator::Buffer< DataType ></h3> <p>Template for managing buffers of data for a segment. </p> </div><hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="ac39345c5dac72fc1e908369d692ca6c8"></a><!-- doxytag: member="Mercator::Buffer::Buffer" ref="ac39345c5dac72fc1e908369d692ca6c8" args="(const Segment &segment, unsigned int channels=4)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename DataType > </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classMercator_1_1Buffer.html">Mercator::Buffer</a>< DataType >::<a class="el" href="classMercator_1_1Buffer.html">Buffer</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classMercator_1_1Segment.html">Segment</a> & </td> <td class="paramname"><em>segment</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>channels</em> = <code>4</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [explicit]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">segment</td><td>terrain height segment this buffer is associated with. </td></tr> <tr><td class="paramname">channels</td><td>number of data values per height point. </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="aef8eaf2424b8b88bb97cf990b6be0ccb"></a><!-- doxytag: member="Mercator::Buffer::allocate" ref="aef8eaf2424b8b88bb97cf990b6be0ccb" args="()" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename DataType> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classMercator_1_1Buffer.html">Mercator::Buffer</a>< DataType >::allocate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Allocate the storage required by the buffer. </p> <p>Allocate memory based on the size and number of channels required by the buffer. </p> </div> </div> <a class="anchor" id="a69db2f6662bdad65a863c7e3c55c50e0"></a><!-- doxytag: member="Mercator::Buffer::invalidate" ref="a69db2f6662bdad65a863c7e3c55c50e0" args="()" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename DataType> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classMercator_1_1Buffer.html">Mercator::Buffer</a>< DataType >::invalidate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>De-allocate the storage for this buffer. </p> <p>Free the storage allocate for this buffer. </p> </div> </div> <a class="anchor" id="aa8cd97c716618b7865d6b58e275ce455"></a><!-- doxytag: member="Mercator::Buffer::isValid" ref="aa8cd97c716618b7865d6b58e275ce455" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename DataType> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classMercator_1_1Buffer.html">Mercator::Buffer</a>< DataType >::isValid </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Determine if this buffer has valid allocated storage. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>true if storage is allocated. </dd></dl> </div> </div> <a class="anchor" id="a708460f72598ffc45806c1c5fa865f25"></a><!-- doxytag: member="Mercator::Buffer::operator()" ref="a708460f72598ffc45806c1c5fa865f25" args="(unsigned int x, unsigned int y, unsigned int channel)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename DataType> </div> <table class="memname"> <tr> <td class="memname">DataType& <a class="el" href="classMercator_1_1Buffer.html">Mercator::Buffer</a>< DataType >::operator() </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>channel</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Retrieve the data value at a given point. </p> <p>Access the data value associated with given point in the segment in a given channel in this buffer. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a reference to the value at the point requested. </dd></dl> </div> </div> <a class="anchor" id="add67f9b0c6b087e7b0e92c252edf8d5f"></a><!-- doxytag: member="Mercator::Buffer::operator()" ref="add67f9b0c6b087e7b0e92c252edf8d5f" args="(unsigned int x, unsigned int y, unsigned int channel) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename DataType> </div> <table class="memname"> <tr> <td class="memname">const DataType& <a class="el" href="classMercator_1_1Buffer.html">Mercator::Buffer</a>< DataType >::operator() </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>channel</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Retrieve the data value at a given point. </p> <p>Return the data value associated with given point in the segment in a given channel in this buffer. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the value at the point requested. </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="Buffer_8h_source.html">Buffer.h</a></li> <li><a class="el" href="Buffer__impl_8h_source.html">Buffer_impl.h</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated for Mercator by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>